/* 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-city-of-pigs {
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #1a1208 70%), linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%);
}
.scn-city-of-pigs .hut-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 50%);
  animation: cp-hut 10s ease-in-out infinite alternate;
}
.scn-city-of-pigs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-city-of-pigs .pig {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #b08060 0%, #8a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cp-pig 3s ease-in-out infinite;
}
.scn-city-of-pigs .trough {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: cp-trough 4s ease-in-out infinite;
}
.scn-city-of-pigs .hay {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #c0a060 0%, #8a7030 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(2px);
  animation: cp-hay 6s ease-in-out infinite alternate;
}
.scn-city-of-pigs .lantern {
  position: absolute; bottom: 40%; left: 25%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(192,128,64,.3);
  animation: cp-lantern 2s ease-in-out infinite alternate;
}
@keyframes cp-hut { 0%,100% { opacity: .8; } 50% { opacity: .95; } }
@keyframes cp-pig { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-2px) translateX(3px) rotate(-5deg); } 50% { transform: translateY(0) translateX(6px) rotate(0deg); } 75% { transform: translateY(-1px) translateX(3px) rotate(5deg); } 100% { transform: translateY(0) translateX(0); } }
@keyframes cp-trough { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cp-hay { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(.98); } }
@keyframes cp-lantern { 0% { box-shadow: 0 0 15px 5px #c08040, 0 0 30px 10px rgba(192,128,64,.3); opacity: .8; } 100% { box-shadow: 0 0 25px 10px #ffd060, 0 0 50px 18px rgba(255,208,96,.5); opacity: 1; } }

/* autolycus-theft */

.scn-timocratic-man {
  background: linear-gradient(180deg, #241e18 0%, #3a2a1e 50%, #1a1410 100%), radial-gradient(ellipse at 40% 70%, #7a5a3a 0%, transparent 50%);
}
.scn-timocratic-man .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); opacity:0.4; animation: tm-wall 15s ease-in-out infinite alternate; }
.scn-timocratic-man .stair { position:absolute; left:35%; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-timocratic-man .stair-1 { bottom:30%; width:120px; }
.scn-timocratic-man .stair-2 { bottom:20%; width:100px; left:40%; }
.scn-timocratic-man .stair-3 { bottom:10%; width:80px; left:45%; }
.scn-timocratic-man .figure-central { position:absolute; bottom:12%; left:50%; width:26px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tm-central 4s ease-in-out infinite; }
.scn-timocratic-man .figure-left { position:absolute; bottom:28%; left:25%; width:22px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: tm-side 6s ease-in-out infinite; }
.scn-timocratic-man .figure-right { position:absolute; bottom:28%; right:25%; width:22px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: tm-side 6s ease-in-out infinite reverse; animation-delay: 1s; }
.scn-timocratic-man .crown { position:absolute; top:28%; left:48%; width:20px; height:12px; background: linear-gradient(180deg, #c8a040 0%, #a08030 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 0%, 40% 80%, 60% 0%, 80% 80%, 100% 0%, 100% 100%); animation: tm-crown 3s ease-in-out infinite; }
.scn-timocratic-man .shield { position:absolute; top:25%; left:56%; width:18px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: tm-shield 5s ease-in-out infinite; }
@keyframes tm-wall { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes tm-central { 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 tm-side { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes tm-crown { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tm-shield { 0% { transform:rotate(15deg) scale(1); } 50% { transform:rotate(18deg) scale(1.05); } 100% { transform:rotate(15deg) scale(1); } }

.scn-democratic-man {
  background: linear-gradient(180deg, #2a2520 0%, #3a3228 40%, #4a3d30 100%),
              radial-gradient(ellipse at 30% 20%, #5a4a3a 0%, transparent 60%);
}
.scn-democratic-man .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3d30 0%, #2a2520 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-democratic-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3228 0%, #1e1a15 100%);
}
.scn-democratic-man .figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1a15 0%, #0e0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dm-figure 6s ease-in-out infinite;
}
.scn-democratic-man .pleasure-left {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a87a 0%, #a0805a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,168,122,0.5);
  animation: dm-pleasure 4s ease-in-out infinite alternate;
}
.scn-democratic-man .pleasure-right {
  position: absolute; bottom: 30%; right: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a87a 0%, #a0805a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,168,122,0.5);
  animation: dm-pleasure 4s ease-in-out infinite alternate reverse;
}
.scn-democratic-man .light-shaft {
  position: absolute; top: 10%; left: 45%; width: 10%;
  height: 60%;
  background: linear-gradient(180deg, rgba(200,180,150,0.15) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: dm-shaft 8s ease-in-out infinite alternate;
}
.scn-democratic-man .shadow-warp {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: dm-shadow 5s ease-in-out infinite alternate;
}
@keyframes dm-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(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) rotate(0); }
}
@keyframes dm-pleasure {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes dm-shaft {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(5px); }
  100% { opacity: 0.3; transform: translateX(-5px); }
}
@keyframes dm-shadow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

/* scene: liberty-anarchy-breeding */

.scn-soul-excellence {
  background: linear-gradient(160deg, #1a1814 0%, #2c2420 50%, #161412 100%), radial-gradient(ellipse at 50% 50%, #2a221e 0%, transparent 70%);
}
.scn-soul-excellence .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
}
.scn-soul-excellence .wall-shadow {
  position: absolute;
  inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 30%, #1a1612 0%, #0e0c0a 100%);
  animation: se-wall 15s ease-in-out infinite alternate;
}
.scn-soul-excellence .seat {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1e 0%, #221812 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-soul-excellence .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #1c1612 0%, #100c0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: se-figure 6s ease-in-out infinite;
}
.scn-soul-excellence .glow-round {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 30%;
  height: 30%;
  background: radial-gradient(circle, #c8a870 0%, #a08050 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  filter: blur(10px);
  animation: se-glow 8s ease-in-out infinite alternate;
}
.scn-soul-excellence .distant-window {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 15px;
  height: 20px;
  background: radial-gradient(ellipse, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 1px #4a3a2a;
  animation: se-window 20s linear infinite alternate;
}
.scn-soul-excellence .small-book {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #3a2a1e 0%, #221812 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  animation: se-book 4s ease-in-out infinite alternate;
}
@keyframes se-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes se-figure {
  0% { transform: translateY(0) scale(1, 1); }
  25% { transform: translateY(-2px) scale(1.02, 0.98); }
  50% { transform: translateY(0) scale(1, 1); }
  75% { transform: translateY(-1px) scale(0.98, 1.02); }
  100% { transform: translateY(0) scale(1, 1); }
}
@keyframes se-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes se-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes se-book {
  0% { transform: rotate(-5deg) scale(1, 1); }
  50% { transform: rotate(-3deg) scale(1.05, 0.95); }
  100% { transform: rotate(-5deg) scale(1, 1); }
}

.scn-community-wives-children {
  background: linear-gradient(180deg, #3a3030 0%, #4a3a38 50%, #5a4040 100%),
              radial-gradient(ellipse at 50% 90%, #5a4a3a 0%, transparent 80%);
}
.scn-community-wives-children .bg-hearth {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2020 0%, #3a3030 100%);
}
.scn-community-wives-children .hearth-fire {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #f08040 0%, #c04020 40%, #a03020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: cwc-fire 2s ease-in-out infinite alternate;
}
.scn-community-wives-children .fire-glow {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 60px;
  transform: translate(-50%, 10%);
  background: radial-gradient(ellipse, rgba(200,80,30,0.3) 0%, transparent 70%);
  animation: cwc-glow 4s ease-in-out infinite alternate;
}
.scn-community-wives-children .child-1 {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child1 6s ease-in-out infinite;
}
.scn-community-wives-children .child-2 {
  position: absolute; bottom: 26%; left: 45%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child2 7s ease-in-out infinite 0.5s;
}
.scn-community-wives-children .child-3 {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child3 5s ease-in-out infinite 1s;
}
.scn-community-wives-children .figure-woman {
  position: absolute; bottom: 24%; left: 48%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: cwc-woman 8s ease-in-out infinite;
}
.scn-community-wives-children .common-bed {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 12px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a4a 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
}
@keyframes cwc-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); }
  50% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9); }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); }
}
@keyframes cwc-glow {
  0% { opacity: 0.5; transform: translate(-50%, 10%) scale(1); }
  50% { opacity: 0.8; transform: translate(-50%, 8%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, 10%) scale(0.95); }
}
@keyframes cwc-child1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes cwc-child2 {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cwc-child3 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cwc-woman {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

/* piraeus-journey */

.scn-soul-excellence {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #2a241e 60%, #1a140e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-soul-excellence .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a3a 0%, #2a241e 100%); }
.scn-soul-excellence .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%); }
.scn-soul-excellence .desk { position:absolute; bottom:28%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: se-desk 20s ease-in-out infinite; }
.scn-soul-excellence .candle { position:absolute; bottom:36%; left:45%; width:6px; height:18px; background: linear-gradient(180deg, #f0d080 0%, #a07030 100%); border-radius: 30% 30% 10% 10%; }
.scn-soul-excellence .candle-glow { position:absolute; bottom:36%; left:45%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); border-radius:50%; animation: se-glow 3s ease-in-out infinite alternate; }
.scn-soul-excellence .figure-sitting { position:absolute; bottom:28%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: se-breathe 5s ease-in-out infinite; }
.scn-soul-excellence .scroll-open { position:absolute; bottom:30%; left:38%; width:50px; height:6px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 2px; transform: rotate(-15deg); animation: se-scroll 15s ease-in-out infinite; }
@keyframes se-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes se-glow { 0% { opacity:.7; transform:translate(-50%,-50%) scale(.9); } 100% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } }
@keyframes se-breathe { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } }
@keyframes se-scroll { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-1px); } }

.scn-happy-just {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a1a 70%, #1a140e 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-happy-just .bg-column { position:absolute; bottom:0; left:10%; width:12%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.4); }
.scn-happy-just .bg-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
.scn-happy-just .figure-standing { position:absolute; bottom:15%; left:40%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hj-stand 6s ease-in-out infinite; }
.scn-happy-just .scroll-roll { position:absolute; bottom:20%; left:50%; width:30px; height:30px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hj-roll 12s ease-in-out infinite; }
.scn-happy-just .light-shaft { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,220,180,.08) 0%, transparent 80%); transform: skewX(-10deg); animation: hj-shaft 8s ease-in-out infinite alternate; }
.scn-happy-just .dust-motes { position:absolute; top:20%; left:40%; width:100%; height:60%; background: radial-gradient(circle at 20% 30%, rgba(255,220,180,.1) 0%, transparent 20%), radial-gradient(circle at 70% 60%, rgba(255,220,180,.08) 0%, transparent 15%); animation: hj-dust 20s linear infinite; }
@keyframes hj-stand { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.01) rotate(1deg); } }
@keyframes hj-roll { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } }
@keyframes hj-shaft { 0% { opacity:.3; } 100% { opacity:.6; } }
@keyframes hj-dust { 0% { background-position: 0 0, 0 0; } 100% { background-position: 50px 30px, -30px 20px; } }

.scn-socrates-not-satisfied {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #2a241e 60%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-socrates-not-satisfied .bg-table { position:absolute; bottom:20%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; }
.scn-socrates-not-satisfied .table-top { position:absolute; bottom:34%; left:5%; right:5%; height:2%; background: #5a4a3a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-socrates-not-satisfied .plate-empty { position:absolute; bottom:36%; left:35%; width:40px; height:10px; background: radial-gradient(ellipse, #a09080 20%, #706050 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-10deg); animation: sn-plate 7s ease-in-out infinite; }
.scn-socrates-not-satisfied .plate-full { position:absolute; bottom:36%; left:55%; width:40px; height:10px; background: radial-gradient(ellipse, #c8a878 20%, #a08060 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(5deg); animation: sn-plate 7s ease-in-out infinite reverse; }
.scn-socrates-not-satisfied .hand-reaching { position:absolute; bottom:36%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: sn-hand 5s ease-in-out infinite; }
.scn-socrates-not-satisfied .amp { position:absolute; bottom:40%; left:30%; width:8px; height:14px; background: radial-gradient(ellipse, #f0d080 0%, #a07030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: sn-amp 2s ease-in-out infinite alternate; }
@keyframes sn-plate { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } }
@keyframes sn-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(10deg) translateX(5px); } 50% { transform: rotate(-5deg) translateX(-3px); } 75% { transform: rotate(15deg) translateX(8px); } }
@keyframes sn-amp { 0% { opacity:.6; box-shadow: 0 0 15px 4px rgba(240,208,128,.3); } 100% { opacity:1; box-shadow: 0 0 25px 8px rgba(240,208,128,.5); } }

.scn-glaucon-intervenes {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #2a241e 70%, #0e0a06 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-glaucon-intervenes .bg-arch { position:absolute; bottom:0; left:15%; right:15%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); border-radius: 30% 30% 0 0; }
.scn-glaucon-intervenes .bg-pedestal { position:absolute; bottom:0; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius: 2% 2% 0 0; }
.scn-glaucon-intervenes .figure-socrates { position:absolute; bottom:20%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi-socrates 5s ease-in-out infinite; }
.scn-glaucon-intervenes .figure-glaucon { position:absolute; bottom:20%; left:55%; width:45px; height:95px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi-glaucon 6s ease-in-out infinite; }
.scn-glaucon-intervenes .spear-ground { position:absolute; bottom:20%; left:48%; width:4px; height:60px; background: linear-gradient(180deg, #a08870 0%, #706050 100%); transform: rotate(15deg); transform-origin: bottom center; animation: gi-spear 8s ease-in-out infinite; }
.scn-glaucon-intervenes .torch { position:absolute; bottom:32%; left:70%; width:8px; height:20px; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%); border-radius: 10%; }
.scn-glaucon-intervenes .torch-glow { position:absolute; bottom:32%; left:70%; width:50px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); border-radius:50%; animation: gi-torch 2s ease-in-out infinite alternate; }
@keyframes gi-socrates { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.01) rotate(-2deg); } }
@keyframes gi-glaucon { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(3deg); } }
@keyframes gi-spear { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } }
@keyframes gi-torch { 0% { opacity:.6; transform:translate(-50%,-50%) scale(.9); } 100% { opacity:1; transform:translate(-50%,-50%) scale(1.15); } }

/* scene: india-and-ireland */
.scn-india-and-ireland {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
}
.scn-india-and-ireland .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); }
.scn-india-and-ireland .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-india-and-ireland .window-frame { position:absolute; top:15%; left:25%; width:50%; height:45%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius:4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); }
.scn-india-and-ireland .window-pane { position:absolute; top:17%; left:27%; width:46%; height:41%; background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, rgba(200,220,255,.3) 100%); border-radius:2px; animation: ii-glow 8s ease-in-out infinite alternate; }
.scn-india-and-ireland .figure { position:absolute; bottom:28%; left:35%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ii-figure 6s ease-in-out infinite; }
.scn-india-and-ireland .table { position:absolute; bottom:22%; left:45%; width:20%; height:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-india-and-ireland .candle { position:absolute; bottom:24%; left:50%; width:2%; height:8%; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px; transform:translateX(-50%); animation: ii-candle 4s ease-in-out infinite; }
.scn-india-and-ireland .curtains { position:absolute; top:15%; left:23%; width:54%; height:45%; background: linear-gradient(90deg, transparent 0%, #4a4a6a 15%, transparent 20%, transparent 80%, #4a4a6a 85%, transparent 100%); animation: ii-curtain 12s ease-in-out infinite; }
@keyframes ii-glow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }
@keyframes ii-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes ii-candle { 0%,100% { transform: translateX(-50%) scaleY(1); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } }
@keyframes ii-curtain { 0%,100% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } }

/* scene: voice-of-prudence */
.scn-voice-of-prudence {
  background: linear-gradient(180deg, #1e1e30 0%, #141425 40%, #0a0a18 100%), radial-gradient(ellipse at 60% 30%, #2a2a4e 0%, transparent 60%);
}
.scn-voice-of-prudence .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-voice-of-prudence .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); }
.scn-voice-of-prudence .desk { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-voice-of-prudence .figure { position:absolute; bottom:25%; left:45%; width:14%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vp-figure 8s ease-in-out infinite; }
.scn-voice-of-prudence .lamp { position:absolute; bottom:35%; left:50%; width:4%; height:6%; background: radial-gradient(circle at 50% 20%, #e0c080 0%, #c0a060 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 20px 6px #c0a060; animation: vp-lamp 5s ease-in-out infinite alternate; }
.scn-voice-of-prudence .books { position:absolute; bottom:25%; left:25%; width:15%; height:10%; background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%); border-radius:2px; box-shadow: 2px 0 4px rgba(0,0,0,.3); }
.scn-voice-of-prudence .inkwell { position:absolute; bottom:26%; left:38%; width:3%; height:4%; background: #2a2a3a; border-radius:50%; box-shadow: 0 1px 3px rgba(0,0,0,.5); }
.scn-voice-of-prudence .glow { position:absolute; bottom:20%; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,100,.15) 0%, transparent 70%); mix-blend-mode: screen; pointer-events:none; animation: vp-glow 10s ease-in-out infinite alternate; }
@keyframes vp-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes vp-lamp { 0%,100% { transform: scaleY(1); opacity:.8; box-shadow: 0 0 15px 4px #c0a060; } 50% { transform: scaleY(1.1); opacity:1; box-shadow: 0 0 25px 8px #c0a060; } }
@keyframes vp-glow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }

/* scene: utility-lost */
.scn-utility-lost {
  background: linear-gradient(180deg, #0e0e1e 0%, #060610 40%, #000000 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 80%);
}
.scn-utility-lost .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-utility-lost .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0e0e1e 0%, #000000 100%); }
.scn-utility-lost .doorway { position:absolute; top:15%; left:30%; width:40%; height:55%; background: #0a0a1a; border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-utility-lost .figure { position:absolute; bottom:10%; left:35%; width:10%; height:22%; background: linear-gradient(180deg, #0a0a12 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ul-figure 7s ease-in-out infinite; }
.scn-utility-lost .pendant { position:absolute; top:8%; left:48%; width:2%; height:6%; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius:2px; transform:translateX(-50%); animation: ul-pendant 6s ease-in-out infinite; }
.scn-utility-lost .light-cone { position:absolute; top:10%; left:40%; width:20%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(200,200,200,.08) 0%, transparent 70%); animation: ul-cone 8s ease-in-out infinite alternate; }
.scn-utility-lost .table { position:absolute; bottom:12%; left:45%; width:30%; height:3%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes ul-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes ul-pendant { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ul-cone { 0%,100% { opacity:.5; } 50% { opacity:.9; } }

/* scene: inherited-malady */
.scn-inherited-malady {
  background: linear-gradient(180deg, #12121e 0%, #0a0a14 40%, #020208 100%), radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-inherited-malady .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-inherited-malady .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0e0e1e 0%, #020208 100%); }
.scn-inherited-malady .portrait { position:absolute; top:15%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border:2px solid #4a4a5a; border-radius:4px; box-shadow: 0 0 10px rgba(0,0,0,.8); animation: im-portrait 12s ease-in-out infinite; }
.scn-inherited-malady .figure { position:absolute; bottom:10%; left:45%; width:12%; height:28%; background: linear-gradient(180deg, #0a0a12 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-figure 8s ease-in-out infinite; }
.scn-inherited-malady .bed { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:10px 10px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.6); }
.scn-inherited-malady .lamp { position:absolute; bottom:30%; left:20%; width:6%; height:10%; background: radial-gradient(circle at 50% 30%, #806040 0%, #402010 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 8px #402010; animation: im-lamp 5s ease-in-out infinite alternate; }
.scn-inherited-malady .window-bars { position:absolute; top:10%; right:10%; width:20%; height:35%; border:4px solid #2a2a3a; border-radius:4px; background: transparent; box-shadow: inset 0 0 0 0 transparent; animation: im-bars 15s ease-in-out infinite; }
.scn-inherited-malady .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes im-portrait { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes im-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes im-lamp { 0%,100% { opacity:.7; box-shadow: 0 0 20px 4px #402010; } 50% { opacity:1; box-shadow: 0 0 40px 12px #402010; } }
@keyframes im-bars { 0%,100% { opacity:.5; } 50% { opacity:.8; } }

/* Scene: conventional-property */
.scn-conventional-property {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%);
  overflow: hidden;
}
.scn-conventional-property .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); }
.scn-conventional-property .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-conventional-property .desk { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-conventional-property .globe { position:absolute; bottom:30%; left:35%; width:8%; height:16%; background: radial-gradient(circle at 40% 30%, #6a8a5a 0%, #3a5a2a 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: cp-globe 20s ease-in-out infinite alternate; }
.scn-conventional-property .lamp { position:absolute; bottom:34%; left:28%; width:4%; height:14%; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 5px rgba(200,180,80,0.5); animation: cp-lamp 4s ease-in-out infinite alternate; }
.scn-conventional-property .bookshelf { position:absolute; bottom:25%; right:10%; width:18%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-conventional-property .chair { position:absolute; bottom:18%; left:45%; width:12%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 0 0; }
.scn-conventional-property .paper-stack { position:absolute; bottom:26%; left:38%; width:8%; height:4%; background: #e0d0b0; border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cp-paper 6s ease-in-out infinite alternate; }

@keyframes cp-globe { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(30deg); } 100% { transform: rotateY(0deg); } }
@keyframes cp-lamp { 0% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(200,180,80,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,180,80,0.7); } }
@keyframes cp-paper { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-2px) scale(1.02); } }

/* Scene: power-of-organization */
.scn-power-of-organization {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
}
.scn-power-of-organization .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); }
.scn-power-of-organization .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-power-of-organization .table { position:absolute; bottom:22%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 6px 15px rgba(0,0,0,.5); }
.scn-power-of-organization .map { position:absolute; bottom:30%; left:25%; width:50%; height:18%; background: linear-gradient(135deg, #c8b88a 0%, #a89868 100%); border-radius: 4%; box-shadow: 0 0 15px rgba(0,0,0,.3); animation: po-map 2s ease-in-out infinite alternate; }
.scn-power-of-organization .candle { position:absolute; bottom:32%; left:50%; width:4%; height:16%; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 40% 40% 0 0; box-shadow: 0 0 25px 8px rgba(224,192,128,0.6); animation: po-candle 3s ease-in-out infinite alternate; }
.scn-power-of-organization .chair-left { position:absolute; bottom:18%; left:20%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0; }
.scn-power-of-organization .chair-right { position:absolute; bottom:18%; right:20%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0; }
.scn-power-of-organization .document { position:absolute; bottom:26%; left:40%; width:12%; height:6%; background: #d0c090; border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: po-doc 8s ease-in-out infinite alternate; }

@keyframes po-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes po-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(224,192,128,0.4); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(224,192,128,0.8); } }
@keyframes po-doc { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(2deg); } }

/* Scene: progress-acceleration */
.scn-progress-acceleration {
  background: 
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 70%);
}
.scn-progress-acceleration .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); }
.scn-progress-acceleration .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-progress-acceleration .bookshelf { position:absolute; bottom:25%; left:5%; width:15%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; }
.scn-progress-acceleration .scroll { position:absolute; bottom:28%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #d0c090 0%, #b0a070 100%); border-radius: 0 50% 50% 0 / 0 100% 100% 0; animation: pa-scroll 4s ease-in-out infinite alternate; }
.scn-progress-acceleration .figure { position:absolute; bottom:20%; left:50%; width:8%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-figure 2s ease-in-out infinite alternate; }
.scn-progress-acceleration .lamp { position:absolute; bottom:34%; right:20%; width:4%; height:16%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 6px rgba(200,160,96,0.6); animation: pa-lamp 3s ease-in-out infinite alternate; }
.scn-progress-acceleration .motion-lines { position:absolute; bottom:30%; left:20%; width:60%; height:2%; background: linear-gradient(90deg, transparent, #e0d0a0, transparent); filter: blur(2px); animation: pa-lines 1s linear infinite; }
.scn-progress-acceleration .glow { position:absolute; bottom:40%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(224,192,128,0.3) 0%, transparent 100%); animation: pa-glow 5s ease-in-out infinite alternate; }

@keyframes pa-scroll { 0% { transform: scaleX(1); opacity: 0.9; } 100% { transform: scaleX(1.1); opacity: 1; } }
@keyframes pa-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 100% { transform: translateX(10px) translateY(-5px) rotate(3deg); } }
@keyframes pa-lamp { 0% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(200,160,96,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,160,96,0.7); } }
@keyframes pa-lines { 0% { transform: translateX(-60px); } 100% { transform: translateX(60px); } }
@keyframes pa-glow { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

/* Scene: geometric-progress */
.scn-geometric-progress {
  background: 
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 40%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 0%, #4a5a5a 0%, transparent 70%);
}
.scn-geometric-progress .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%); }
.scn-geometric-progress .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); }
.scn-geometric-progress .blackboard { position:absolute; bottom:28%; left:10%; width:60%; height:35%; background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 4%; box-shadow: 0 4px 15px rgba(0,0,0,.5); }
.scn-geometric-progress .circle-large { position:absolute; bottom:38%; left:30%; width:20%; height:20%; border-radius: 50%; background: radial-gradient(circle, #8a9a7a 0%, transparent 70%); border: 2px solid #b0c0a0; animation: gp-circle-large 4s ease-in-out infinite alternate; }
.scn-geometric-progress .circle-small { position:absolute; bottom:45%; left:38%; width:8%; height:8%; border-radius: 50%; background: radial-gradient(circle, #b0c0a0 0%, transparent 70%); border: 1px solid #d0e0c0; animation: gp-circle-small 3s ease-in-out infinite alternate; }
.scn-geometric-progress .chalk-lines { position:absolute; bottom:35%; left:15%; width:50%; height:2%; background: linear-gradient(90deg, #d0d0c0 0%, transparent 100%); filter: blur(1px); animation: gp-chalk 6s ease-in-out infinite alternate; }
.scn-geometric-progress .figure { position:absolute; bottom:20%; left:55%; width:8%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gp-figure 3s ease-in-out infinite alternate; }
.scn-geometric-progress .lamp { position:absolute; bottom:34%; right:15%; width:4%; height:16%; background: linear-gradient(180deg, #c0b080 0%, #a09060 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 6px rgba(192,176,128,0.6); animation: gp-lamp 3s ease-in-out infinite alternate; }
.scn-geometric-progress .spinning-wheel { position:absolute; bottom:32%; left:70%; width:10%; height:10%; border-radius: 50%; background: conic-gradient(#a0b090 0%, #c0d0b0 20%, #a0b090 40%, #c0d0b0 60%, #a0b090 80%, #c0d0b0 100%); animation: gp-wheel 1s linear infinite; }

@keyframes gp-circle-large { 0% { transform: scale(1); opacity: 0.6; } 100% { transform: scale(1.2); opacity: 1; } }
@keyframes gp-circle-small { 0% { transform: scale(1); opacity: 0.4; } 100% { transform: scale(1.3); opacity: 0.8; } }
@keyframes gp-chalk { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes gp-figure { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-5px) rotate(5deg); } }
@keyframes gp-lamp { 0% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(192,176,128,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 10px rgba(192,176,128,0.7); } }
@keyframes gp-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* scene 1: ideal-pattern */
.scn-ideal-pattern { background: linear-gradient(180deg, #2a241c 0%, #3d3228 40%, #1e1812 100%), radial-gradient(ellipse at 50% 30%, #4a3e32 0%, transparent 60%); }
.scn-ideal-pattern .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3c3228 0%, #1e1812 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; opacity:0.6; }
.scn-ideal-pattern .tabletop { position:absolute; bottom:20%; left:0; right:0; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-ideal-pattern .tablet { position:absolute; bottom:35%; left:50%; width:120px; height:70px; transform:translateX(-50%); background: linear-gradient(135deg, #b8a88a 0%, #8a7a62 60%, #6a5a4a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,200,0.2); animation: ip-tablet 8s ease-in-out infinite; }
.scn-ideal-pattern .stylus { position:absolute; bottom:38%; left:52%; width:60px; height:4px; background: linear-gradient(90deg, #c8b090 0%, #705030 100%); border-radius: 2px; transform-origin: 50% 50%; transform: rotate(-20deg); animation: ip-stylus 6s ease-in-out infinite; }
.scn-ideal-pattern .hand { position:absolute; bottom:36%; left:44%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 70%, #3a2a1e 30%, #1a120a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform: rotate(10deg); animation: ip-hand 6s ease-in-out infinite; }
.scn-ideal-pattern .lamp-glow { position:absolute; bottom:48%; left:30%; width:80px; height:80px; background: radial-gradient(circle, #f0c060 0%, #b08040 40%, transparent 70%); border-radius:50%; opacity:0.5; animation: ip-glow 4s ease-in-out infinite alternate; }
.scn-ideal-pattern .lamp-body { position:absolute; bottom:48%; left:30%; width:14px; height:20px; background: linear-gradient(180deg, #6a5040 0%, #3a2a1e 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: translate(33px, 20px); }
@keyframes ip-tablet { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes ip-stylus { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }
@keyframes ip-hand { 0%,100% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(8deg) translate(2px, -2px); } }
@keyframes ip-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }

/* scene 2: divisions-of-knowledge */
.scn-divisions-of-knowledge { background: linear-gradient(180deg, #1e1a2e 0%, #2c2640 50%, #16121e 100%), radial-gradient(ellipse at 50% 30%, #2c2640 0%, transparent 60%); }
.scn-divisions-of-knowledge .bg-cave { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e1a2e 0%, #0e0a16 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; }
.scn-divisions-of-knowledge .divider-h { position:absolute; top:50%; left:10%; right:10%; height:2px; background: linear-gradient(90deg, transparent 0%, #5a4e6a 50%, transparent 100%); animation: dk-line 12s ease-in-out infinite; }
.scn-divisions-of-knowledge .divider-v { position:absolute; top:10%; bottom:10%; left:50%; width:2px; background: linear-gradient(180deg, transparent 0%, #5a4e6a 50%, transparent 100%); animation: dk-line 14s ease-in-out infinite reverse; }
.scn-divisions-of-knowledge .beam { position:absolute; top:20%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(200,180,160,0.15) 0%, rgba(200,180,160,0.05) 100%); clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); animation: dk-beam 20s ease-in-out infinite; }
.scn-divisions-of-knowledge .shadow-left { position:absolute; top:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: dk-shadow 16s ease-in-out infinite; }
.scn-divisions-of-knowledge .shadow-right { position:absolute; top:35%; right:10%; width:30%; height:35%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: dk-shadow 18s ease-in-out infinite reverse; }
@keyframes dk-line { 0%,100% { opacity:0.3; } 50% { opacity:0.8; } }
@keyframes dk-beam { 0%,100% { transform: translateX(-10px) rotate(-2deg); opacity:0.2; } 50% { transform: translateX(10px) rotate(2deg); opacity:0.5; } }
@keyframes dk-shadow { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-10px) scaleY(0.9); } }

/* scene 3: first-term-of-series */
.scn-first-term-of-series { background: linear-gradient(180deg, #1c1a22 0%, #2a2634 40%, #1e1c26 100%), radial-gradient(ellipse at 50% 20%, #3a3044 0%, transparent 50%); }
.scn-first-term-of-series .bg-steps { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c2838 0%, #18141e 100%); border-radius: 0 0 20% 20%; }
.scn-first-term-of-series .step { position:absolute; bottom:30%; left:50%; height:15px; background: linear-gradient(180deg, #4a3e5a 0%, #2a2234 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-first-term-of-series .step-1 { width:160px; bottom:30%; }
.scn-first-term-of-series .step-2 { width:130px; bottom:38%; }
.scn-first-term-of-series .step-3 { width:100px; bottom:46%; }
.scn-first-term-of-series .shadow-stair { position:absolute; bottom:30%; left:50%; width:170px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 10%; filter: blur(4px); animation: fs-shadow 10s ease-in-out infinite; }
.scn-first-term-of-series .pillar { position:absolute; bottom:20%; width:12px; height:60%; background: linear-gradient(180deg, #3a304a 0%, #1e1a2a 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-first-term-of-series .pillar-a { left:20%; bottom:20%; }
.scn-first-term-of-series .pillar-b { left:40%; bottom:20%; }
.scn-first-term-of-series .pillar-c { left:60%; bottom:20%; }
@keyframes fs-shadow { 0%,100% { transform: translateX(-50%) scaleX(1); opacity:0.4; } 50% { transform: translateX(-50%) scaleX(0.9); opacity:0.6; } }

/* scene 4: understanding-and-reason */
.scn-understanding-and-reason { background: linear-gradient(180deg, #1a1824 0%, #282440 50%, #1a1824 100%), radial-gradient(ellipse at 50% 30%, #3c3050 0%, transparent 60%); }
.scn-understanding-and-reason .bg-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2640 0%, #0e0c18 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-understanding-and-reason .window { position:absolute; top:15%; left:50%; width:80px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3050 0%, #2a2240 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(100,80,140,0.3); }
.scn-understanding-and-reason .light-shaft { position:absolute; top:15%; left:50%; width:40px; height:70%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(220,200,180,0.2) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%); animation: ur-light 12s ease-in-out infinite; }
.scn-understanding-and-reason .figure { position:absolute; bottom:28%; left:50%; width:24px; height:50px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #2a2240 40%, #12101e 100%); border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%; animation: ur-figure 8s ease-in-out infinite; }
.scn-understanding-and-reason .circle-whole { position:absolute; top:20%; left:50%; width:100px; height:100px; transform: translateX(-50%); background: radial-gradient(circle, #6a5a8a 0%, #3a2e5e 40%, transparent 70%); border-radius:50%; opacity:0.3; animation: ur-circle 20s ease-in-out infinite; }
.scn-understanding-and-reason .glow-halo { position:absolute; top:18%; left:50%; width:120px; height:120px; transform: translateX(-50%); background: radial-gradient(circle, rgba(160,140,200,0.15) 0%, transparent 70%); border-radius:50%; animation: ur-glow 6s ease-in-out infinite alternate; }
@keyframes ur-light { 0%,100% { opacity:0.3; transform: translateX(-50%) skewX(-2deg); } 50% { opacity:0.7; transform: translateX(-50%) skewX(2deg); } }
@keyframes ur-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(0.97); } }
@keyframes ur-circle { 0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(180deg) scale(1.1); } }
@keyframes ur-glow { 0% { opacity:0.2; transform: translateX(-50%) scale(0.9); } 100% { opacity:0.5; transform: translateX(-50%) scale(1.2); } }

/* Scene: illustrations-from-modern-life */
.scn-illustrations-from-modern-life {
  background: linear-gradient(180deg, #2a2418 0%, #1f1a10 50%, #15120a 100%),
              radial-gradient(ellipse at 40% 80%, #4a3a28 0%, transparent 70%);
}
.scn-illustrations-from-modern-life .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #2c291c 0%, #1e1b10 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-illustrations-from-modern-life .bookshelf {
  position:absolute; bottom:20%; left:5%; width:50%; height:60%;
  background: linear-gradient(90deg, #3c3020 0%, #2a1e10 100%);
  border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  overflow:visible;
}
.scn-illustrations-from-modern-life .book {
  position:absolute; width:8px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%);
  border-radius:2px;
}
.scn-illustrations-from-modern-life .book-1 {
  left:12%; bottom:10%;
  transform:rotate(-3deg);
  animation: mil-book 8s ease-in-out infinite;
}
.scn-illustrations-from-modern-life .book-2 {
  left:26%; bottom:20%;
  height:40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  transform:rotate(2deg);
  animation: mil-book 8s ease-in-out infinite reverse;
}
.scn-illustrations-from-modern-life .lamp {
  position:absolute; bottom:40%; left:70%;
  width:20px; height:30px;
  background: linear-gradient(180deg, #8a7a50 0%, #6a5a30 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.4);
}
.scn-illustrations-from-modern-life .glow {
  position:absolute; bottom:40%; left:70%;
  width:60px; height:60px;
  background: radial-gradient(circle, rgba(240,200,120,.35) 0%, rgba(240,200,120,.1) 40%, transparent 70%);
  transform:translate(-50%, -50%);
  border-radius:50%;
  animation: mil-glow 4s ease-in-out infinite alternate;
}
.scn-illustrations-from-modern-life .reader {
  position:absolute; bottom:25%; left:35%;
  width:30px; height:60px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1210 100%);
  border-radius:45% 45% 40% 40% / 50% 50% 30% 30%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.3);
  animation: mil-breathe 6s ease-in-out infinite;
}
@keyframes mil-book {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes mil-glow {
  0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.95); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}
@keyframes mil-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

/* Scene: two-disorders-of-eyesight */
.scn-two-disorders-of-eyesight {
  background: linear-gradient(90deg, #1a1812 0%, #2c261a 50%, #1a1812 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a28 0%, transparent 70%);
}
.scn-two-disorders-of-eyesight .back {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(135deg, #1e1c14 0%, #14120a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
}
.scn-two-disorders-of-eyesight .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a2418 0%, #1a1610 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
}
.scn-two-disorders-of-eyesight .figure-near {
  position:absolute; bottom:12%; left:20%;
  width:28px; height:70px;
  background: linear-gradient(180deg, #2c241a 0%, #181410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tdo-near 5s ease-in-out infinite;
}
.scn-two-disorders-of-eyesight .figure-far {
  position:absolute; bottom:12%; right:20%;
  width:28px; height:70px;
  background: linear-gradient(180deg, #2c241a 0%, #181410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tdo-far 7s ease-in-out infinite;
}
.scn-two-disorders-of-eyesight .near-focus {
  position:absolute; bottom:30%; left:8%;
  width:16px; height:16px;
  background: radial-gradient(circle, #c0a060 0%, rgba(192,160,96,0.3) 50%, transparent 70%);
  border-radius:50%;
  animation: tdo-glow 3s ease-in-out infinite alternate;
}
.scn-two-disorders-of-eyesight .far-focus {
  position:absolute; bottom:45%; right:35%;
  width:20px; height:20px;
  background: radial-gradient(circle, #a0b0c0 0%, rgba(160,176,192,0.3) 50%, transparent 70%);
  border-radius:50%;
  animation: tdo-glow 4s ease-in-out infinite alternate;
}
.scn-two-disorders-of-eyesight .shadow-left {
  position:absolute; bottom:10%; left:10%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: tdo-shift 8s ease-in-out infinite;
}
.scn-two-disorders-of-eyesight .shadow-right {
  position:absolute; bottom:10%; right:10%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: tdo-shift 8s ease-in-out infinite reverse;
}
@keyframes tdo-near {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes tdo-far {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes tdo-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 0.8; transform: scale(1.3); }
}
@keyframes tdo-shift {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}

/* Scene: young-men-unsettled */
.scn-Young-men-unsettled {
  background: linear-gradient(180deg, #1a1812 0%, #2c261a 40%, #1a1812 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a28 0%, transparent 70%);
}
.scn-Young-men-unsettled .bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #1e1c14 0%, #14120a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-Young-men-unsettled .desk {
  position:absolute; bottom:5%; left:15%; right:15%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius:4px 4px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,.4);
}
.scn-Young-men-unsettled .candle {
  position:absolute; bottom:28%; left:35%;
  width:12px; height:40px;
  background: linear-gradient(180deg, #8a7a50 0%, #6a5a30 100%);
  border-radius:4px;
}
.scn-Young-men-unsettled .flame {
  position:absolute; bottom:62%; left:35%; transform:translateX(0);
  width:10px; height:16px;
  background: radial-gradient(circle at 50% 80%, #f0c040 0%, #e08020 50%, transparent 80%);
  border-radius:50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: ymu-flame 2s ease-in-out infinite alternate;
}
.scn-Young-men-unsettled .paper {
  position:absolute; bottom:12%; left:40%; width:60px; height:40px;
  background: linear-gradient(180deg, #d0c8a0 0%, #b8b090 100%);
  border-radius:2px;
  transform:rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ymu-paper 10s ease-in-out infinite;
}
.scn-Young-men-unsettled .student {
  position:absolute; bottom:10%; left:48%;
  width:30px; height:68px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1210 100%);
  border-radius:45% 45% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ymu-seat 6s ease-in-out infinite;
}
.scn-Young-men-unsettled .shadow-move {
  position:absolute; bottom:0; left:20%; width:100px; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: ymu-shadow 8s ease-in-out infinite alternate;
}
@keyframes ymu-flame {
  0% { transform: translateX(-1px) scaleY(0.9); opacity:0.8; }
  50% { transform: translateX(1px) scaleY(1.1); opacity:1; }
  100% { transform: translateX(0) scaleY(1); opacity:0.9; }
}
@keyframes ymu-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ymu-seat {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ymu-shadow {
  0% { transform: scaleX(1); opacity:0.6; }
  100% { transform: scaleX(1.2); opacity:0.9; }
}

/* Scene: mathematician-vs-dialectician */
.scn-mathematician-vs-dialectician {
  background: linear-gradient(180deg, #1a1812 0%, #2c261a 50%, #1a1812 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a28 0%, transparent 70%);
}
.scn-mathematician-vs-dialectician .bg-panel {
  position:absolute; inset:10% 5% 10% 5%;
  background: linear-gradient(135deg, #2c2418 0%, #1e1810 100%);
  border-radius:8px;
  box-shadow: 0 0 40px rgba(0,0,0,.6);
}
.scn-mathematician-vs-dialectician .panel-left {
  position:absolute; inset:15% 50% 15% 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius:4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-mathematician-vs-dialectician .panel-right {
  position:absolute; inset:15% 8% 15% 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius:4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-mathematician-vs-dialectician .figure-math {
  position:absolute; bottom:25%; left:22%;
  width:28px; height:65px;
  background: linear-gradient(180deg, #2c241a 0%, #181410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mvd-lean 5s ease-in-out infinite;
}
.scn-mathematician-vs-dialectician .figure-dial {
  position:absolute; bottom:25%; right:22%;
  width:28px; height:65px;
  background: linear-gradient(180deg, #2c241a 0%, #181410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mvd-lean 6s ease-in-out infinite reverse;
}
.scn-mathematician-vs-dialectician .compass {
  position:absolute; bottom:30%; left:15%;
  width:8px; height:30px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius:2px;
  transform:rotate(-20deg);
  animation: mvd-tool 4s ease-in-out infinite;
}
.scn-mathematician-vs-dialectician .scroll {
  position:absolute; bottom:30%; right:15%;
  width:12px; height:40px;
  background: linear-gradient(180deg, #d0c8a0 0%, #b8b090 100%);
  border-radius:2px;
  transform:rotate(10deg);
  animation: mvd-tool 5s ease-in-out infinite reverse;
}
@keyframes mvd-lean {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes mvd-tool {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(0.9); }
  100% { transform: rotate(-20deg) scaleX(1); }
}

.scn-style-conforms-to-subject { background: radial-gradient(ellipse at 50% 80%, #3a2e1a 0%, #1e1810 70%, #0a0806 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.8); }
.scn-style-conforms-to-subject .desk { position:absolute; bottom:10%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #5a4230 0%, #3a2e1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-style-conforms-to-subject .scroll { position:absolute; bottom:30%; left:40%; width:80px; height:14px; background: linear-gradient(90deg, #c8a87a, #e0c098, #c8a87a); border-radius: 50%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: sc-scroll 8s ease-in-out infinite; }
.scn-style-conforms-to-subject .inkwell { position:absolute; bottom:42%; left:48%; width:16px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-style-conforms-to-subject .quill { position:absolute; bottom:40%; left:55%; width:4px; height:30px; background: linear-gradient(180deg, #d4c0a0 0%, #a08868 100%); border-radius: 50% 50% 10% 10%; transform: rotate(20deg); transform-origin: bottom center; animation: sc-quill 5s ease-in-out infinite; }
.scn-style-conforms-to-subject .lamp { position:absolute; bottom:50%; left:30%; width:24px; height:36px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-style-conforms-to-subject .glow { position:absolute; bottom:48%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #b08030 60%, transparent 80%); border-radius: 50%; animation: sc-glow 4s ease-in-out infinite alternate; }
.scn-style-conforms-to-subject .shadow { position:absolute; bottom:12%; left:15%; right:15%; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
@keyframes sc-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sc-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }
@keyframes sc-glow { 0% { opacity: 0.7; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }

.scn-obscurity-of-early-poets { background: radial-gradient(ellipse at 40% 70%, #2a2a1a 0%, #1a1a0e 80%), linear-gradient(180deg, #0e0e08, #1e1a12); }
.scn-obscurity-of-early-poets .wall { position:absolute; inset: 0 0 40% 0; background: linear-gradient(0deg, #2a2218, #1a140e); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-obscurity-of-early-poets .figure { position:absolute; bottom:30%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a12, #0e0e0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ob-figure 10s ease-in-out infinite; }
.scn-obscurity-of-early-poets .scroll { position:absolute; bottom:34%; left:24%; width:60px; height:10px; background: linear-gradient(90deg, #b89a6a, #d4b88a, #b89a6a); border-radius: 50%; transform: rotate(10deg); }
.scn-obscurity-of-early-poets .lamp { position:absolute; bottom:45%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #b09060, #705030); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); }
.scn-obscurity-of-early-poets .glow { position:absolute; bottom:44%; left:28%; width:36px; height:36px; background: radial-gradient(circle, #ffd080 0%, #d0a050 50%, transparent 80%); border-radius: 50%; animation: ob-glow 3s ease-in-out infinite alternate; }
.scn-obscurity-of-early-poets .dust-a { position:absolute; bottom:40%; left:10%; width:4px; height:4px; background: rgba(255,200,100,0.4); border-radius: 50%; filter: blur(1px); animation: ob-dust 12s linear infinite; }
.scn-obscurity-of-early-poets .dust-b { position:absolute; bottom:35%; left:20%; width:3px; height:3px; background: rgba(255,200,100,0.3); border-radius: 50%; animation: ob-dust 16s linear infinite 4s; }
.scn-obscurity-of-early-poets .dust-c { position:absolute; bottom:45%; left:15%; width:5px; height:5px; background: rgba(255,200,100,0.2); border-radius: 50%; filter: blur(2px); animation: ob-dust 20s linear infinite 8s; }
@keyframes ob-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ob-glow { 0% { opacity:0.6; transform:scale(0.9); } 100% { opacity:1; transform:scale(1.1); } }
@keyframes ob-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0; } 20% { opacity:0.8; } 80% { opacity:0.4; } 100% { transform: translateY(-30px) translateX(20px) scale(0.5); opacity:0; } }

.scn-theory-of-art { background: linear-gradient(180deg, #1e1a14, #2c241c), radial-gradient(ellipse at 50% 100%, #2c241c 0%, transparent 70%); }
.scn-theory-of-art .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #3a2e1a, #1e1810); }
.scn-theory-of-art .column { position:absolute; bottom:20%; left:30%; width:20px; height:100px; background: linear-gradient(90deg, #8a7a5a, #a09070, #8a7a5a); border-radius: 4px; box-shadow: 4px 0 10px rgba(0,0,0,0.4); }
.scn-theory-of-art .book { position:absolute; bottom:28%; left:40%; width:80px; height:16px; background: linear-gradient(90deg, #5a4a3a, #6a5a4a, #5a4a3a); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: th-book 9s ease-in-out infinite; }
.scn-theory-of-art .philosopher { position:absolute; bottom:22%; left:50%; width:36px; height:70px; background: linear-gradient(180deg, #1a1612, #0e0c0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-phil 12s ease-in-out infinite; }
.scn-theory-of-art .arm { position:absolute; bottom:35%; left:55%; width:10px; height:30px; background: linear-gradient(180deg, #1a1612, #0e0c0a); border-radius: 40% 40% 20% 20%; transform: rotate(30deg); transform-origin: top center; animation: th-arm 6s ease-in-out infinite; }
.scn-theory-of-art .torch { position:absolute; bottom:38%; left:58%; width:12px; height:28px; background: linear-gradient(180deg, #b09060, #705030); border-radius: 10% 10% 20% 20%; }
.scn-theory-of-art .flame { position:absolute; bottom:40%; left:57%; width:16px; height:20px; background: radial-gradient(circle at 50% 100%, #ffa040 0%, #ff6020 40%, transparent 70%); border-radius: 50%; animation: th-flame 2s ease-in-out infinite alternate; }
@keyframes th-book { 0% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(-3deg); } }
@keyframes th-phil { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes th-arm { 0% { transform: rotate(30deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(30deg); } }
@keyframes th-flame { 0% { transform: scaleY(0.8); opacity:0.8; } 100% { transform: scaleY(1.2); opacity:1; } }

.scn-plato-on-creative-arts { background: radial-gradient(ellipse at 50% 30%, #2a241c, #14100a), linear-gradient(180deg, #0c0a08, #1a1610); }
.scn-plato-on-creative-arts .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a2218, #1e1810); border-radius: 0 0 10% 10%; }
.scn-plato-on-creative-arts .colonnade { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: repeating-linear-gradient(90deg, #6a5a3a 0px, #6a5a3a 12px, transparent 12px, transparent 20px); opacity:0.3; mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%); }
.scn-plato-on-creative-arts .statue-base { position:absolute; bottom:15%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #8a7a5a, #6a5a3a); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-plato-on-creative-arts .amphora { position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #a09070, #6a5a3a); border-radius: 30% 30% 40% 40%; transform: scale(0.8); box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: pl-amphora 15s ease-in-out infinite; }
.scn-plato-on-creative-arts .shadow { position:absolute; bottom:12%; left:35%; right:35%; height:10%; background: linear-gradient(0deg, rgba(0,0,0,0.5), transparent); }
.scn-plato-on-creative-arts .light-ray { position:absolute; top:10%; left:30%; width:4px; height:60%; background: linear-gradient(180deg, rgba(255,200,100,0.15), transparent); transform: rotate(5deg); transform-origin: top center; animation: pl-ray 20s ease-in-out infinite alternate; }
@keyframes pl-amphora { 0%,100% { transform: scale(0.8) rotate(0deg); } 50% { transform: scale(0.82) rotate(1deg); } }
@keyframes pl-ray { 0% { opacity:0.3; transform: rotate(5deg); } 100% { opacity:0.6; transform: rotate(-5deg); } }

/* cicero-tyrant – dim warm interior, calm mood */
.scn-cicero-tyrant {
  background:
    radial-gradient(ellipse at 60% 20%, #2a1e14 0%, #0d0805 100%),
    linear-gradient(180deg, #1a120c 0%, #0d0805 100%);
}
.scn-cicero-tyrant .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #0d0805 100%); }
.scn-cicero-tyrant .throne { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:160px; height:200px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px rgba(0,0,0,.8); }
.scn-cicero-tyrant .tyrant { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:70px; height:120px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-cicero-tyrant .lamp   { position:absolute; bottom:10%; left:25%; width:12px; height:20px; background: #c86030; border-radius: 30% 30% 10% 10%; animation: ct-lamp 4s ease-in-out infinite alternate; }
.scn-cicero-tyrant .glow   { position:absolute; bottom:10%; left:25%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,96,48,.6) 0%, transparent 70%); border-radius:50%; transform: translate(-50%,-50%); animation: ct-glow 4s ease-in-out infinite alternate; }
.scn-cicero-tyrant .scroll { position:absolute; bottom:10%; right:20%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 20% 20% 10% 10%; transform: rotate(15deg); animation: ct-scroll 6s ease-in-out infinite; }
@keyframes ct-lamp   { 0% { opacity:.7; box-shadow: 0 0 20px 8px #c86030; } 50% { opacity:1; box-shadow: 0 0 40px 16px #d87040; } 100% { opacity:.8; box-shadow: 0 0 30px 12px #c86030; } }
@keyframes ct-glow   { 0% { transform: translate(-50%,-50%) scale(1); opacity:.7; } 50% { transform: translate(-50%,-50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,-50%) scale(.95); opacity:.8; } }
@keyframes ct-scroll { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } }

/* somnium-scipionis – dream, warm dim light, sleeping figure */
.scn-somnium-scipionis {
  background:
    radial-gradient(ellipse at 50% 80%, #1a140e 0%, #0a0705 100%),
    linear-gradient(180deg, #0a0705 0%, #1a140e 100%);
}
.scn-somnium-scipionis .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0705 0%, #1a140e 100%); }
.scn-somnium-scipionis .bed     { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:180px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 20px rgba(0,0,0,.7); }
.scn-somnium-scipionis .figure  { position:absolute; bottom:15%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ss-figure 8s ease-in-out infinite; }
.scn-somnium-scipionis .orb     { position:absolute; top:20%; left:50%; transform:translateX(-50%); width:30px; height:30px; background: radial-gradient(circle, #d09040 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 40px 10px #d09040; animation: ss-orb 10s ease-in-out infinite alternate; }
.scn-somnium-scipionis .stars   { position:absolute; top:5%; left:10%; right:10%; height:30%; background: radial-gradient(circle at 20% 30%, #fff 0%, transparent 10%), radial-gradient(circle at 60% 50%, #fff 0%, transparent 8%), radial-gradient(circle at 80% 20%, #fff 0%, transparent 12%); animation: ss-stars 5s ease-in-out infinite alternate; }
.scn-somnium-scipionis .window  { position:absolute; top:10%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%); border-radius:10%; box-shadow: inset 0 0 15px rgba(0,0,0,.8); }
@keyframes ss-figure { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-5px); } }
@keyframes ss-orb    { 0% { transform: translateX(-50%) scale(1); opacity:.7; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; box-shadow: 0 0 60px 20px #d09040; } 100% { transform: translateX(-50%) scale(.95); opacity:.8; } }
@keyframes ss-stars  { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }

/* cicero-not-original – study, calm dim light, writing scene */
.scn-cicero-not-original {
  background:
    radial-gradient(ellipse at 30% 50%, #1a120c 0%, #0d0805 100%),
    linear-gradient(180deg, #0d0805 0%, #1a120c 100%);
}
.scn-cicero-not-original .wall     { position:absolute; inset:0; background: linear-gradient(180deg, #1a120c 0%, #0d0805 100%); }
.scn-cicero-not-original .desk     { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:180px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%); border-radius:10%; box-shadow: 0 4px 20px rgba(0,0,0,.7); }
.scn-cicero-not-original .bust     { position:absolute; bottom:25%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); }
.scn-cicero-not-original .writer   { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:50px; height:90px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: co-writer 6s ease-in-out infinite; }
.scn-cicero-not-original .lamp     { position:absolute; bottom:15%; left:35%; width:12px; height:18px; background: #c86030; border-radius:30% 30% 10% 10%; animation: co-lamp 4s ease-in-out infinite alternate; }
.scn-cicero-not-original .scrolls  { position:absolute; bottom:5%; right:15%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius:10%; transform: rotate(10deg); }
@keyframes co-writer { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 75% { transform: translateX(-50%) rotate(4deg) translateY(-3px); } }
@keyframes co-lamp   { 0% { opacity:.6; box-shadow: 0 0 15px 6px #c86030; } 50% { opacity:1; box-shadow: 0 0 30px 12px #d87040; } 100% { opacity:.7; box-shadow: 0 0 20px 8px #c86030; } }

/* augustines-motive – dark dim cell, trembling figure, earthquake */
.scn-augustines-motive {
  background:
    radial-gradient(ellipse at 50% 30%, #1a0f0a 0%, #080400 100%),
    linear-gradient(180deg, #080400 0%, #1a0f0a 100%);
}
.scn-augustines-motive .cell-wall { position:absolute; inset:0; background: linear-gradient(180deg, #0a0500 0%, #1a0f0a 100%); }
.scn-augustines-motive .figure    { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:60px; height:100px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: am-shake 1.5s ease-in-out infinite; }
.scn-augustines-motive .cross     { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:8px; height:50px; background: #3a2a1a; border-radius:10%; box-shadow: 0 0 10px rgba(200,100,50,.3); animation: am-cross 3s ease-in-out infinite alternate; }
.scn-augustines-motive .candle    { position:absolute; bottom:30%; right:20%; width:10px; height:25px; background: linear-gradient(180deg, #c86030 0%, #a04020 100%); border-radius:20% 20% 10% 10%; animation: am-candle 2s ease-in-out infinite alternate; }
.scn-augustines-motive .flame     { position:absolute; bottom:55%; right:20%; width:14px; height:20px; background: radial-gradient(circle, #ff8020 0%, #c86030 60%, transparent 100%); border-radius:50%; transform: translate(0, -50%); animation: am-flame 0.8s ease-in-out infinite alternate; }
.scn-augustines-motive .crack     { position:absolute; top:10%; left:10%; width:120px; height:4px; background: #1a0f0a; border-radius:10%; transform: rotate(-30deg); box-shadow: 0 0 2px rgba(0,0,0,.8); animation: am-crack 10s linear infinite; }
@keyframes am-shake  { 0%,100% { transform: translateX(-50%) rotate(0deg); } 10% { transform: translateX(-50%) rotate(2deg); } 20% { transform: translateX(-50%) rotate(-3deg); } 30% { transform: translateX(-50%) rotate(1deg); } 40% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } }
@keyframes am-cross  { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes am-candle { 0% { opacity:.6; box-shadow: 0 0 10px 4px #c86030; } 50% { opacity:1; box-shadow: 0 0 20px 8px #d87040; } 100% { opacity:.7; box-shadow: 0 0 14px 5px #c86030; } }
@keyframes am-flame  { 0% { transform: translate(0, -50%) scale(1) rotate(0deg); } 25% { transform: translate(1px, -48%) scale(1.1) rotate(5deg); } 50% { transform: translate(-1px, -52%) scale(0.95) rotate(-5deg); } 75% { transform: translate(2px, -47%) scale(1.05) rotate(3deg); } 100% { transform: translate(0, -50%) scale(1) rotate(0deg); } }
@keyframes am-crack  { 0% { opacity:.3; width:0; } 50% { opacity:1; width:120px; } 100% { opacity:.4; width:0; } }

.scn-pheidias-and-proportion {
  background: linear-gradient(180deg, #2a2018 0%, #1e1612 50%, #3a2a1e 100%), radial-gradient(ellipse at 70% 30%, #6a4a2a 0%, transparent 60%);
}
.scn-pheidias-and-proportion .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3d3126 0%, #281e16 100%); opacity: 0.6;
}
.scn-pheidias-and-proportion .pedestal {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 45%; background: linear-gradient(180deg, #5a4030 0%, #2e1e12 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: pheid-ped 12s ease-in-out infinite alternate;
}
.scn-pheidias-and-proportion .statue {
  position: absolute; bottom: 32%; left: 40%; width: 20%; height: 50%; background: radial-gradient(ellipse at 50% 20%, #ab8a6a 0%, #7a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 20px rgba(0,0,0,0.5); animation: pheid-statue 8s ease-in-out infinite;
}
.scn-pheidias-and-proportion .torch {
  position: absolute; bottom: 50%; left: 22%; width: 4%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20%; animation: pheid-torch 3s ease-in-out infinite alternate;
}
.scn-pheidias-and-proportion .glow {
  position: absolute; bottom: 50%; left: 20%; width: 10%; height: 20%; background: radial-gradient(circle, #f0c070 0%, #c08030 40%, transparent 70%); opacity: 0.7; pointer-events: none; animation: pheid-glow 4s ease-in-out infinite alternate;
}
.scn-pheidias-and-proportion .compass {
  position: absolute; bottom: 35%; left: 55%; width: 8%; height: 8%; background: radial-gradient(circle, #c0a080 0%, #7a5a3a 100%); border-radius: 50%; border: 2px solid #5a4a2a; box-shadow: 0 0 10px rgba(0,0,0,0.4); animation: pheid-compass 10s linear infinite;
}
.scn-pheidias-and-proportion .scroll {
  position: absolute; bottom: 28%; left: 52%; width: 12%; height: 10%; background: linear-gradient(135deg, #d4bea0 0%, #b49a7a 100%); border-radius: 5% 5% 50% 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: pheid-scroll 15s ease-in-out infinite alternate;
}
.scn-pheidias-and-proportion .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); pointer-events: none;
}
@keyframes pheid-ped { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pheid-statue { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(-1deg); } }
@keyframes pheid-torch { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 100% { transform: scaleY(1.05) translateY(-3px); opacity: 1; } }
@keyframes pheid-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes pheid-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pheid-scroll { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(-4px) scaleX(1.05); } }

.scn-emotional-vs-rational {
  background: linear-gradient(180deg, #2e241e 0%, #1e1612 50%, #3a2a1e 100%), radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-emotional-vs-rational .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2e26 0%, #1e1612 100%); opacity: 0.7;
}
.scn-emotional-vs-rational .table {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: emot-table 20s ease-in-out infinite alternate;
}
.scn-emotional-vs-rational .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 35%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emot-figleft 6s ease-in-out infinite;
}
.scn-emotional-vs-rational .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 12%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emot-figright 7s ease-in-out infinite alternate;
}
.scn-emotional-vs-rational .book {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 12%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 5% 5% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: emot-book 15s linear infinite;
}
.scn-emotional-vs-rational .mask {
  position: absolute; bottom: 35%; left: 38%; width: 8%; height: 10%; background: radial-gradient(ellipse at 50% 50%, #d4b48a 0%, #b48a6a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: emot-mask 8s ease-in-out infinite alternate;
}
.scn-emotional-vs-rational .flame {
  position: absolute; bottom: 40%; left: 48%; width: 4%; height: 12%; background: linear-gradient(180deg, #f0c060 0%, #c08020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px #f0a040; animation: emot-flame 2s ease-in-out infinite alternate;
}
@keyframes emot-table { 0% { transform: translateY(0); } 100% { transform: translateY(1px); } }
@keyframes emot-figleft { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-2deg); } }
@keyframes emot-figright { 0% { transform: rotate(1deg); } 100% { transform: rotate(-1deg) translateX(-2px); } }
@keyframes emot-book { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes emot-mask { 0% { transform: scale(1) rotate(0deg); } 100% { transform: scale(1.05) rotate(5deg); } }
@keyframes emot-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 100% { transform: scaleY(1.2) translateY(-4px); opacity: 1; } }

.scn-indulgence-of-feelings {
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 50%, #1e120a 100%), radial-gradient(ellipse at 60% 30%, #8a6a3a 0%, transparent 70%);
}
.scn-indulgence-of-feelings .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3d2e1e 0%, #1e120a 100%); opacity: 0.6;
}
.scn-indulgence-of-feelings .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #5a4030 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: indul-desk 18s ease-in-out infinite alternate;
}
.scn-indulgence-of-feelings .figure-sitting {
  position: absolute; bottom: 25%; left: 40%; width: 15%; height: 40%; background: linear-gradient(180deg, #7a5a4a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: indul-figure 9s ease-in-out infinite;
}
.scn-indulgence-of-feelings .quill {
  position: absolute; bottom: 32%; left: 48%; width: 2%; height: 20%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 40% 40% 0 0; transform: rotate(15deg); animation: indul-quill 4s ease-in-out infinite alternate;
}
.scn-indulgence-of-feelings .inkwell {
  position: absolute; bottom: 28%; left: 44%; width: 6%; height: 8%; background: radial-gradient(circle, #2a1a0a 0%, #0a0602 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.6); animation: indul-ink 12s ease-in-out infinite alternate;
}
.scn-indulgence-of-feelings .sparkles {
  position: absolute; bottom: 35%; left: 20%; width: 30%; height: 30%; background: radial-gradient(circle at 30% 40%, #f0c080 0%, transparent 70%), radial-gradient(circle at 70% 60%, #f0d0a0 0%, transparent 70%); opacity: 0.3; pointer-events: none; animation: indul-spark 6s ease-in-out infinite alternate;
}
@keyframes indul-desk { 0% { transform: translateY(0); } 100% { transform: translateY(1px); } }
@keyframes indul-figure { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg); } }
@keyframes indul-quill { 0% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes indul-ink { 0% { transform: scale(1); } 100% { transform: scale(1.05); } }
@keyframes indul-spark { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-arts-harmonizing-effect {
  background: linear-gradient(180deg, #2a221e 0%, #1a1210 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 60%);
}
.scn-arts-harmonizing-effect .chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a22 0%, #1a1210 100%); opacity: 0.5;
}
.scn-arts-harmonizing-effect .lyre {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 45%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 4px 20px rgba(0,0,0,0.4); animation: harmo-lyre 10s ease-in-out infinite alternate;
}
.scn-arts-harmonizing-effect .hand {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 12%; background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%); border-radius: 50% 50% 40% 40%; transform-origin: top center; animation: harmo-hand 4s ease-in-out infinite;
}
.scn-arts-harmonizing-effect .halo {
  position: absolute; bottom: 32%; left: 38%; width: 24%; height: 24%; background: radial-gradient(circle, rgba(200,160,100,0.4) 0%, transparent 70%); pointer-events: none; animation: harmo-halo 8s ease-in-out infinite alternate;
}
.scn-arts-harmonizing-effect .shadow-arch {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); border-radius: 50% 50% 0 0; pointer-events: none;
}
.scn-arts-harmonizing-effect .vibration {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 5%; background: linear-gradient(90deg, transparent 0%, rgba(200,160,100,0.3) 20%, rgba(200,160,100,0.6) 50%, rgba(200,160,100,0.3) 80%, transparent 100%); filter: blur(4px); animation: harmo-vibe 3s ease-in-out infinite alternate;
}
@keyframes harmo-lyre { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes harmo-hand { 0% { transform: translateX(0); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0); } }
@keyframes harmo-halo { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.7; transform: scale(1.2); } }
@keyframes harmo-vibe { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(5px) scaleX(1.2); } }

/* Scene: return-to-body – dawn calm */
.scn-return-to-body {
  background: linear-gradient(180deg, #2a2a4a 0%, #6a4a3a 40%, #a08060 70%, #d0b090 100%),
              radial-gradient(ellipse at 50% 30%, #f0d0a0 0%, transparent 70%);
}
.scn-return-to-body .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #806050 70%, #b09070 100%);
  animation: rtb-sky 20s ease-in-out infinite alternate;
}
.scn-return-to-body .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,240,0.6) 0%, transparent 4%),
              radial-gradient(circle at 40% 60%, rgba(255,255,240,0.4) 0%, transparent 3%),
              radial-gradient(circle at 70% 20%, rgba(255,255,240,0.5) 0%, transparent 3%);
  animation: rtb-stars 30s linear infinite;
}
.scn-return-to-body .body {
  position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: rtb-body 6s ease-in-out infinite;
}
.scn-return-to-body .figure {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  opacity: 0.7;
  animation: rtb-figure 8s ease-in-out infinite alternate;
}
.scn-return-to-body .glow {
  position: absolute; bottom: 45%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0d0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: rtb-glow 4s ease-in-out infinite alternate;
}
.scn-return-to-body .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes rtb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; background-position: 0 0; }
}
@keyframes rtb-stars {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(10px); }
}
@keyframes rtb-body {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(-0.5deg); }
}
@keyframes rtb-figure {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) translateY(-15px) scale(0.9); opacity: 0.9; }
  100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.7; }
}
@keyframes rtb-glow {
  0% { box-shadow: 0 0 20px 10px rgba(240,208,160,0.3); opacity: 0.5; }
  50% { box-shadow: 0 0 40px 20px rgba(240,208,160,0.6); opacity: 0.8; }
  100% { box-shadow: 0 0 15px 5px rgba(240,208,160,0.2); opacity: 0.4; }
}

/* Scene: janus-like-republic – dim interior calm, two faces */
.scn-janus-like-republic {
  background: linear-gradient(180deg, #1a1a2e 0%, #3a2a2a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-janus-like-republic .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #4a3a3a 0px, #4a3a3a 30px, #3a2a2a 30px, #3a2a2a 60px);
  opacity: 0.3;
  animation: jlr-wall 20s linear infinite;
}
.scn-janus-like-republic .bust {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 100px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: jlr-bust 6s ease-in-out infinite alternate;
}
.scn-janus-like-republic .bust-reverse {
  position: absolute; bottom: 20%; right: 25%; width: 60px; height: 100px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 50% 50%;
  transform: scaleX(-1);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: jlr-bust 8s ease-in-out infinite alternate-reverse;
}
.scn-janus-like-republic .shadow {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: jlr-shadow 10s ease-in-out infinite alternate;
}
.scn-janus-like-republic .scroll {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 0 0 30% 30%;
  animation: jlr-scroll 12s ease-in-out infinite;
}
@keyframes jlr-wall {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.2; background-size: 60px 60px; }
}
@keyframes jlr-bust {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes jlr-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.2); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes jlr-scroll {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
}

/* Scene: hellenic-state-intention – camp, dim interior, calm */
.scn-hellenic-state-intention {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 30% 70%, #4a4a5a 0%, transparent 60%);
}
.scn-hellenic-state-intention .tent {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: hsi-tent 15s ease-in-out infinite alternate;
}
.scn-hellenic-state-intention .shield {
  position: absolute; bottom: 35%; left: 35%; width: 40px; height: 60px;
  background: radial-gradient(circle, #8a7a6a 0%, #6a5a4a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hsi-shield 4s ease-in-out infinite alternate;
}
.scn-hellenic-state-intention .spear {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  transform-origin: bottom center;
  animation: hsi-spear 6s ease-in-out infinite;
}
.scn-hellenic-state-intention .guard {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: hsi-guard 8s ease-in-out infinite alternate;
}
.scn-hellenic-state-intention .brazier {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 25px;
  background: radial-gradient(circle, #d08040 0%, #a06030 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 10px rgba(208,128,64,0.4);
  animation: hsi-brazier 3s ease-in-out infinite alternate;
}
@keyframes hsi-tent {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hsi-shield {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes hsi-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes hsi-guard {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes hsi-brazier {
  0% { box-shadow: 0 0 15px 5px rgba(208,128,64,0.3); }
  50% { box-shadow: 0 0 30px 15px rgba(208,128,64,0.6); }
  100% { box-shadow: 0 0 15px 5px rgba(208,128,64,0.3); }
}

/* Scene: spartan-influence – dim interior, individual subdued */
.scn-spartan-influence {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 70%);
}
.scn-spartan-influence .column {
  position: absolute; bottom: 0; left: 20%; width: 30px; height: 100%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: spi-column 20s ease-in-out infinite alternate;
}
.scn-spartan-influence .figure-chained {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 2px #6a5a4a;
  animation: spi-figure 5s ease-in-out infinite;
}
.scn-spartan-influence .laurel {
  position: absolute; bottom: 70%; left: 45%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 50%, 20% 0%, 40% 50%, 60% 0%, 80% 50%, 100% 0%);
  animation: spi-laurel 10s ease-in-out infinite alternate;
}
.scn-spartan-influence .tablet {
  position: absolute; bottom: 5%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: spi-tablet 8s ease-in-out infinite;
}
.scn-spartan-influence .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: spi-shadow 12s ease-in-out infinite alternate;
}
@keyframes spi-column {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(0.95); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes spi-figure {
  0%,100% { 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); }
}
@keyframes spi-laurel {
  0% { transform: translateY(0) rotate(-5deg); opacity: 0.5; }
  50% { transform: translateY(-5px) rotate(0deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(5deg); opacity: 0.5; }
}
@keyframes spi-tablet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes spi-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

.scn-youth-inexperience {
  background:
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #2a2218 0%, #3a2a1a 40%, #2a1a10 100%);
  background-blend-mode: overlay;
}
.scn-youth-inexperience .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, rgba(60,45,30,0.6) 0%, transparent 100%); }
.scn-youth-inexperience .desk { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow:0 -6px 12px rgba(0,0,0,0.4); }
.scn-youth-inexperience .chair { position:absolute; bottom:25%; left:38%; width:40px; height:60px; background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:10px; transform:perspective(100px) rotateX(5deg); }
.scn-youth-inexperience .figure-youth { position:absolute; bottom:25%; left:40%; width:30px; height:70px; background:linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:syi-breathe 6s ease-in-out infinite alternate; }
.scn-youth-inexperience .candle { position:absolute; bottom:20%; left:55%; width:6px; height:20px; background:linear-gradient(180deg, #e8c088 0%, #b08040 100%); border-radius:50% 50% 20% 20% / 40% 40% 20% 20%; }
.scn-youth-inexperience .glow-candle { position:absolute; bottom:18%; left:53%; width:20px; height:20px; background:radial-gradient(circle, rgba(255,220,150,0.9) 0%, rgba(255,200,100,0.3) 40%, transparent 70%); border-radius:50%; animation:syi-flicker 3s ease-in-out infinite alternate; }
.scn-youth-inexperience .window-shape { position:absolute; top:10%; left:65%; width:60px; height:80px; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border:4px solid #4a3a2a; border-radius:4px; }
.scn-youth-inexperience .curtain-left { position:absolute; top:8%; left:62%; width:20px; height:85px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4px; transform-origin:top left; animation:syi-sway 15s ease-in-out infinite alternate; }
.scn-youth-inexperience .curtain-right { position:absolute; top:8%; right:20%; width:20px; height:85px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4px; transform-origin:top right; animation:syi-sway 15s ease-in-out infinite alternate-reverse; }

@keyframes syi-breathe { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes syi-flicker { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.98); } }
@keyframes syi-sway { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }

.scn-rising-flood-of-passions {
  background:
    radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 40%, #2a1a2a 100%);
}
.scn-rising-flood-of-passions .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:60% 60% 0 0 / 20% 20% 0 0; }
.scn-rising-flood-of-passions .wall-back { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #1a1a3a 0%, #2a1a3a 50%, #3a1a2a 100%); opacity:0.6; }
.scn-rising-flood-of-passions .figure-kneeling { position:absolute; bottom:20%; left:50%; width:40px; height:60px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:rfp-kneel 4s ease-in-out infinite alternate; }
.scn-rising-flood-of-passions .shadow-wave { position:absolute; bottom:15%; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a2a4a 0%, transparent 100%); border-radius:40% 60% 0 0; animation:rfp-wave 8s ease-in-out infinite alternate; }
.scn-rising-flood-of-passions .shadow-wave-b { position:absolute; bottom:10%; left:-10%; right:-10%; height:40%; background:linear-gradient(180deg, #4a2a5a 0%, transparent 100%); border-radius:50% 50% 0 0; animation:rfp-wave 12s ease-in-out infinite alternate-reverse; }
.scn-rising-flood-of-passions .flood-ripple { position:absolute; bottom:25%; left:30%; width:80px; height:80px; background:radial-gradient(circle, rgba(60,40,80,0.3) 0%, transparent 70%); border-radius:50%; animation:rfp-ripple 3s ease-out infinite; }
.scn-rising-flood-of-passions .flood-ripple-b { position:absolute; bottom:20%; right:25%; width:100px; height:100px; background:radial-gradient(circle, rgba(80,40,60,0.2) 0%, transparent 70%); border-radius:50%; animation:rfp-ripple 4s ease-out infinite 2s; }

@keyframes rfp-kneel { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes rfp-wave { 0% { transform:translateY(0) scaleY(0.9); } 50% { transform:translateY(-8px) scaleY(1.1); } 100% { transform:translateY(0) scaleY(0.95); } }
@keyframes rfp-ripple { 0% { transform:scale(0.5); opacity:0.8; } 50% { transform:scale(1.2); opacity:0.3; } 100% { transform:scale(1.5); opacity:0; } }

.scn-charge-of-youth {
  background:
    radial-gradient(ellipse at 30% 60%, #2a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 40%, #1a2a1a 100%);
}
.scn-charge-of-youth .bg-layer { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.4) 100%); }
.scn-charge-of-youth .guardian-silhouette { position:absolute; bottom:5%; left:20%; width:50px; height:120px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:perspective(200px) rotateY(-15deg); animation:coy-watch 6s ease-in-out infinite alternate; }
.scn-charge-of-youth .sleeping-child { position:absolute; bottom:8%; right:30%; width:70px; height:40px; background:linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:40% 40% 20% 20% / 30% 30% 20% 20%; animation:coy-sleep 8s ease-in-out infinite; }
.scn-charge-of-youth .lamp-light { position:absolute; bottom:30%; right:20%; width:12px; height:30px; background:linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow:0 0 20px 8px rgba(200,160,96,0.4); animation:coy-glow 4s ease-in-out infinite alternate; }
.scn-charge-of-youth .blanket { position:absolute; bottom:7%; right:25%; width:60px; height:20px; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; }
.scn-charge-of-youth .pillow { position:absolute; bottom:16%; right:38%; width:30px; height:12px; background:linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:40% 40% 20% 20%; }
.scn-charge-of-youth .window-night { position:absolute; top:10%; left:60%; width:50px; height:60px; background:linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border:3px solid #2a2a2a; border-radius:4px; box-shadow:inset 0 0 15px rgba(0,0,0,0.5); }

@keyframes coy-watch { 0% { transform:rotateY(-15deg) translateY(0); } 50% { transform:rotateY(-10deg) translateY(-2px); } 100% { transform:rotateY(-15deg) translateY(0); } }
@keyframes coy-sleep { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.99) translateY(1px); } 100% { transform:scaleY(1); } }
@keyframes coy-glow { 0% { opacity:0.7; box-shadow:0 0 15px 6px rgba(200,160,96,0.3); } 50% { opacity:1; box-shadow:0 0 30px 12px rgba(200,160,96,0.6); } 100% { opacity:0.8; box-shadow:0 0 20px 8px rgba(200,160,96,0.4); } }

.scn-family-interferes-with-higher {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #2a1a10 100%);
}
.scn-family-interferes-with-higher .room-back { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); }
.scn-family-interferes-with-higher .table { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:0 0 10px 10px; box-shadow:0 -4px 10px rgba(0,0,0,0.5); }
.scn-family-interferes-with-higher .chair-left { position:absolute; bottom:28%; left:20%; width:30px; height:50px; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:8px; transform:perspective(100px) rotateX(5deg); }
.scn-family-interferes-with-higher .chair-right { position:absolute; bottom:28%; right:20%; width:30px; height:50px; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:8px; transform:perspective(100px) rotateX(5deg); }
.scn-family-interferes-with-higher .figure-left { position:absolute; bottom:28%; left:28%; width:25px; height:60px; background:linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:fiw-turn 12s ease-in-out infinite alternate; }
.scn-family-interferes-with-higher .figure-right { position:absolute; bottom:28%; right:28%; width:25px; height:60px; background:linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:fiw-turn 12s ease-in-out infinite alternate-reverse; }
.scn-family-interferes-with-higher .figure-separate { position:absolute; bottom:28%; left:48%; width:25px; height:70px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation:fiw-stand 8s ease-in-out infinite; }
.scn-family-interferes-with-higher .lamp-overhead { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:20px; height:30px; background:linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow:0 0 25px 10px rgba(200,160,96,0.3); animation:fiw-flicker 5s ease-in-out infinite alternate; }

@keyframes fiw-turn { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(10deg); } 100% { transform:rotateY(-5deg); } }
@keyframes fiw-stand { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes fiw-flicker { 0% { opacity:0.8; transform:translateX(-50%) scaleY(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.05); } 100% { opacity:0.85; transform:translateX(-50%) scaleY(0.95); } }

.scn-aristotle-on-poetry { background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #1e140e 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-aristotle-on-poetry .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); }
.scn-aristotle-on-poetry .desk { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-aristotle-on-poetry .scroll { position:absolute; bottom:20%; left:38%; width:100px; height:8px; background: linear-gradient(90deg, #c8a870 0%, #e0c090 50%, #b89860 100%); border-radius: 50%; transform-origin: left center; animation: ar-scroll 8s ease-in-out infinite alternate; }
.scn-aristotle-on-poetry .candle-base { position:absolute; bottom:27%; left:48%; width:14px; height:50px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 3px 3px 6px 6px; }
.scn-aristotle-on-poetry .flame { position:absolute; bottom:52%; left:49%; width:10px; height:16px; background: radial-gradient(ellipse, #ffe080 0%, #ffb040 50%, #804020 100%); border-radius: 50%; animation: ar-flame 1.5s ease-in-out infinite alternate; }
.scn-aristotle-on-poetry .glow { position:absolute; bottom:30%; left:44%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,80,.2) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: ar-glow 3s ease-in-out infinite alternate; }
.scn-aristotle-on-poetry .books { position:absolute; bottom:13%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 4px 0 0 #3a1a0a, 8px 0 0 #6a3a2a; }
@keyframes ar-scroll { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ar-flame { 0% { transform: scaleY(1) translateY(0); } 30% { transform: scaleY(1.1) translateY(-1px); } 60% { transform: scaleY(0.9) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ar-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }

.scn-illusion-of-particulars { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%); }
.scn-illusion-of-particulars .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-illusion-of-particulars .mirror-frame { position:absolute; top:15%; left:30%; width:180px; height:220px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 12px; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-illusion-of-particulars .mirror-surface { position:absolute; top:19%; left:33%; width:160px; height:200px; background: linear-gradient(180deg, rgba(180,200,220,.5) 0%, rgba(100,120,150,.3) 100%); border-radius: 8px; backdrop-filter: blur(2px); animation: il-shimmer 6s ease-in-out infinite alternate; }
.scn-illusion-of-particulars .table { position:absolute; bottom:12%; left:20%; right:20%; height:16%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 -2px 8px rgba(0,0,0,.4); }
.scn-illusion-of-particulars .candle { position:absolute; bottom:32%; left:48%; width:10px; height:45px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; }
.scn-illusion-of-particulars .reflection-shape { position:absolute; top:25%; left:36%; width:100px; height:130px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: il-reflect 9s ease-in-out infinite alternate; }
@keyframes il-shimmer { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.7; transform: scaleX(0.98); } }
@keyframes il-reflect { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(5px) scale(0.95); } 70% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }

.scn-plato-and-the-individual { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%), radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, transparent 60%); }
.scn-plato-and-the-individual .cave { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e14 0%, #1a100c 100%); }
.scn-plato-and-the-individual .fire { position:absolute; bottom:20%; left:15%; width:40px; height:60px; background: radial-gradient(ellipse, #ffa040 0%, #ff6040 40%, #802010 100%); border-radius: 50%; filter: blur(3px); animation: pl-fire 2s ease-in-out infinite alternate; }
.scn-plato-and-the-individual .shadow { position:absolute; bottom:10%; left:60%; width:100px; height:200px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-shadow 12s ease-in-out infinite; }
.scn-plato-and-the-individual .ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius: 30% 30% 0 0; }
.scn-plato-and-the-individual .wall-silhouette { position:absolute; top:10%; left:55%; width:80px; height:180px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); border-radius: 30% 30% 0 0; opacity: 0.6; }
.scn-plato-and-the-individual .glow { position:absolute; bottom:28%; left:10%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,160,64,.1) 0%, transparent 80%); filter: blur(12px); animation: pl-glow 4s ease-in-out infinite alternate; }
@keyframes pl-fire { 0% { transform: scaleY(1) rotate(0deg); } 30% { transform: scaleY(1.2) rotate(5deg); } 70% { transform: scaleY(0.9) rotate(-5deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes pl-shadow { 0% { transform: translateX(0) scaleY(1); opacity: 0.7; } 50% { transform: translateX(20px) scaleY(1.1); opacity: 0.9; } 100% { transform: translateX(-10px) scaleY(0.95); opacity: 0.6; } }
@keyframes pl-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }

.scn-poets-as-false-prophets { background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 40%, #0a0505 100%), radial-gradient(ellipse at 60% 30%, #3a1a1a 0%, transparent 70%); }
.scn-poets-as-false-prophets .throne { position:absolute; bottom:10%; left:35%; width:120px; height:140px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 0 30px rgba(0,0,0,.8); }
.scn-poets-as-false-prophets .tyrant-silhouette { position:absolute; bottom:15%; left:38%; width:60px; height:120px; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: po-breathe 6s ease-in-out infinite; }
.scn-poets-as-false-prophets .book { position:absolute; bottom:35%; left:58%; width:40px; height:30px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: po-book 8s ease-in-out infinite alternate; }
.scn-poets-as-false-prophets .chain { position:absolute; top:20%; left:55%; width:4px; height:80px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; animation: po-chain 5s ease-in-out infinite alternate; }
.scn-poets-as-false-prophets .glow { position:absolute; bottom:30%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,50,50,.15) 0%, transparent 80%); filter: blur(15px); animation: po-glow 4s ease-in-out infinite alternate; }
@keyframes po-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes po-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes po-chain { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(2deg) translateX(2px); } 70% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes po-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-pythagorean-music { 
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1a120c 40%, #0d0a06 100%),
    radial-gradient(ellipse at 60% 30%, #3a281a 0%, transparent 70%);
}
.scn-pythagorean-music .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); }
.scn-pythagorean-music .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e12 0%, #0d0a06 100%); border-radius: 0 0 0 0; }
.scn-pythagorean-music .lamp { position:absolute; bottom:38%; left:20%; width:8px; height:20px; background: #5a3a1a; border-radius:4px; box-shadow: 0 0 12px 4px #c08040; animation: pm-lamp 8s ease-in-out infinite alternate; }
.scn-pythagorean-music .figure { position:absolute; bottom:25%; left:50%; width:24px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0d0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pm-figure 12s ease-in-out infinite; }
.scn-pythagorean-music .lyre { position:absolute; bottom:30%; left:58%; width:22px; height:30px; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%); border-radius: 0 0 8px 8px; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-pythagorean-music .scroll { position:absolute; bottom:28%; left:35%; width:16px; height:20px; background: linear-gradient(180deg, #b89870 0%, #8a7050 100%); border-radius: 2px 2px 8px 8px; transform: rotate(-10deg); }
.scn-pythagorean-music .window { position:absolute; top:12%; right:10%; width:50px; height:80px; background: #1a2a3a; border: 3px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-pythagorean-music .glow { position:absolute; top:10%; right:10%; width:50px; height:80px; background: radial-gradient(circle, rgba(192,128,64,.15) 0%, transparent 80%); mix-blend-mode: overlay; pointer-events:none; animation: pm-glow 10s ease-in-out infinite alternate; }
@keyframes pm-lamp { 0% { opacity:0.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:0.9; transform:scaleY(0.95) } }
@keyframes pm-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes pm-glow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-pythagorean-training { 
  background: 
    linear-gradient(180deg, #1e1a14 0%, #120e0a 50%, #0a0806 100%),
    radial-gradient(ellipse at 40% 50%, #2a1e12 0%, transparent 70%);
}
.scn-pythagorean-training .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); }
.scn-pythagorean-training .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1410 0%, #080604 100%); }
.scn-pythagorean-training .column { position:absolute; bottom:25%; left:25%; width:18px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-pythagorean-training .stool { position:absolute; bottom:27%; left:50%; width:30px; height:8px; background: #2a1e12; transform: translateX(-50%); border-radius: 2px; }
.scn-pythagorean-training .figure { position:absolute; bottom:27%; left:50%; width:26px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0d0906 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pt-figure 14s ease-in-out infinite; }
.scn-pythagorean-training .book { position:absolute; bottom:30%; left:55%; width:20px; height:14px; background: #8a7050; border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-pythagorean-training .lamp { position:absolute; bottom:40%; left:70%; width:8px; height:18px; background: #4a2a12; border-radius: 4px; box-shadow: 0 0 14px 6px #b08040; animation: pt-lamp 6s ease-in-out infinite alternate; }
.scn-pythagorean-training .glow { position:absolute; inset:0; background: radial-gradient(circle at 70% 40%, rgba(176,128,64,.12) 0%, transparent 60%); pointer-events:none; animation: pt-glow 12s ease-in-out infinite alternate; }
@keyframes pt-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes pt-lamp { 0% { opacity:0.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.08) } 100% { opacity:0.8; transform:scaleY(0.92) } }
@keyframes pt-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-traces-of-pythagoreanism { 
  background: 
    linear-gradient(180deg, #1a1612 0%, #0f0c08 40%, #080604 100%),
    radial-gradient(ellipse at 50% 20%, #2a221a 0%, transparent 60%);
}
.scn-traces-of-pythagoreanism .cell { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-traces-of-pythagoreanism .sphere { position:absolute; top:5%; left:50%; width:120px; height:120px; transform: translateX(-50%); background: radial-gradient(circle at 40% 40%, rgba(200,160,100,.15) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px rgba(180,140,80,.1); animation: tp-sphere 20s ease-in-out infinite alternate; }
.scn-traces-of-pythagoreanism .figure { position:absolute; bottom:25%; left:50%; width:22px; height:44px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0d0906 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp-figure 16s ease-in-out infinite; }
.scn-traces-of-pythagoreanism .tablet { position:absolute; bottom:30%; left:40%; width:24px; height:16px; background: #3a2a1a; border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-traces-of-pythagoreanism .dot-a { position:absolute; top:30%; left:35%; width:4px; height:4px; background: #6a5a3a; border-radius:50%; box-shadow: 0 0 6px 2px rgba(106,90,58,.3); animation: tp-dot 25s linear infinite; }
.scn-traces-of-pythagoreanism .dot-b { position:absolute; top:25%; right:30%; width:3px; height:3px; background: #8a7a5a; border-radius:50%; box-shadow: 0 0 4px 1px rgba(138,122,90,.2); animation: tp-dot 30s linear infinite reverse; }
.scn-traces-of-pythagoreanism .dot-c { position:absolute; top:15%; left:60%; width:5px; height:5px; background: #a09070; border-radius:50%; box-shadow: 0 0 8px 3px rgba(160,144,112,.25); animation: tp-dot 20s linear infinite; }
@keyframes tp-sphere { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes tp-figure { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes tp-dot { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-10px) } 100% { opacity:0.3; transform: translateY(0) } }

.scn-impossible-union { 
  background: 
    linear-gradient(180deg, #14121a 0%, #0c0e14 40%, #06080c 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-impossible-union .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1e1a28 0%, #0c0e14 100%); }
.scn-impossible-union .city { position:absolute; bottom:30%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 0 0 0 0; clip-path: polygon(0% 100%, 0% 60%, 20% 60%, 20% 40%, 40% 40%, 40% 60%, 60% 60%, 60% 30%, 80% 30%, 80% 60%, 100% 60%, 100% 100%); box-shadow: 0 -4px 20px rgba(0,0,0,.6); }
.scn-impossible-union .figure { position:absolute; bottom:32%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #0d0c12 0%, #06060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iu-figure 20s ease-in-out infinite; }
.scn-impossible-union .path { position:absolute; bottom:25%; left:32%; width:100px; height:20px; background: linear-gradient(90deg, #2a223a 0%, #12102a 100%); border-radius: 0 50% 50% 0; transform: skewX(-20deg); opacity:0.4; }
.scn-impossible-union .mist-a { position:absolute; top:15%; left:5%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(100,120,180,.08) 0%, transparent 70%); filter: blur(10px); animation: iu-mist 35s linear infinite; }
.scn-impossible-union .mist-b { position:absolute; top:25%; right:10%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(80,100,160,.05) 0%, transparent 60%); filter: blur(8px); animation: iu-mist 40s linear infinite reverse; }
.scn-impossible-union .glow { position:absolute; bottom:35%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,180,140,.06) 0%, transparent 70%); pointer-events:none; animation: iu-glow 15s ease-in-out infinite alternate; }
@keyframes iu-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-2deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes iu-mist { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes iu-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-platos-contradiction { background: linear-gradient(180deg, #1a1a1e 0%, #2a2420 40%, #3a2e24 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%); }
.scn-platos-contradiction .wall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #2c2824 0%, #3a322a 50%, #2a2420 100%); animation: pc-wall 20s ease-in-out infinite alternate; }
.scn-platos-contradiction .wall-shadow { position:absolute; inset:0 0 25% 0; background: radial-gradient(ellipse at 60% 40%, transparent 0%, rgba(0,0,0,0.25) 70%); animation: pc-shadow 14s ease-in-out infinite alternate; }
.scn-platos-contradiction .desk { position:absolute; bottom:20%; left:50%; width:140px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-platos-contradiction .scroll { position:absolute; bottom:24%; left:50%; width:60px; height:8px; transform:translateX(-50%) rotate(-2deg); background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pc-scroll 8s ease-in-out infinite alternate; }
.scn-platos-contradiction .oil-lamp { position:absolute; bottom:36%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #3a2a14 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; }
.scn-platos-contradiction .lamp-glow { position:absolute; bottom:35%; left:50%; width:30px; height:30px; transform:translateX(-50%) translateY(-10px); background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,180,80,0.2) 50%, transparent 100%); border-radius:50%; animation: pc-flicker 3s ease-in-out infinite alternate; }
.scn-platos-contradiction .column-left { position:absolute; bottom:25%; left:12%; width:16px; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 50%, #2a2218 100%); border-radius:4px 4px 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.4); }
.scn-platos-contradiction .column-right { position:absolute; bottom:25%; right:12%; width:16px; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 50%, #2a2218 100%); border-radius:4px 4px 0 0; box-shadow: -2px 0 6px rgba(0,0,0,0.4); }
@keyframes pc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pc-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes pc-scroll { 0% { transform:translateX(-50%) rotate(-3deg) translateY(0) } 50% { transform:translateX(-50%) rotate(0deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(2deg) translateY(0) } }
@keyframes pc-flicker { 0% { opacity:0.7; transform:translateX(-50%) translateY(-10px) scale(0.95) } 50% { opacity:1; transform:translateX(-50%) translateY(-12px) scale(1.05) } 100% { opacity:0.75; transform:translateX(-50%) translateY(-10px) scale(0.98) } }

.scn-enlightenment-not-enough { background: linear-gradient(180deg, #1e1e22 0%, #2a2622 40%, #3a3024 80%), radial-gradient(ellipse at 50% 100%, #3a3024 0%, transparent 70%); }
.scn-enlightenment-not-enough .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2e2a26 0%, #3a322a 50%, #26221e 100%); animation: en-room 24s ease-in-out infinite alternate; }
.scn-enlightenment-not-enough .archway { position:absolute; bottom:30%; left:50%; width:100px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3e32 0%, #2a2218 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); }
.scn-enlightenment-not-enough .window-slit { position:absolute; top:15%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:2px; box-shadow: inset 0 0 8px rgba(255,255,255,.1); animation: en-window 18s ease-in-out infinite alternate; }
.scn-enlightenment-not-enough .figure-seated { position:absolute; bottom:32%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: en-figure 8s ease-in-out infinite alternate; }
.scn-enlightenment-not-enough .tablet { position:absolute; bottom:38%; left:50%; width:24px; height:14px; transform:translateX(-50%) translateY(-10px); background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: en-tablet 6s ease-in-out infinite alternate; }
.scn-enlightenment-not-enough .candle { position:absolute; bottom:32%; left:38%; width:6px; height:16px; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border-radius:2px; transform:rotate(-5deg); }
.scn-enlightenment-not-enough .candle-halo { position:absolute; bottom:42%; left:38%; width:18px; height:18px; background: radial-gradient(circle, rgba(255,200,100,0.7) 0%, rgba(255,180,60,0.3) 40%, transparent 100%); border-radius:50%; transform:translate(-2px, -4px); animation: en-candle 3s ease-in-out infinite alternate; }
@keyframes en-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes en-window { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.35 } }
@keyframes en-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes en-tablet { 0% { transform:translateX(-50%) translateY(-10px) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(-13px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(-10px) rotate(1deg) } }
@keyframes en-candle { 0% { opacity:0.7; transform:translate(-2px,-4px) scale(0.95) } 50% { opacity:1; transform:translate(-2px,-6px) scale(1.08) } 100% { opacity:0.75; transform:translate(-2px,-4px) scale(0.98) } }

.scn-one-family-out-of-all { background: linear-gradient(180deg, #1a1816 0%, #2a221e 40%, #3a2a1e 80%), radial-gradient(ellipse at 50% 80%, #4a3424 0%, transparent 70%); }
.scn-one-family-out-of-all .chamber-deep { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #2a2420 0%, #3a2e24 50%, #1e1a16 100%); animation: of-chamber 22s ease-in-out infinite alternate; }
.scn-one-family-out-of-all .floor-tiles { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-one-family-out-of-all .hearth { position:absolute; bottom:30%; left:25%; width:70px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.6); }
.scn-one-family-out-of-all .fire-glow { position:absolute; bottom:32%; left:25%; width:50px; height:40px; transform:translateX(10px); background: radial-gradient(circle, rgba(200,120,60,0.6) 0%, rgba(180,80,40,0.2) 40%, transparent 100%); border-radius:50%; animation: of-fire 4s ease-in-out infinite alternate; }
.scn-one-family-out-of-all .mother-figure { position:absolute; bottom:24%; left:50%; width:28px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: of-mother 9s ease-in-out infinite alternate; }
.scn-one-family-out-of-all .child-figure { position:absolute; bottom:22%; left:58%; width:16px; height:28px; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: of-child 6s ease-in-out infinite alternate; }
.scn-one-family-out-of-all .shadow-parent { position:absolute; bottom:26%; left:38%; width:40px; height:56px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.6) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: of-shadow 10s ease-in-out infinite alternate; }
@keyframes of-chamber { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes of-fire { 0% { opacity:0.6; transform:translateX(10px) scale(0.95) } 50% { opacity:1; transform:translateX(12px) scale(1.1) } 100% { opacity:0.65; transform:translateX(10px) scale(0.98) } }
@keyframes of-mother { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes of-child { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(4px) translateY(-2px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes of-shadow { 0% { opacity:0.3; transform:translateX(0) } 50% { opacity:0.5; transform:translateX(-4px) } 100% { opacity:0.35; transform:translateX(0) } }

.scn-history-of-polygamy { background: linear-gradient(180deg, #121014 0%, #1e1a1c 40%, #2a1e18 80%), radial-gradient(ellipse at 50% 100%, #2a1e18 0%, transparent 80%); }
.scn-history-of-polygamy .vault-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #1e1a1c 0%, #2a2224 50%, #161416 100%); animation: hp-vault 25s ease-in-out infinite alternate; }
.scn-history-of-polygamy .vault-rib { position:absolute; bottom:35%; left:50%; width:100px; height:65%; transform:translateX(-50%); background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius:50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-history-of-polygamy .lectern { position:absolute; bottom:28%; left:50%; width:18px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2e24 0%, #1e160e 100%); border-radius:2px 2px 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.5); }
.scn-history-of-polygamy .open-book { position:absolute; bottom:38%; left:50%; width:40px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: hp-book 7s ease-in-out infinite alternate; }
.scn-history-of-polygamy .scholar { position:absolute; bottom:30%; left:50%; width:28px; height:46px; transform:translateX(-50%) translateY(-10px); background: linear-gradient(180deg, #221e1a 0%, #120e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hp-scholar 10s ease-in-out infinite alternate; }
.scn-history-of-polygamy .inkwell { position:absolute; bottom:34%; left:42%; width:8px; height:10px; background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-5deg); }
.scn-history-of-polygamy .quill { position:absolute; bottom:38%; left:42%; width:2px; height:22px; background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%); border-radius:50% 50% 10% 10% / 80% 80% 10% 10%; transform:rotate(15deg) translateY(-12px); animation: hp-quill 5s ease-in-out infinite alternate; }
.scn-history-of-polygamy .lamp-beam { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,200,120,0.15) 0%, rgba(255,180,80,0.05) 50%, transparent 100%); animation: hp-beam 4s ease-in-out infinite alternate; }
@keyframes hp-vault { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hp-book { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes hp-scholar { 0% { transform:translateX(-50%) translateY(-10px) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(-14px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(-10px) rotate(0deg) } }
@keyframes hp-quill { 0% { transform:rotate(12deg) translateY(-12px) } 50% { transform:rotate(18deg) translateY(-16px) } 100% { transform:rotate(14deg) translateY(-12px) } }
@keyframes hp-beam { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.45 } }

/* definition-restated - tense dim interior */
.scn-definition-restated {
  background: 
    linear-gradient(180deg, #2a1e18 0%, #1a1210 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-definition-restated .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
}
.scn-definition-restated .desk {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-definition-restated .scroll {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #c8b090 0%, #a08058 50%, #806040 100%);
  border-radius: 4px 4px 40% 40% / 4px 4px 60% 60%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-definition-restated .figure {
  position: absolute; bottom: 18%; left: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-figure 4s ease-in-out infinite alternate;
}
.scn-definition-restated .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3520 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.4);
  animation: dr-lamp 2s ease-in-out infinite;
}
.scn-definition-restated .shadow-hard {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(90deg, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(2px);
  animation: dr-shadow 4s ease-in-out infinite alternate;
}
.scn-definition-restated .flicker-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 55% 55%, rgba(255,200,100,.1) 0%, transparent 60%);
  animation: dr-flicker 0.15s infinite alternate;
}
@keyframes dr-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(-5px) rotate(0deg); }
}
@keyframes dr-lamp {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 10px rgba(192,128,64,.3); }
  50% { box-shadow: 0 0 25px 10px #ffd060, 0 0 50px 20px rgba(255,208,96,.5); }
  100% { box-shadow: 0 0 18px 6px #c08040, 0 0 35px 12px rgba(192,128,64,.4); }
}
@keyframes dr-shadow {
  0% { opacity: 0.3; transform: scaleX(0.8); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes dr-flicker {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

/* socrates-on-error - calm dim interior */
.scn-socrates-on-error {
  background: 
    linear-gradient(180deg, #2c2825 0%, #1a1714 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 60% 80%, #4a3e38 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-socrates-on-error .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2825 0%, #1a1714 100%);
}
.scn-socrates-on-error .window {
  position: absolute; top: 15%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #a0a8b0 0%, #707880 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.2);
  animation: se-window 12s ease-in-out infinite alternate;
}
.scn-socrates-on-error .light-beam {
  position: absolute; top: 30%; right: 10%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(200,210,220,.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: se-beam 8s ease-in-out infinite alternate;
}
.scn-socrates-on-error .column {
  position: absolute; bottom: 0; left: 20%; width: 10%; height: 70%;
  background: linear-gradient(180deg, #5a4e46 0%, #3a322c 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
.scn-socrates-on-error .figure {
  position: absolute; bottom: 15%; left: 35%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: se-figure 6s ease-in-out infinite;
}
.scn-socrates-on-error .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a322c 0%, #1e1a18 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
@keyframes se-window {
  0% { filter: brightness(1); box-shadow: inset 0 0 20px rgba(255,255,255,.2); }
  50% { filter: brightness(1.1); box-shadow: inset 0 0 30px rgba(255,255,255,.4); }
  100% { filter: brightness(0.95); box-shadow: inset 0 0 15px rgba(255,255,255,.15); }
}
@keyframes se-beam {
  0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.5; transform: skewX(-5deg) translateX(-10px); }
  100% { opacity: 0.35; transform: skewX(-12deg) translateX(5px); }
}
@keyframes se-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-1deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(5px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* rulers-may-err - calm dim interior */
.scn-rulers-may-err {
  background: 
    linear-gradient(180deg, #2a2220 0%, #1a1412 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 40%, #3a2e28 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-rulers-may-err .bg-throne-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
}
.scn-rulers-may-err .dais {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #4a3e38 0%, #2e2622 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-rulers-may-err .throne {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a4a40 0%, #3a2e26 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 8px 20px rgba(0,0,0,.6);
}
.scn-rulers-may-err .king-figure {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rm-figure 5s ease-in-out infinite;
}
.scn-rulers-may-err .crown {
  position: absolute; bottom: 65%; left: 44%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #c8a050 0%, #a08030 50%, #806020 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rm-crown 3s ease-in-out infinite alternate;
}
.scn-rulers-may-err .scepter {
  position: absolute; bottom: 30%; left: 55%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 40%;
  transform: rotate(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-rulers-may-err .shadow-soft {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: rm-shadow 8s ease-in-out infinite alternate;
}
@keyframes rm-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rm-crown {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rm-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}

/* contradiction - calm dim interior */
.scn-contradiction {
  background: 
    linear-gradient(180deg, #201c1a 0%, #141210 40%, #0a0808 100%),
    radial-gradient(ellipse at 50% 70%, #2a2420 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-contradiction .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #201c1a 0%, #141210 100%);
}
.scn-contradiction .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1a16 100%);
  border-radius: 6px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-contradiction .figure-left {
  position: absolute; bottom: 15%; left: 12%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-figure-left 6s ease-in-out infinite;
}
.scn-contradiction .figure-right {
  position: absolute; bottom: 15%; right: 12%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-figure-right 6s ease-in-out infinite 2s;
}
.scn-contradiction .candle {
  position: absolute; bottom: 28%; left: 48%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3520 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #c08040;
  animation: ct-candle 3s ease-in-out infinite;
}
.scn-contradiction .glow {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%);
  animation: ct-glow 3s ease-in-out infinite alternate;
}
.scn-contradiction .shadow-ambient {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: ct-shadow 8s ease-in-out infinite alternate;
}
@keyframes ct-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes ct-figure-right {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-8px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ct-candle {
  0% { box-shadow: 0 0 10px 2px #c08040; }
  50% { box-shadow: 0 0 16px 6px #ffd060; }
  100% { box-shadow: 0 0 12px 4px #c08040; }
}
@keyframes ct-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes ct-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

/* even-two-unjust */
.scn-even-two-unjust { background: linear-gradient(180deg, #1c1820 0%, #2c2428 30%, #4a3a30 70%, #2c1a14 100%), radial-gradient(ellipse at 30% 60%, #3a2a1e 0%, transparent 60%); }
.scn-even-two-unjust .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2226 0%, #3a2a22 50%, #1a1410 100%); animation: etu-room 20s ease-in-out infinite alternate; }
.scn-even-two-unjust .wall-shadow { position:absolute; inset:20% 0 0 0; background: linear-gradient(180deg, #1a1210 0%, transparent 100%); opacity:0.5; }
.scn-even-two-unjust .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2c1e18 0%, #1a0e0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-even-two-unjust .lamp-glow { position:absolute; bottom:45%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #d4a060 0%, #8a5e2e 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(180,120,60,0.5); animation: etu-lamp 6s ease-in-out infinite alternate; }
.scn-even-two-unjust .lamp-stand { position:absolute; bottom:30%; left:50%; width:4px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1e, #1a0e08); border-radius:2px; }
.scn-even-two-unjust .figure-left { position:absolute; bottom:18%; left:32%; width:50px; height:100px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etu-figL 8s ease-in-out infinite; }
.scn-even-two-unjust .figure-right { position:absolute; bottom:18%; right:32%; width:50px; height:100px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etu-figR 8s ease-in-out infinite 1s; }
.scn-even-two-unjust .dust-mote { position:absolute; top:40%; left:20%; width:3px; height:3px; background:#d4a060; border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,160,80,0.4); animation: etu-dust 30s linear infinite; }
@keyframes etu-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes etu-lamp { 0% { transform:translateX(-50%) scale(1); opacity:0.8 } 50% { transform:translateX(-50%) scale(1.05); opacity:1 } 100% { transform:translateX(-50%) scale(0.98); opacity:0.85 } }
@keyframes etu-figL { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes etu-figR { 0% { transform: translateX(0) rotate(2deg) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(2px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes etu-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.6 } 50% { transform: translateY(-20px) translateX(40px) scale(1.5); opacity:0.2 } 100% { transform: translateY(-40px) translateX(80px) scale(0.8); opacity:0.8 } }

/* injustice-in-individual */
.scn-injustice-in-individual { background: linear-gradient(180deg, #1a1a24 0%, #2a242e 40%, #1e161c 70%, #0a0608 100%), radial-gradient(ellipse at 40% 50%, #2a222e 0%, transparent 60%); }
.scn-injustice-in-individual .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #14121a 0%, #2a242e 50%, #0e0c12 100%); animation: iii-deep 15s ease-in-out infinite alternate; }
.scn-injustice-in-individual .wall-left { position:absolute; top:0; left:0; bottom:0; width:25%; background: linear-gradient(180deg, #1e1822 0%, #2a2230 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.5); animation: iii-wallL 12s ease-in-out infinite alternate; }
.scn-injustice-in-individual .wall-right { position:absolute; top:0; right:0; bottom:0; width:25%; background: linear-gradient(180deg, #1e1822 0%, #2a2230 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.5); animation: iii-wallR 12s ease-in-out infinite alternate; }
.scn-injustice-in-individual .figure-alone { position:absolute; bottom:20%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #18161e 0%, #0e0c12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -10px 0 20px rgba(0,0,0,0.6); animation: iii-figure 7s ease-in-out infinite; }
.scn-injustice-in-individual .shadow-self { position:absolute; bottom:18%; left:52%; width:60px; height:120px; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(10deg) scaleY(0.8); opacity:0.4; animation: iii-shadow 7s ease-in-out infinite 0.5s; }
.scn-injustice-in-individual .candle { position:absolute; bottom:45%; left:30%; width:6px; height:40px; background: linear-gradient(180deg, #4a3a28, #2a1e14); border-radius:2px; }
.scn-injustice-in-individual .flame-glow { position:absolute; bottom:62%; left:30%; width:20px; height:20px; margin-left:-7px; background: radial-gradient(circle, #e8c07a 0%, #b87840 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,140,80,0.5); animation: iii-flame 3s ease-in-out infinite alternate; }
@keyframes iii-deep { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes iii-wallL { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes iii-wallR { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes iii-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-48%) rotate(1.5deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-52%) rotate(-1.5deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes iii-shadow { 0% { transform: skewX(10deg) scaleY(0.8) translateX(0) } 50% { transform: skewX(10deg) scaleY(0.8) translateX(4px) } 100% { transform: skewX(10deg) scaleY(0.8) translateX(0) } }
@keyframes iii-flame { 0% { transform: scaleY(0.9) scaleX(0.95); opacity:0.7 } 50% { transform: scaleY(1.15) scaleX(1.0); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.9); opacity:0.8 } }

/* feast-of-argument */
.scn-feast-of-argument { background: linear-gradient(180deg, #1a1a10 0%, #2a2218 40%, #3a2a1a 70%, #1a1008 100%), radial-gradient(ellipse at 50% 50%, #2a1e12 0%, transparent 60%); }
.scn-feast-of-argument .table-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #1e1410 100%); animation: foa-bg 18s ease-in-out infinite; }
.scn-feast-of-argument .table-top { position:absolute; bottom:35%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4a3420 0%, #2a1a10 100%); border-radius: 8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 6px 20px rgba(0,0,0,0.7); }
.scn-feast-of-argument .figure-center { position:absolute; bottom:42%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1610 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: foa-figC 9s ease-in-out infinite; }
.scn-feast-of-argument .figure-left-feast { position:absolute; bottom:42%; left:30%; width:35px; height:70px; background: linear-gradient(180deg, #1a1610 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: foa-figL 9s ease-in-out infinite 1s; }
.scn-feast-of-argument .figure-right-feast { position:absolute; bottom:42%; right:30%; width:35px; height:70px; background: linear-gradient(180deg, #1a1610 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: foa-figR 9s ease-in-out infinite 2s; }
.scn-feast-of-argument .wine-cup { position:absolute; bottom:36%; left:52%; width:20px; height:25px; background: linear-gradient(180deg, #5a3a24, #3a2010); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-feast-of-argument .bread { position:absolute; bottom:37%; left:44%; width:28px; height:12px; background: linear-gradient(180deg, #8a6e3e, #5a421e); border-radius: 30% 30% 40% 40%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); }
.scn-feast-of-argument .lamp-overhead { position:absolute; top:15%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #d4a86a 0%, #8a5e2e 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(180,140,80,0.6); animation: foa-lamp 5s ease-in-out infinite alternate; }
@keyframes foa-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes foa-figC { 0% { transform: translateX(-50%) rotate(0) translateY(0) } 33% { transform: translateX(-48%) rotate(3deg) translateY(-2px) } 66% { transform: translateX(-52%) rotate(-2deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes foa-figL { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes foa-figR { 0% { transform: rotate(0) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }
@keyframes foa-lamp { 0% { transform: translateX(-50%) scale(1); opacity:0.8 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.75 } }

/* better-life */
.scn-better-life { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5e 70%, #2a2a44 100%), radial-gradient(ellipse at 70% 30%, #4a4a6e 0%, transparent 50%); }
.scn-better-life .sky-dim { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1e1e32 0%, #2a2a44 50%, #1a1a2e 100%); animation: bl-sky 20s ease-in-out infinite alternate; }
.scn-better-life .horizon { position:absolute; bottom:40%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #4a4a6e 50%, transparent 100%); opacity:0.4; }
.scn-better-life .figure-standing { position:absolute; bottom:20%; left:50%; width:50px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #141422 0%, #0a0a16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: bl-figure 10s ease-in-out infinite; }
.scn-better-life .light-beam { position:absolute; top:30%; left:50%; width:4px; height:60%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,200,255,0.3) 0%, transparent 100%); box-shadow: 0 0 20px 10px rgba(200,200,255,0.1); animation: bl-beam 7s ease-in-out infinite alternate; }
.scn-better-life .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-better-life .tree-silhouette { position:absolute; right:10%; bottom:20%; width:30px; height:120px; background: linear-gradient(180deg, #0e0e16, #06060a); border-radius: 10% 10% 0 0; transform: skewX(-5deg); box-shadow: -8px 0 12px rgba(0,0,0,0.3); }
.scn-better-life .star-glow { position:absolute; top:15%; left:70%; width:4px; height:4px; background:#c0c0e0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,200,240,0.6); animation: bl-star 30s ease-in-out infinite alternate; }
@keyframes bl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes bl-figure { 0% { transform: translateX(-50%) translateY(0) } 33% { transform: translateX(-50%) translateY(-3px) } 66% { transform: translateX(-50%) translateY(2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes bl-beam { 0% { opacity:0.3; transform: translateX(-50%) scaleY(0.95) } 50% { opacity:0.7; transform: translateX(-50%) scaleY(1.1) } 100% { opacity:0.4; transform: translateX(-50%) scaleY(1) } }
@keyframes bl-star { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.6; transform: scale(0.9) } }

/* heredity-not-terrible – calm dim interior, bookshelf, seated figure, soft lamp */
.scn-heredity-not-terrible {
  background: linear-gradient(180deg, #1e2230 0%, #2a3040 40%, #344050 100%),
              radial-gradient(circle at 40% 20%, rgba(180,190,210,0.15) 0%, transparent 60%);
}
.scn-heredity-not-terrible .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2c3345 0%, #1e2230 100%);
  animation: hnt-wall 20s ease-in-out infinite alternate;
}
.scn-heredity-not-terrible .window-frame {
  position:absolute; top:8%; left:60%; width:30%; height:55%;
  background: linear-gradient(135deg, #3a4258 0%, #1e2230 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-heredity-not-terrible .pane-glow {
  position:absolute; top:10%; left:62%; width:26%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(210,220,240,0.2) 0%, transparent 70%);
  animation: hnt-pane 6s ease-in-out infinite alternate;
}
.scn-heredity-not-terrible .bookshelf {
  position:absolute; bottom:15%; left:5%; width:25%; height:50%;
  background: linear-gradient(90deg, #3a2e20 0%, #2e2215 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-heredity-not-terrible .figure-sit {
  position:absolute; bottom:10%; left:35%; width:50px; height:70px;
  background: linear-gradient(135deg, #2c2c3a 30%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnt-sit 8s ease-in-out infinite;
}
.scn-heredity-not-terrible .lamp-soft {
  position:absolute; bottom:28%; left:52%; width:12px; height:20px;
  background: radial-gradient(circle, #e6d4a0 0%, #c8b878 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,184,120,0.3);
  animation: hnt-lamp 4s ease-in-out infinite alternate;
}
.scn-heredity-not-terrible .dust {
  position:absolute; top:12%; left:40%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,210,230,0.2) 0%, transparent 70%);
  filter: blur(2px);
  animation: hnt-dust 18s linear infinite;
}
@keyframes hnt-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hnt-pane { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:0.9; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(0.98) } }
@keyframes hnt-sit { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(4px) translateY(-2px) rotate(0.5deg) } 66% { transform: translateX(-2px) translateY(1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hnt-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,184,120,0.2); opacity:0.7 } 50% { box-shadow: 0 0 40px 15px rgba(200,184,120,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,184,120,0.25); opacity:0.8 } }
@keyframes hnt-dust { 0% { transform: translateY(0) translateX(0) rotate(0) } 33% { transform: translateY(-10px) translateX(15px) rotate(5deg) } 66% { transform: translateY(5px) translateX(-10px) rotate(-3deg) } 100% { transform: translateY(0) translateX(0) rotate(0) } }

/* heredity-can-be-blessing – warm dim interior, fireplace, seated figure, candle */
.scn-heredity-can-be-blessing {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #4a3828 100%),
              radial-gradient(circle at 50% 60%, rgba(200,150,80,0.25) 0%, transparent 60%);
}
.scn-heredity-can-be-blessing .hearth {
  position:absolute; bottom:8%; left:30%; width:40%; height:30%;
  background: linear-gradient(135deg, #4a2818 0%, #2a1408 100%);
  border-radius: 30% 30% 8% 8% / 50% 50% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.7);
}
.scn-heredity-can-be-blessing .fire-glow {
  position:absolute; bottom:18%; left:38%; width:24%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, #e8b050 0%, #c87830 40%, transparent 70%);
  animation: hb-fire 3s ease-in-out infinite alternate;
}
.scn-heredity-can-be-blessing .mantel {
  position:absolute; bottom:38%; left:28%; width:44%; height:4px;
  background: linear-gradient(90deg, #5a3a28 0%, #4a2a18 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-heredity-can-be-blessing .figure-warm {
  position:absolute; bottom:12%; left:20%; width:45px; height:65px;
  background: linear-gradient(135deg, #3a2a20 30%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hb-figure 8s ease-in-out infinite;
}
.scn-heredity-can-be-blessing .candle {
  position:absolute; bottom:40%; left:50%; width:8px; height:18px;
  background: linear-gradient(180deg, #e8c878 0%, #c8a060 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-heredity-can-be-blessing .ember {
  position:absolute; bottom:20%; left:34%; width:8px; height:8px;
  background: radial-gradient(circle, #ff9040 0%, transparent 70%);
  filter: blur(2px);
  animation: hb-ember 2.5s ease-in-out infinite;
}
@keyframes hb-fire { 0% { transform: scale(1) rotate(-2deg); opacity:0.8 } 50% { transform: scale(1.15) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85 } }
@keyframes hb-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(3px) translateY(-3px) rotate(1deg) } 66% { transform: translateX(-2px) translateY(1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hb-ember { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-12px) scale(0.5); opacity:1 } 100% { transform: translateY(-4px) scale(0.3); opacity:0 } }

/* foundlings-perish – dark dim interior, empty cradle, shadow hand, barred window */
.scn-foundlings-perish {
  background: linear-gradient(180deg, #0e0e18 0%, #181828 40%, #222a3a 100%),
              radial-gradient(circle at 30% 30%, rgba(60,70,100,0.15) 0%, transparent 60%);
}
.scn-foundlings-perish .wall-cold {
  position:absolute; inset:0; background: linear-gradient(180deg, #141824 0%, #0e0e18 100%);
}
.scn-foundlings-perish .cradle {
  position:absolute; bottom:20%; left:35%; width:30%; height:20%;
  background: linear-gradient(135deg, #3a2820 0%, #1e1410 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-foundlings-perish .blanket-empty {
  position:absolute; bottom:22%; left:38%; width:24%; height:12%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fp-blanket 12s ease-in-out infinite alternate;
}
.scn-foundlings-perish .shadow-hand {
  position:absolute; bottom:30%; left:48%; width:15px; height:25px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fp-hand 5s ease-in-out infinite;
}
.scn-foundlings-perish .window-bar {
  position:absolute; top:8%; left:55%; width:25%; height:40%;
  background: repeating-linear-gradient(0deg, #3a3a4a 0px, #3a3a4a 4px, transparent 4px, transparent 12px);
  border: 2px solid #3a3a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-foundlings-perish .drip {
  position:absolute; top:12%; left:50%; width:3px; height:12px;
  background: rgba(100,140,180,0.3);
  border-radius: 0 0 50% 50%;
  animation: fp-drip 4s ease-in-out infinite;
}
@keyframes fp-blanket { 0% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-2px) scale(0.97); opacity:0.5 } 100% { transform: translateY(0) scale(1); opacity:0.6 } }
@keyframes fp-hand { 0% { transform: translateX(0) rotate(-5deg) } 33% { transform: translateX(8px) rotate(3deg) } 66% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fp-drip { 0% { transform: translateY(0); opacity:0.4 } 50% { transform: translateY(10px); opacity:0.2 } 100% { transform: translateY(6px); opacity:0 } }

/* creches-and-foundlings – dark dim interior, row of small cribs, nurse silhouette, dim lamp, mist */
.scn-creches-and-foundlings {
  background: linear-gradient(180deg, #0c0c14 0%, #18182a 40%, #20243a 100%),
              radial-gradient(circle at 60% 80%, rgba(50,60,100,0.1) 0%, transparent 50%);
}
.scn-creches-and-foundlings .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%);
}
.scn-creches-and-foundlings .row-cribs {
  position:absolute; bottom:10%; left:5%; right:5%; height:30%;
  background: repeating-linear-gradient(90deg, #2a2020 0px, #2a2020 30px, transparent 30px, transparent 35px);
  border-radius: 4px;
}
.scn-creches-and-foundlings .crib-cover {
  position:absolute; bottom:15%; left:8%; width:84%; height:20%;
  background: linear-gradient(180deg, rgba(20,20,30,0.6) 0%, transparent 100%);
  animation: cf-cover 15s ease-in-out infinite alternate;
}
.scn-creches-and-foundlings .figure-nurse {
  position:absolute; bottom:20%; left:45%; width:35px; height:60px;
  background: linear-gradient(135deg, #1a1a2a 30%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-nurse 7s ease-in-out infinite;
}
.scn-creches-and-foundlings .lamp-dim {
  position:absolute; bottom:35%; left:30%; width:8px; height:14px;
  background: radial-gradient(circle, #a08860 0%, #604830 100%);
  box-shadow: 0 0 20px 4px rgba(160,136,96,0.15);
  animation: cf-lamp 5s ease-in-out infinite alternate;
}
.scn-creches-and-foundlings .mist {
  position:absolute; top:0; left:0; right:0; height:60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(120,140,180,0.08) 0%, transparent 70%);
  filter: blur(4px);
  animation: cf-mist 25s linear infinite;
}
@keyframes cf-cover { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes cf-nurse { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(5px) translateY(-3px) rotate(1deg) } 66% { transform: translateX(-3px) translateY(1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes cf-lamp { 0% { box-shadow: 0 0 12px 2px rgba(160,136,96,0.1); opacity:0.5 } 50% { box-shadow: 0 0 28px 6px rgba(160,136,96,0.25); opacity:0.9 } 100% { box-shadow: 0 0 16px 3px rgba(160,136,96,0.12); opacity:0.6 } }
@keyframes cf-mist { 0% { transform: translateX(0) scale(1); opacity:0.3 } 50% { transform: translateX(15px) scale(1.1); opacity:0.5 } 100% { transform: translateX(0) scale(1); opacity:0.3 } }

/* glaucon-proposes-three-points */
.scn-glaucon-proposes-three-points {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, #1a1410 50%, #0f0c0a 100%),
    linear-gradient(180deg, #1a1410 0%, #221a14 40%, #2a1f1a 100%);
}
.scn-glaucon-proposes-three-points .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  animation: si-gp-wall 12s ease-in-out infinite alternate;
}
.scn-glaucon-proposes-three-points .bg-shadow {
  position:absolute; inset:40% 0 0 0; background: linear-gradient(180deg, rgba(15,12,10,0) 0%, rgba(15,12,10,0.8) 100%);
}
.scn-glaucon-proposes-three-points .table {
  position:absolute; bottom:8%; left:10%; width:80%; height:18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-glaucon-proposes-three-points .candle {
  position:absolute; bottom:26%; left:50%; width:8px; height:28px;
  background: linear-gradient(180deg, #c8b088 0%, #8a7a5a 100%);
  border-radius: 2px 2px 1px 1px; transform: translateX(-50%);
}
.scn-glaucon-proposes-three-points .flame {
  position:absolute; bottom:52%; left:50%; width:10px; height:14px;
  background: radial-gradient(circle, #f0c060 0%, #d09030 60%, #7a4010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform: translateX(-50%) scaleX(0.8);
  animation: si-gp-flame 0.8s ease-in-out infinite alternate;
}
.scn-glaucon-proposes-three-points .hand {
  position:absolute; bottom:22%; left:40%; width:28px; height:20px;
  background: radial-gradient(ellipse at 30% 40%, #5a3a2a 0%, #3a2218 100%);
  border-radius: 80% 20% 50% 50% / 60% 30% 70% 40%;
  transform: rotate(20deg);
  animation: si-gp-hand 5s ease-in-out infinite;
}
.scn-glaucon-proposes-three-points .scroll {
  position:absolute; bottom:12%; left:45%; width:40px; height:14px;
  background: linear-gradient(90deg, #b8a080 0%, #d4c0a0 30%, #b8a080 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-15deg);
}
.scn-glaucon-proposes-three-points .flicker {
  position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,160,80,0.08) 0%, transparent 60%);
  animation: si-gp-flicker 0.3s infinite alternate;
}
@keyframes si-gp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes si-gp-flame { 0% { transform: translateX(-50%) scaleX(0.8) scaleY(1); } 50% { transform: translateX(-50%) scaleX(1.1) scaleY(1.3); } 100% { transform: translateX(-50%) scaleX(0.9) scaleY(0.9); } }
@keyframes si-gp-hand { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(25deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(1px); } 75% { transform: rotate(30deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes si-gp-flicker { 0% { opacity:0.7; } 100% { opacity:1; } }

/* glaucon-wants-praise-of-justice */
.scn-glaucon-wants-praise-of-justice {
  background:
    radial-gradient(ellipse at 50% 40%, #1e1814 0%, #14100e 60%, #0c0a08 100%),
    linear-gradient(90deg, #1a1410 20%, #221a14 50%, #1a1410 80%);
}
.scn-glaucon-wants-praise-of-justice .bg-columns {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, #1a1410 0px, #1a1410 20px, #14100e 20px, #14100e 40px);
  animation: si-gw-columns 20s linear infinite;
}
.scn-glaucon-wants-praise-of-justice .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(0deg, #1a1410 0%, #221a14 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.7);
}
.scn-glaucon-wants-praise-of-justice .figure-seated {
  position:absolute; bottom:18%; left:30%; width:40px; height:70px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: scale(0.9);
  animation: si-gw-figure 8s ease-in-out infinite;
}
.scn-glaucon-wants-praise-of-justice .lamp {
  position:absolute; bottom:40%; left:60%; width:12px; height:30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-glaucon-wants-praise-of-justice .lamp-glow {
  position:absolute; bottom:38%; left:58%; width:30px; height:40px;
  background: radial-gradient(circle, rgba(200,160,80,0.15) 0%, rgba(200,160,80,0.05) 60%, transparent 100%);
  border-radius: 50%;
  animation: si-gw-glow 3s ease-in-out infinite alternate;
}
.scn-glaucon-wants-praise-of-justice .shadow-figure {
  position:absolute; bottom:18%; left:55%; width:40px; height:80px;
  background: rgba(10,8,6,0.6);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  transform: scaleX(-1) skewX(5deg);
  filter: blur(3px);
}
.scn-glaucon-wants-praise-of-justice .dust-mote,
.scn-glaucon-wants-praise-of-justice .dust-mote-2 {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: si-gw-dust 12s ease-in-out infinite alternate;
}
.scn-glaucon-wants-praise-of-justice .dust-mote { top:30%; left:20%; animation-delay: -3s; }
.scn-glaucon-wants-praise-of-justice .dust-mote-2 { top:50%; left:70%; animation-delay: -7s; }
@keyframes si-gw-columns { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes si-gw-figure { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes si-gw-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes si-gw-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(10px,-15px) scale(1.5); opacity:0.6; } 100% { transform: translate(-5px,10px) scale(0.8); opacity:0.2; } }

/* glaucon-begins */
.scn-glaucon-begins {
  background:
    radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a1410 70%, #0f0c0a 100%),
    linear-gradient(180deg, #221a14 0%, #2a1f1a 30%, #1a1410 100%);
}
.scn-glaucon-begins .bg-depth {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, transparent 40%, rgba(15,12,10,0.7) 100%);
  animation: si-gb-depth 10s ease-in-out infinite alternate;
}
.scn-glaucon-begins .bg-arch {
  position:absolute; top:0; left:10%; right:10%; bottom:30%;
  border: 2px solid rgba(200,160,80,0.1);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(200,160,80,0.05);
}
.scn-glaucon-begins .speaker {
  position:absolute; bottom:28%; left:50%; width:32px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: si-gb-speaker 4s ease-in-out infinite;
}
.scn-glaucon-begins .gesture-hand {
  position:absolute; bottom:32%; left:45%; width:20px; height:18px;
  background: radial-gradient(ellipse at 30% 40%, #4a3020 0%, #2a1a10 100%);
  border-radius: 60% 20% 40% 60% / 50% 30% 60% 40%;
  transform: rotate(-30deg);
  animation: si-gb-hand 3s ease-in-out infinite alternate;
}
.scn-glaucon-begins .scroll-open {
  position:absolute; bottom:12%; left:35%; width:60px; height:20px;
  background: linear-gradient(90deg, #c0a880 0%, #d4c0a0 40%, #c0a880 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
.scn-glaucon-begins .inkwell {
  position:absolute; bottom:18%; left:58%; width:14px; height:18px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a08 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-glaucon-begins .shadow-stripe {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(90deg, transparent 0%, rgba(15,12,10,0.4) 30%, rgba(15,12,10,0.6) 70%, transparent 100%);
  animation: si-gb-stripe 7s ease-in-out infinite alternate;
}
@keyframes si-gb-depth { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes si-gb-speaker { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes si-gb-hand { 0% { transform: rotate(-30deg) translateY(0); } 100% { transform: rotate(-20deg) translateY(-3px); } }
@keyframes si-gb-stripe { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* justice-as-compromise */
.scn-justice-as-compromise {
  background:
    radial-gradient(ellipse at 50% 60%, #1e1814 0%, #14100e 50%, #0c0a08 100%),
    linear-gradient(180deg, #221a14 0%, #1a1410 100%);
}
.scn-justice-as-compromise .bg-vault {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a1f1a 0%, transparent 60%);
  animation: si-jc-vault 15s ease-in-out infinite alternate;
}
.scn-justice-as-compromise .floor-tiles {
  position:absolute; bottom:0; left:0; right:0; height:16%;
  background: repeating-linear-gradient(90deg, #2a1f1a 0px, #2a1f1a 12px, #1a1410 12px, #1a1410 24px);
}
.scn-justice-as-compromise .scale-left,
.scn-justice-as-compromise .scale-right {
  position:absolute; bottom:30%; width:30px; height:10px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-justice-as-compromise .scale-left { left:36%; }
.scn-justice-as-compromise .scale-right { right:36%; }
.scn-justice-as-compromise .scale-beam {
  position:absolute; bottom:42%; left:30%; width:40%; height:4px;
  background: linear-gradient(90deg, transparent 0%, #5a4a2a 20%, #5a4a2a 80%, transparent 100%);
  border-radius: 2px;
  animation: si-jc-beam 6s ease-in-out infinite;
}
.scn-justice-as-compromise .figure-balance {
  position:absolute; bottom:18%; left:50%; width:36px; height:70px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: si-jc-figure 8s ease-in-out infinite;
}
.scn-justice-as-compromise .glow-center {
  position:absolute; bottom:28%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,160,80,0.08) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: si-jc-glow 4s ease-in-out infinite alternate;
}
.scn-justice-as-compromise .chain {
  position:absolute; bottom:40%; left:50%; width:4px; height:20px;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 2px, transparent 2px, transparent 4px);
  transform: translateX(-50%);
}
@keyframes si-jc-vault { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes si-jc-beam { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }
@keyframes si-jc-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes si-jc-glow { 0% { opacity:0.4; transform: translate(-50%, 50%) scale(1); } 100% { opacity:0.8; transform: translate(-50%, 50%) scale(1.3); } }

.scn-plato-and-aristotle-right {
  background: 
    linear-gradient(135deg, #2a2218 0%, #3d2e1e 30%, #5a4030 60%, #2a2218 100%),
    radial-gradient(ellipse at 70% 50%, #5a4030 0%, transparent 60%);
}
.scn-plato-and-aristotle-right .wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #3a2a1a 2px, #4a3a2a 4px);
  opacity: 0.3;
}
.scn-plato-and-aristotle-right .niche {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 60%;
  background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-plato-and-aristotle-right .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 0%, #e8c87a 0%, #c09050 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(200,150,70,0.4), 0 0 60px 30px rgba(200,150,70,0.15);
  animation: pa-glow 4s ease-in-out infinite alternate;
}
.scn-plato-and-aristotle-right .scroll {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a080 50%, #8a7050 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-5deg) skewX(10deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: pa-scroll 8s ease-in-out infinite;
}
.scn-plato-and-aristotle-right .figure-left {
  position: absolute; bottom: 18%; left: 18%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 70%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-fig-l 6s ease-in-out infinite alternate;
}
.scn-plato-and-aristotle-right .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 70%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-fig-r 6s ease-in-out infinite alternate;
}
.scn-plato-and-aristotle-right .shadow {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: pa-shadow 6s ease-in-out infinite alternate;
}
@keyframes pa-glow {
  0% { box-shadow: 0 0 20px 10px rgba(200,150,70,0.3); }
  50% { box-shadow: 0 0 40px 20px rgba(200,150,70,0.6); }
  100% { box-shadow: 0 0 25px 12px rgba(200,150,70,0.35); }
}
@keyframes pa-scroll {
  0% { transform: rotate(-5deg) skewX(10deg) translateY(0); }
  50% { transform: rotate(-7deg) skewX(12deg) translateY(-2px); }
  100% { transform: rotate(-5deg) skewX(10deg) translateY(0); }
}
@keyframes pa-fig-l {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes pa-fig-r {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pa-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(0.8); }
  100% { opacity: 0.6; transform: scaleX(1); }
}

.scn-animal-monogamy {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #1a1008 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-animal-monogamy .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 50%, #1a1008 100%);
  opacity: 0.8;
}
.scn-animal-monogamy .branch {
  position: absolute; bottom: 45%; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #5a4030 20%, #4a3020 50%, #5a4030 80%, transparent 100%);
  border-radius: 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: am-branch 15s ease-in-out infinite alternate;
}
.scn-animal-monogamy .nest {
  position: absolute; bottom: 50%; left: 38%; width: 40px; height: 20px;
  background: repeating-linear-gradient(45deg, #6a5040 0px, #5a4030 2px, #4a3020 4px);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: am-nest 8s ease-in-out infinite;
}
.scn-animal-monogamy .bird-left {
  position: absolute; bottom: 52%; left: 28%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4030 60%, #3a2818 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: am-bird-l 4s ease-in-out infinite alternate;
}
.scn-animal-monogamy .bird-right {
  position: absolute; bottom: 52%; right: 28%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4030 60%, #3a2818 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: am-bird-r 4s ease-in-out infinite alternate;
}
.scn-animal-monogamy .egg {
  position: absolute; bottom: 46%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #d8c8a0 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: am-egg 12s ease-in-out infinite;
}
@keyframes am-branch {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes am-nest {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes am-bird-l {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-4px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes am-bird-r {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes am-egg {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-unknown-stages {
  background: 
    linear-gradient(180deg, #1e1811 0%, #2a2015 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-unknown-stages .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1811 0%, #2a2015 50%, #1a1008 100%);
  opacity: 0.6;
}
.scn-unknown-stages .column-1 {
  position: absolute; bottom: 20%; left: 5%; width: 40px; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: us-column 20s ease-in-out infinite alternate;
}
.scn-unknown-stages .column-2 {
  position: absolute; bottom: 20%; right: 5%; width: 40px; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: us-column 20s ease-in-out infinite alternate-reverse;
}
.scn-unknown-stages .stair-1 {
  position: absolute; bottom: 15%; left: 20%; width: 30%; height: 15px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: us-stair 10s ease-in-out infinite;
}
.scn-unknown-stages .stair-2 {
  position: absolute; bottom: 20%; left: 25%; width: 25%; height: 15px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: us-stair 10s ease-in-out infinite 2s;
}
.scn-unknown-stages .stair-3 {
  position: absolute; bottom: 25%; left: 30%; width: 20%; height: 15px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: us-stair 10s ease-in-out infinite 4s;
}
.scn-unknown-stages .figure {
  position: absolute; bottom: 30%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: us-figure 6s ease-in-out infinite;
}
.scn-unknown-stages .mist {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: us-mist 12s ease-in-out infinite alternate;
}
@keyframes us-column {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes us-stair {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.8; }
}
@keyframes us-figure {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-8px) rotate(2deg); }
  60% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes us-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-origin-of-marriage {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #3a2818 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 70%);
}
.scn-origin-of-marriage .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #1a1008 100%);
  opacity: 0.5;
}
.scn-origin-of-marriage .altar {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: om-altar 14s ease-in-out infinite;
}
.scn-origin-of-marriage .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 70%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: om-fig-l 5s ease-in-out infinite alternate;
}
.scn-origin-of-marriage .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 70%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: om-fig-r 5s ease-in-out infinite alternate;
}
.scn-origin-of-marriage .fire {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 30px;
  background: radial-gradient(ellipse at 50% 90%, #e8a040 0%, #c07030 40%, #8a4020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 20px rgba(200,100,40,0.3), 0 0 60px 40px rgba(200,100,40,0.1);
  animation: om-fire 3s ease-in-out infinite;
}
.scn-origin-of-marriage .sparks {
  position: absolute; bottom: 50%; left: 48%; width: 4px; height: 4px;
  background: #f0b070;
  border-radius: 50%;
  box-shadow: 0 -10px 0 #f0b070, -5px -20px 0 #f0b070, 5px -30px 0 #f0b070, 0 -40px 0 #f0b070;
  animation: om-sparks 2s linear infinite;
}
@keyframes om-altar {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes om-fig-l {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-5px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes om-fig-r {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-5px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes om-fire {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) translateY(-4px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes om-sparks {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20px) scale(0.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(0.2); opacity: 0; }
}

.scn-regulation-about-poetry {
  background: linear-gradient(180deg, #2a1e12 0%, #3d2b1a 40%, #5a3d2a 100%), radial-gradient(ellipse at 50% 0%, #7a5a3a 0%, transparent 70%);
}
.scn-regulation-about-poetry .room-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1a1008 0%, #2a1e12 60%, #3d2b1a 100%); }
.scn-regulation-about-poetry .desk { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a3d2a 0%, #3d2b1a 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.4); }
.scn-regulation-about-poetry .scroll { position:absolute; bottom:24%; left:42%; width:12%; height:22%; background: linear-gradient(135deg, #c8a87a 0%, #a08050 50%, #806040 100%); border-radius:20% 10% 10% 20%; box-shadow:0 2px 6px rgba(0,0,0,.3); transform: rotate(-5deg); animation: rp-scroll 8s ease-in-out infinite alternate; }
.scn-regulation-about-poetry .lamp { position:absolute; bottom:28%; left:25%; width:4%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3d2a 100%); border-radius:20% 20% 0 0; box-shadow:0 0 12px 4px rgba(200,150,80,.3); }
.scn-regulation-about-poetry .glow { position:absolute; bottom:30%; left:20%; width:12%; height:12%; background: radial-gradient(circle, #d4b080 0%, #c09860 30%, transparent 80%); border-radius:50%; filter: blur(4px); animation: rp-glow 4s ease-in-out infinite alternate; }
.scn-regulation-about-poetry .books { position:absolute; bottom:20%; left:62%; width:20%; height:18%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4px; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-regulation-about-poetry .dust { position:absolute; inset:0 0 0 0; background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.08) 0%, transparent 70%); animation: rp-dust 20s linear infinite; }
@keyframes rp-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes rp-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes rp-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-interrogation-of-homer {
  background: linear-gradient(180deg, #f0eed8 0%, #e0dcc4 40%, #c8c0a8 100%), radial-gradient(ellipse at 50% 100%, #d8d4bc 0%, transparent 70%);
}
.scn-interrogation-of-homer .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8b098 0%, #989080 100%); }
.scn-interrogation-of-homer .column-l { position:absolute; bottom:0; left:10%; width:6%; height:80%; background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a8 50%, #a8a090 100%); border-radius:10px; box-shadow: 4px 0 8px rgba(0,0,0,.1); }
.scn-interrogation-of-homer .column-r { position:absolute; bottom:0; right:10%; width:6%; height:80%; background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a8 50%, #a8a090 100%); border-radius:10px; box-shadow: -4px 0 8px rgba(0,0,0,.1); }
.scn-interrogation-of-homer .figure-homer { position:absolute; bottom:28%; left:28%; width:12%; height:40%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.2); animation: ih-homer 6s ease-in-out infinite alternate; }
.scn-interrogation-of-homer .figure-inter { position:absolute; bottom:28%; right:30%; width:10%; height:36%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: ih-inter 6s ease-in-out infinite alternate 1s; }
.scn-interrogation-of-homer .light-beam { position:absolute; top:0; left:35%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%); transform: skewX(-10deg); animation: ih-light 8s ease-in-out infinite alternate; }
.scn-interrogation-of-homer .table { position:absolute; bottom:30%; left:30%; right:30%; height:4%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
@keyframes ih-homer { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes ih-inter { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(1px) rotate(6deg); } }
@keyframes ih-light { 0% { opacity:0.5; transform: skewX(-10deg) scaleY(1); } 50% { opacity:0.8; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity:0.6; transform: skewX(-12deg) scaleY(0.95); } }

.scn-faculty-which-imitates {
  background: linear-gradient(180deg, #a8c8d8 0%, #88b8c8 40%, #6898a8 100%), radial-gradient(ellipse at 50% 100%, #88b8c8 0%, transparent 70%);
}
.scn-faculty-which-imitates .water-bg { position:absolute; top:0; left:0; right:0; bottom:50%; background: linear-gradient(180deg, #a0c0d0 0%, #80b0c0 100%); }
.scn-faculty-which-imitates .reflection { position:absolute; top:10%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: fi-reflect 10s ease-in-out infinite alternate; }
.scn-faculty-which-imitates .painter { position:absolute; bottom:42%; left:20%; width:14%; height:40%; background: linear-gradient(180deg, #908070 0%, #706050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: fi-painter 7s ease-in-out infinite; }
.scn-faculty-which-imitates .easel { position:absolute; bottom:40%; left:35%; width:8%; height:38%; background: linear-gradient(180deg, #806050 0%, #604040 100%); border-radius:4px; }
.scn-faculty-which-imitates .canvas { position:absolute; bottom:44%; left:36%; width:10%; height:20%; background: radial-gradient(circle at 40% 30%, #d0c0a0 0%, #a08870 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,.2); animation: fi-canvas 5s ease-in-out infinite alternate; }
.scn-faculty-which-imitates .juggler { position:absolute; bottom:42%; right:25%; width:12%; height:36%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(8deg); animation: fi-juggler 4s ease-in-out infinite; }
.scn-faculty-which-imitates .sparkle { position:absolute; top:10%; left:60%; width:6%; height:6%; background: radial-gradient(circle, #ffffe0 0%, transparent 80%); border-radius:50%; animation: fi-sparkle 3s ease-in-out infinite; }
@keyframes fi-reflect { 0% { opacity:0.3; transform: scaleY(0.9); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.4; transform: scaleY(1); } }
@keyframes fi-painter { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(8px) rotate(-12deg); } 100% { transform: translateX(-4px) rotate(-8deg); } }
@keyframes fi-canvas { 0% { background-position: 0% 0%; } 50% { background-position: 50% 50%; } 100% { background-position: 100% 100%; } }
@keyframes fi-juggler { 0% { transform: translateY(0) rotate(8deg); } 50% { transform: translateY(-6px) rotate(10deg); } 100% { transform: translateY(2px) rotate(6deg); } }
@keyframes fi-sparkle { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.8); } }

.scn-heaviest-indictment {
  background: linear-gradient(180deg, #1a1018 0%, #2a1820 40%, #3a2028 100%), radial-gradient(ellipse at 50% 30%, #5a2830 0%, transparent 70%);
}
.scn-heaviest-indictment .dark-stage { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #0a0608 0%, #1a1018 60%, #2a1820 100%); }
.scn-heaviest-indictment .spotlight { position:absolute; top:0; left:30%; width:40%; height:80%; background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 80%); clip-path: ellipse(30% 60% at 50% 0%); animation: hi-spotlight 6s ease-in-out infinite alternate; }
.scn-heaviest-indictment .figure-poet { position:absolute; bottom:28%; left:38%; width:24%; height:50%; background: linear-gradient(180deg, #382828 0%, #1a0e10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(200,100,60,0.2); animation: hi-poet 4s ease-in-out infinite; }
.scn-heaviest-indictment .chains { position:absolute; bottom:28%; left:36%; width:30%; height:10%; background: repeating-linear-gradient(90deg, #807060 0px, #807060 4px, transparent 4px, transparent 8px); background-size: 8px 100%; animation: hi-chains 3s linear infinite; }
.scn-heaviest-indictment .shadow-hand { position:absolute; bottom:32%; right:28%; width:16%; height:20%; background: #2a1a18; border-radius: 80% 20% 40% 60% / 60% 40% 60% 40%; transform: rotate(20deg); box-shadow: 0 0 12px rgba(0,0,0,.5); animation: hi-hand 5s ease-in-out infinite alternate; }
.scn-heaviest-indictment .flame { position:absolute; bottom:20%; left:48%; width:4%; height:12%; background: radial-gradient(circle, #e08040 0%, #b05030 40%, transparent 70%); border-radius:50%; filter: blur(2px); animation: hi-flame 2s ease-in-out infinite alternate; }
.scn-heaviest-indictment .smoke { position:absolute; top:5%; left:10%; width:20%; height:20%; background: radial-gradient(circle, rgba(80,70,60,0.2) 0%, transparent 70%); filter: blur(10px); animation: hi-smoke 12s linear infinite; }
.scn-heaviest-indictment .tear { position:absolute; bottom:38%; left:40%; width:3%; height:8%; background: radial-gradient(circle, #80b0c0 0%, #306080 100%); border-radius:50%; animation: hi-tear 3s ease-in-out infinite; }
@keyframes hi-spotlight { 0% { opacity:0.4; transform: scaleX(0.9); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(0.95); } }
@keyframes hi-poet { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-1deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-6px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hi-chains { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }
@keyframes hi-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(2px); } }
@keyframes hi-flame { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.2) translateY(-4px); } 100% { transform: scale(0.9) translateY(2px); } }
@keyframes hi-smoke { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(30px) translateY(-20px) scale(1.3); } 100% { transform: translateX(-20px) translateY(-40px) scale(0.8); } }
@keyframes hi-tear { 0% { opacity:0; transform: translateY(0); } 50% { opacity:1; transform: translateY(10px); } 100% { opacity:0; transform: translateY(20px); } }

.scn-nation-wiser-than-individual { background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%), radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 70%); }
.scn-nation-wiser-than-individual .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e1a 100%); }
.scn-nation-wiser-than-individual .wall-light { position:absolute; top:0; left:30%; width:40%; height:100%; background: radial-gradient(ellipse at 50% 20%, rgba(80,70,60,.25) 0%, transparent 70%); animation: nwi-pulse 8s ease-in-out infinite alternate; }
.scn-nation-wiser-than-individual .crowd-figures { position:absolute; bottom:15%; left:5%; right:5%; height:30%; background: repeating-linear-gradient(90deg, #1a1a2e 0%, #1a1a2e 3%, #2a2a3e 3%, #2a2a3e 4%, #1e1e30 4%, #1e1e30 7%); mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 100%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 100%); animation: nwi-crowd 12s ease-in-out infinite; }
.scn-nation-wiser-than-individual .leader-figure { position:absolute; bottom:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 40%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(60,50,40,.3); animation: nwi-leader 6s ease-in-out infinite alternate; }
.scn-nation-wiser-than-individual .lamp-glow { position:absolute; bottom:20%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,160,96,.15), 0 0 80px 30px rgba(200,160,96,.08); animation: nwi-lamp 4s ease-in-out infinite alternate; }
.scn-nation-wiser-than-individual .shadow-veil { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.4) 100%); pointer-events:none; }
.scn-nation-wiser-than-individual .dust-motes { position:absolute; top:20%; left:20%; width:4px; height:4px; background:rgba(200,180,160,.15); border-radius:50%; box-shadow: 40px 60px 0 2px rgba(200,180,160,.1), 80px 30px 0 1px rgba(200,180,160,.12), 120px 80px 0 3px rgba(200,180,160,.08), 160px 50px 0 2px rgba(200,180,160,.1); filter: blur(1px); animation: nwi-drift 30s linear infinite; }
@keyframes nwi-pulse { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nwi-crowd { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes nwi-leader { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(.98) } }
@keyframes nwi-lamp { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.85; transform:scale(.95) } }
@keyframes nwi-drift { 0% { transform: translate(0,0) } 25% { transform: translate(10px,-5px) } 50% { transform: translate(5px,10px) } 75% { transform: translate(-10px,5px) } 100% { transform: translate(0,0) } }

.scn-plato-not-analyze-complications { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%), radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 70%); }
.scn-plato-not-analyze-complications .study-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 60%, #0e0e1a 100%); }
.scn-plato-not-analyze-complications .desk { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.5); transform: perspective(400px) rotateX(10deg); }
.scn-plato-not-analyze-complications .scroll { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform: perspective(200px) rotateX(-5deg); animation: pna-unroll 10s ease-in-out infinite alternate; }
.scn-plato-not-analyze-complications .oil-lamp { position:absolute; bottom:30%; left:50%; width:16px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 12px 2px rgba(200,160,96,.3); }
.scn-plato-not-analyze-complications .lamp-light { position:absolute; bottom:30%; left:50%; width:80px; height:100px; transform:translate(-50%,20%); background: radial-gradient(ellipse, rgba(200,160,96,.2) 0%, rgba(200,160,96,.08) 40%, transparent 70%); border-radius:50%; animation: pna-flicker 3s ease-in-out infinite alternate; }
.scn-plato-not-analyze-complications .thinker-silhouette { position:absolute; bottom:18%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pna-think 5s ease-in-out infinite; }
.scn-plato-not-analyze-complications .book-stack { position:absolute; bottom:15%; left:20%; width:40px; height:30px; background: repeating-linear-gradient(180deg, #5a4a3a 0%, #5a4a3a 6px, #6a5a4a 6px, #6a5a4a 12px, #4a3a2a 12px, #4a3a2a 18px); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); }
@keyframes pna-unroll { 0% { transform: perspective(200px) rotateX(-5deg) scaleX(1) } 50% { transform: perspective(200px) rotateX(-5deg) scaleX(1.02) } 100% { transform: perspective(200px) rotateX(-5deg) scaleX(.98) } }
@keyframes pna-flicker { 0% { opacity:.7; transform:translate(-50%,20%) scale(1) } 50% { opacity:1; transform:translate(-50%,20%) scale(1.05) } 100% { opacity:.8; transform:translate(-50%,20%) scale(.95) } }
@keyframes pna-think { 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) } }

.scn-music-and-virtue { background: linear-gradient(180deg, #2a1a2e 0%, #3a2a4a 30%, #4a3a5a 60%, #3a2a4a 100%), radial-gradient(ellipse at 50% 30%, #5a4a6a 0%, transparent 70%); }
.scn-music-and-virtue .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2e 0%, #1a0e1e 50%, #0e0a14 100%); }
.scn-music-and-virtue .lyre { position:absolute; bottom:25%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(200,160,96,.2); animation: mv-vibrate 2s ease-in-out infinite alternate; }
.scn-music-and-virtue .sound-wave-1 { position:absolute; bottom:35%; left:50%; width:80px; height:80px; transform:translate(-50%,0); border: 1px solid rgba(200,180,160,.15); border-radius:50%; animation: mv-expand-1 6s ease-out infinite; }
.scn-music-and-virtue .sound-wave-2 { position:absolute; bottom:35%; left:50%; width:80px; height:80px; transform:translate(-50%,0); border: 1px solid rgba(200,180,160,.1); border-radius:50%; animation: mv-expand-2 6s ease-out infinite 2s; }
.scn-music-and-virtue .sound-wave-3 { position:absolute; bottom:35%; left:50%; width:80px; height:80px; transform:translate(-50%,0); border: 1px solid rgba(200,180,160,.08); border-radius:50%; animation: mv-expand-3 6s ease-out infinite 4s; }
.scn-music-and-virtue .vibration-dot { position:absolute; bottom:35%; left:50%; width:6px; height:6px; transform:translate(-50%,0); background: rgba(200,180,160,.4); border-radius:50%; box-shadow: 0 0 10px 2px rgba(200,180,160,.2); animation: mv-dot 2s ease-in-out infinite alternate; }
.scn-music-and-virtue .pythagorean-circle { position:absolute; top:15%; left:50%; width:100px; height:100px; transform:translateX(-50%); border: 1px solid rgba(200,180,160,.08); border-radius:50%; background: radial-gradient(circle, rgba(200,180,160,.02) 0%, transparent 70%); animation: mv-rotate 30s linear infinite; }
.scn-music-and-virtue .ambient-glow { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(200,180,160,.06) 0%, transparent 60%); animation: mv-glow 8s ease-in-out infinite alternate; }
@keyframes mv-vibrate { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes mv-expand-1 { 0% { opacity:.6; transform:translate(-50%,0) scale(.5) } 100% { opacity:0; transform:translate(-50%,0) scale(2) } }
@keyframes mv-expand-2 { 0% { opacity:.6; transform:translate(-50%,0) scale(.5) } 100% { opacity:0; transform:translate(-50%,0) scale(2) } }
@keyframes mv-expand-3 { 0% { opacity:.6; transform:translate(-50%,0) scale(.5) } 100% { opacity:0; transform:translate(-50%,0) scale(2) } }
@keyframes mv-dot { 0% { opacity:.3; transform:translate(-50%,0) scale(1) } 50% { opacity:.8; transform:translate(-50%,0) scale(1.5) } 100% { opacity:.4; transform:translate(-50%,0) scale(1) } }
@keyframes mv-rotate { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes mv-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-virtue-as-art { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%); }
.scn-virtue-as-art .studio-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%); }
.scn-virtue-as-art .statue-base { position:absolute; bottom:15%; left:50%; width:50px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-virtue-as-art .statue-torso { position:absolute; bottom:27%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-virtue-as-art .statue-head { position:absolute; bottom:55%; left:50%; width:20px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 10px 2px rgba(200,180,160,.1); }
.scn-virtue-as-art .brush-pot { position:absolute; bottom:12%; left:25%; width:12px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-virtue-as-art .canvas-easel { position:absolute; bottom:20%; left:20%; width:40px; height:50px; transform:rotate(-5deg); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border: 2px solid #5a4a3a; border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-virtue-as-art .warm-light { position:absolute; top:10%; left:40%; width:30%; height:40%; background: radial-gradient(ellipse, rgba(200,160,96,.12) 0%, transparent 60%); animation: va-light 6s ease-in-out infinite alternate; }
.scn-virtue-as-art .paint-splatter { position:absolute; bottom:10%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 40%, transparent 70%); border-radius:50%; box-shadow: 15px 10px 0 -2px #b87878, 25px 5px 0 -3px #702243; animation: va-splatter 8s ease-in-out infinite; }
@keyframes va-light { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes va-splatter { 0% { transform: scale(1) translate(0,0) } 25% { transform: scale(1.1) translate(2px,-1px) } 50% { transform: scale(.95) translate(-1px,2px) } 75% { transform: scale(1.05) translate(3px,1px) } 100% { transform: scale(1) translate(0,0) } }

.scn-flaws-in-language { background: linear-gradient(180deg, #1a1a24 0%, #2a2a38 40%, #1e1e2a 100%), radial-gradient(ellipse at 30% 60%, #3a3a4e 0%, transparent 70%); position:relative; }
.scn-flaws-in-language .desk { position:absolute; bottom:8%; left:5%; right:5%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); }
.scn-flaws-in-language .candle { position:absolute; bottom:30%; left:40%; width:12px; height:36px; background: linear-gradient(180deg, #d4c4a0 0%, #a08060 100%); border-radius: 2px 2px 4px 4px; transform:rotate(2deg); }
.scn-flaws-in-language .flame { position:absolute; bottom:52%; left:41.5%; width:8px; height:16px; background: radial-gradient(circle, #ffe080 0%, #ffb040 50%, transparent 100%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: fl-flicker 1.2s ease-in-out infinite alternate; }
.scn-flaws-in-language .scroll { position:absolute; bottom:12%; left:30%; width:80px; height:8px; background: linear-gradient(90deg, #d4c4a0 10%, #f0e4c8 50%, #d4c4a0 90%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(-3deg); animation: fl-unroll 20s ease-in-out infinite; }
.scn-flaws-in-language .pen { position:absolute; bottom:14%; left:55%; width:4px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 2px; border-left: 1px solid #b0a090; transform: rotate(35deg); transform-origin: bottom center; animation: fl-write 6s ease-in-out infinite; }
.scn-flaws-in-language .shadow { position:absolute; bottom:8%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(8px); animation: fl-shade 12s ease-in-out infinite alternate; }
.scn-flaws-in-language .dust-a, .scn-flaws-in-language .dust-b { position:absolute; width:3px; height:3px; background: rgba(255,255,200,0.3); border-radius:50%; filter: blur(1px); }
.scn-flaws-in-language .dust-a { top:20%; left:60%; animation: fl-drift-a 30s linear infinite; }
.scn-flaws-in-language .dust-b { top:50%; left:20%; animation: fl-drift-b 40s linear infinite; animation-delay: -10s; }

@keyframes fl-flicker { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes fl-unroll { 0%,100% { width:80px; } 50% { width:85px; } }
@keyframes fl-write { 0%,100% { transform: rotate(35deg); } 50% { transform: rotate(30deg) translateX(2px); } }
@keyframes fl-shade { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes fl-drift-a { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.3; } 90% { opacity:0.2; } 100% { transform: translateX(120px) translateY(-40px); opacity:0; } }
@keyframes fl-drift-b { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.2; } 90% { opacity:0.3; } 100% { transform: translateX(-80px) translateY(-60px); opacity:0; } }

.scn-just-does-not-aim-at-excess { background: linear-gradient(180deg, #1a1a2e 0%, #2c2c42 50%, #20203a 100%), radial-gradient(ellipse at 50% 80%, #3a3a56 0%, transparent 70%); position:relative; }
.scn-just-does-not-aim-at-excess .scale-stand { position:absolute; bottom:20%; left:50%; width:12px; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform:translateX(-50%); }
.scn-just-does-not-aim-at-excess .beam { position:absolute; bottom:55%; left:30%; right:30%; height:4px; background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 50%, #8a7a6a 100%); border-radius: 2px; transform-origin: center; animation: jd-balance 8s ease-in-out infinite; }
.scn-just-does-not-aim-at-excess .pan-left, .scn-just-does-not-aim-at-excess .pan-right { position:absolute; bottom:52%; width:40px; height:12px; background: linear-gradient(180deg, #706050 0%, #504030 100%); border-radius: 0 0 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-just-does-not-aim-at-excess .pan-left { left:24%; transform: rotate(2deg); animation: jd-pan-left 8s ease-in-out infinite; }
.scn-just-does-not-aim-at-excess .pan-right { right:24%; transform: rotate(-2deg); animation: jd-pan-right 8s ease-in-out infinite; }
.scn-just-does-not-aim-at-excess .chain-left, .scn-just-does-not-aim-at-excess .chain-right { position:absolute; bottom:55%; width:2px; height:20px; background: #a09080; }
.scn-just-does-not-aim-at-excess .chain-left { left:28%; transform: rotate(5deg); }
.scn-just-does-not-aim-at-excess .chain-right { right:28%; transform: rotate(-5deg); }
.scn-just-does-not-aim-at-excess .glow-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 65%, rgba(200,200,160,0.05) 0%, transparent 60%); animation: jd-glow 15s ease-in-out infinite alternate; }

@keyframes jd-balance { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } }
@keyframes jd-pan-left { 0%,100% { transform: rotate(2deg); } 25% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(5deg); } }
@keyframes jd-pan-right { 0%,100% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(-5deg); } }
@keyframes jd-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-epilogue-thrasymachus { background: linear-gradient(180deg, #1c1830 0%, #2a2640 50%, #18142a 100%), radial-gradient(ellipse at 70% 80%, #3a3650 0%, transparent 70%); position:relative; }
.scn-epilogue-thrasymachus .table { position:absolute; bottom:10%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); }
.scn-epilogue-thrasymachus .book-cover { position:absolute; bottom:22%; left:38%; width:60px; height:45px; background: linear-gradient(180deg, #4a3040 0%, #2a1828 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(-2deg); animation: et-close 12s ease-in-out infinite; }
.scn-epilogue-thrasymachus .book-pages { position:absolute; bottom:22.5%; left:39%; width:56px; height:34px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; box-shadow: inset 0 0 4px rgba(0,0,0,0.2); transform: rotate(-2deg); animation: et-page 20s ease-in-out infinite; }
.scn-epilogue-thrasymachus .lamp-base { position:absolute; bottom:20%; right:25%; width:16px; height:28px; background: linear-gradient(180deg, #8a7a6a 0%, #504030 100%); border-radius: 4px 4px 8px 8px; }
.scn-epilogue-thrasymachus .lamp-glow { position:absolute; bottom:30%; right:23%; width:30px; height:40px; background: radial-gradient(circle, rgba(255,200,150,0.5) 0%, rgba(255,200,150,0.1) 60%, transparent 100%); filter: blur(6px); animation: et-lamp-pulse 4s ease-in-out infinite; }
.scn-epilogue-thrasymachus .mote-a, .scn-epilogue-thrasymachus .mote-b, .scn-epilogue-thrasymachus .mote-c { position:absolute; width:2px; height:2px; background: rgba(255,220,180,0.3); border-radius:50%; filter: blur(0.5px); }
.scn-epilogue-thrasymachus .mote-a { top:30%; left:30%; animation: et-drift 25s linear infinite; }
.scn-epilogue-thrasymachus .mote-b { top:50%; left:60%; animation: et-drift 35s linear infinite; animation-delay: -8s; }
.scn-epilogue-thrasymachus .mote-c { top:70%; left:40%; animation: et-drift 45s linear infinite; animation-delay: -16s; }

@keyframes et-close { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes et-page { 0%,100% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(-1deg) scaleX(0.98); } }
@keyframes et-lamp-pulse { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes et-drift { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.4; } 80% { opacity:0.2; } 100% { transform: translateX(60px) translateY(-80px); opacity:0; } }

.scn-glaucon-insists { background: linear-gradient(180deg, #f0e8d8 0%, #d8d0be 50%, #c0b8a8 100%), radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%); position:relative; }
.scn-glaucon-insists .window-frame { position:absolute; top:5%; left:20%; right:20%; height:55%; background: linear-gradient(180deg, #b0a898 0%, #8a8272 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-glaucon-insists .light-beam { position:absolute; top:5%; left:22%; right:22%; height:55%; background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, rgba(255,255,240,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); filter: blur(4px); animation: gi-beam 10s ease-in-out infinite alternate; }
.scn-glaucon-insists .figure-body { position:absolute; bottom:18%; left:50%; width:28px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: gi-sway 6s ease-in-out infinite; }
.scn-glaucon-insists .figure-arm { position:absolute; bottom:38%; left:48%; width:20px; height:22px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 20% 20%; transform-origin: 100% 100%; transform: rotate(-20deg); animation: gi-gesture 4s ease-in-out infinite; }
.scn-glaucon-insists .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); }
.scn-glaucon-insists .shadow-cast { position:absolute; bottom:20%; left:40%; width:80px; height:30px; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(8px); transform: rotate(-10deg); animation: gi-shadow 8s ease-in-out infinite alternate; }
.scn-glaucon-insists .glow-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,255,240,0.15) 0%, transparent 60%); animation: gi-ambient 12s ease-in-out infinite alternate; }

@keyframes gi-beam { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes gi-sway { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-46%) rotate(2deg); } 75% { transform: translateX(-54%) rotate(-2deg); } }
@keyframes gi-gesture { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-40deg); } }
@keyframes gi-shadow { 0% { opacity:0.3; transform: translateX(0) rotate(-10deg); } 50% { opacity:0.5; transform: translateX(5px) rotate(-5deg); } 100% { opacity:0.2; transform: translateX(-5px) rotate(-15deg); } }
@keyframes gi-ambient { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-eighth-book-style {
  background: linear-gradient(180deg, #2a1e14 0%, #1b130d 50%, #0f0b07 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
}
.scn-eighth-book-style .wall-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%);
  opacity: .4;
  animation: si8-wall 20s ease-in-out infinite alternate;
}
.scn-eighth-book-style .shelf {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a32 50%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
}
.scn-eighth-book-style .book {
  position: absolute; bottom: calc(35% + 8px); width: 14px; height: 36px;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 2px 4px 4px 2px;
  box-shadow: 0 2px 3px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: si8-book 12s ease-in-out infinite;
}
.scn-eighth-book-style .book-1 { left: 18%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); animation-delay: 0s; }
.scn-eighth-book-style .book-2 { left: 30%; width: 10px; height: 42px; background: linear-gradient(180deg, #8b6a4a, #5a3a2a); animation-delay: 2s; }
.scn-eighth-book-style .book-3 { left: 42%; width: 16px; height: 30px; background: linear-gradient(180deg, #4a6a3a, #2a4a2a); animation-delay: 4s; }
.scn-eighth-book-style .lamp-glow {
  position: absolute; bottom: 40%; left: 70%; width: 40px; height: 50px;
  background: radial-gradient(circle, #d4a050 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(212,160,80,.3), 0 0 80px 40px rgba(212,160,80,.1);
  animation: si8-lamp 6s ease-in-out infinite alternate;
}
.scn-eighth-book-style .scroll {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #c8a86e 0%, #a08050 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(15deg);
  animation: si8-scroll 8s ease-in-out infinite;
}
.scn-eighth-book-style .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 60%, #0f0b07 100%);
  pointer-events: none;
}
@keyframes si8-wall { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; } }
@keyframes si8-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes si8-lamp { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes si8-scroll { 0%,100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(4px); } }

.scn-portraits-of-individuals {
  background: linear-gradient(180deg, #1f1812 0%, #100c08 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
}
.scn-portraits-of-individuals .wall-frame {
  position: absolute; inset: 8% 6%;
  border: 10px solid #4a3a2a;
  border-radius: 4px;
  background: #2a1e14;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-portraits-of-individuals .portrait-oval {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1f140e 100%);
  border-radius: 50%;
  border: 4px solid #6a4a32;
  box-shadow: 0 0 15px rgba(0,0,0,.7);
}
.scn-portraits-of-individuals .father-figure {
  position: absolute; top: 35%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a10);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: po-father 8s ease-in-out infinite;
}
.scn-portraits-of-individuals .mother-figure {
  position: absolute; top: 35%; left: 48%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(3deg);
  animation: po-mother 10s ease-in-out infinite;
}
.scn-portraits-of-individuals .servant-figure {
  position: absolute; top: 40%; left: 28%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a, #1a10080);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(2deg);
  animation: po-servant 12s ease-in-out infinite;
}
.scn-portraits-of-individuals .oligarch-figure {
  position: absolute; top: 38%; left: 55%; width: 8px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a, #1f140e);
  border-radius: 30% 30% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-2deg);
  animation: po-oligarch 9s ease-in-out infinite;
}
.scn-portraits-of-individuals .candle {
  position: absolute; bottom: 25%; left: 70%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #d4a050, #8b5a2b);
  border-radius: 2px;
  box-shadow: 0 -4px 8px 2px rgba(212,160,80,.4);
  animation: po-candle 4s ease-in-out infinite alternate;
}
.scn-portraits-of-individuals .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, #100c08 100%);
  pointer-events: none;
}
@keyframes po-father { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes po-mother { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } }
@keyframes po-servant { 0%,100% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } }
@keyframes po-oligarch { 0%,100% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.03); } }
@keyframes po-candle { 0% { opacity: .8; box-shadow: 0 -4px 8px 2px rgba(212,160,80,.3); } 50% { opacity: 1; box-shadow: 0 -6px 12px 4px rgba(212,160,80,.7); } 100% { opacity: .9; box-shadow: 0 -4px 8px 2px rgba(212,160,80,.4); } }

.scn-number-of-the-state {
  background: linear-gradient(180deg, #1a1610 0%, #0e0b07 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.9);
}
.scn-number-of-the-state .table-stone {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #3a3428 0%, #1f1a12 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,.7);
  animation: ns-stone 30s ease-in-out infinite;
}
.scn-number-of-the-state .number-symbol {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89868 0%, #8a6a40 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  box-shadow: 0 0 20px rgba(184,152,104,.5);
  animation: ns-number 15s ease-in-out infinite alternate;
}
.scn-number-of-the-state .rune-line {
  position: absolute; bottom: 42%; left: 30%; height: 2px;
  background: #8a6a40;
  border-radius: 1px;
  opacity: .6;
  animation: ns-rune 12s ease-in-out infinite;
}
.scn-number-of-the-state .rune-1 { width: 40px; left: 25%; animation-delay: 0s; }
.scn-number-of-the-state .rune-2 { width: 30px; left: 35%; top: 48%; animation-delay: 3s; }
.scn-number-of-the-state .rune-3 { width: 20px; left: 45%; top: 54%; animation-delay: 6s; }
.scn-number-of-the-state .mystery-glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a86e 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,168,110,.15);
  animation: ns-glow 8s ease-in-out infinite alternate;
}
.scn-number-of-the-state .dust-motes {
  position: absolute; inset: 0;
  background-image: radial-gradient(2px 2px at 20% 30%, rgba(200,168,110,.3) 0%, transparent 100%),
                    radial-gradient(2px 2px at 70% 60%, rgba(200,168,110,.2) 0%, transparent 100%),
                    radial-gradient(1px 1px at 40% 80%, rgba(200,168,110,.25) 0%, transparent 100%);
  background-size: 100% 100%;
  animation: ns-dust 40s linear infinite;
  pointer-events: none;
}
@keyframes ns-stone { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ns-number { 0% { opacity: .6; transform: translateX(-50%) rotate(-3deg) scale(1); } 50% { opacity: .9; transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { opacity: .7; transform: translateX(-50%) rotate(-1deg) scale(1); } }
@keyframes ns-rune { 0%,100% { opacity: .4; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.2); } }
@keyframes ns-glow { 0% { opacity: .3; transform: translateX(-50%) scale(1); } 50% { opacity: .7; transform: translateX(-50%) scale(1.1); } 100% { opacity: .4; transform: translateX(-50%) scale(1.05); } }
@keyframes ns-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-tyrannical-man {
  background: linear-gradient(180deg, #0c0a12 0%, #1a1428 50%, #0e0c1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.9);
}
.scn-tyrannical-man .dark-abyss {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1f1a3a 0%, transparent 70%);
  opacity: .5;
}
.scn-tyrannical-man .prison-bar {
  position: absolute; top: 5%; bottom: 5%; width: 6px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,.8);
}
.scn-tyrannical-man .bar-1 { left: 25%; animation: tm-bar 8s ease-in-out infinite; }
.scn-tyrannical-man .bar-2 { left: 48%; animation: tm-bar 8s ease-in-out infinite 2s; }
.scn-tyrannical-man .bar-3 { left: 72%; animation: tm-bar 8s ease-in-out infinite 4s; }
.scn-tyrannical-man .figure-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1428 0%, #0a0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.7);
  animation: tm-figure 6s ease-in-out infinite;
}
.scn-tyrannical-man .shackle {
  position: absolute; bottom: 25%; width: 16px; height: 6px;
  background: #2a2a2a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.6);
  animation: tm-shackle 5s ease-in-out infinite alternate;
}
.scn-tyrannical-man .chain-1 { left: 38%; bottom: 30%; }
.scn-tyrannical-man .chain-2 { right: 38%; bottom: 30%; }
.scn-tyrannical-man .tiny-light {
  position: absolute; top: 15%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a08060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,128,96,.4);
  animation: tm-light 7s ease-in-out infinite alternate;
}
@keyframes tm-bar { 0%,100% { opacity: .8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } }
@keyframes tm-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 75% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); } }
@keyframes tm-shackle { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes tm-light { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .9; transform: scale(1.3); } 100% { opacity: .6; transform: scale(1.1); } }

.scn-hellenic-humanizing {
  background:
    radial-gradient(ellipse at 50% 20%, #8a6a3a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%);
}
.scn-hellenic-humanizing .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-hellenic-humanizing .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-hellenic-humanizing .column { position:absolute; bottom:10%; width:12px; top:10%; background: linear-gradient(180deg, #b09870 0%, #8a7050 50%, #6a5030 100%); border-radius:4px; box-shadow: 4px 0 6px rgba(0,0,0,.5); }
.scn-hellenic-humanizing .column-left{ left:15%; }
.scn-hellenic-humanizing .column-right{ right:15%; }
.scn-hellenic-humanizing .vase { position:absolute; bottom:32%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #a07850 0%, #7a5838 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: hel-vase 8s ease-in-out infinite alternate; }
.scn-hellenic-humanizing .scholar { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #d4bc90 0%, #b09870 30%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hel-scholar 6s ease-in-out infinite; }
.scn-hellenic-humanizing .olive-branch { position:absolute; bottom:30%; left:45%; width:20px; height:12px; background: radial-gradient(ellipse at 30% 50%, #5a7a40 0%, #3a5a2a 100%); border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%; transform: rotate(-20deg); filter: blur(1px); animation: hel-branch 10s ease-in-out infinite alternate; }
.scn-hellenic-humanizing .lamp { position:absolute; bottom:40%; left:50%; width:8px; height:14px; background: radial-gradient(circle, #f0c060 0%, #d09030 60%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(240,192,96,.6); animation: hel-lamp 4s ease-in-out infinite alternate; }
.scn-hellenic-humanizing .shadow-pool { position:absolute; bottom:28%; left:38%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); filter: blur(4px); animation: hel-shadow 6s ease-in-out infinite alternate; }

@keyframes hel-vase    { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hel-scholar { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-4px) rotate(1deg) } 60% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes hel-branch  { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.05) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes hel-lamp    { 0% { opacity:.8; box-shadow: 0 0 15px 4px rgba(240,192,96,.5) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(240,192,96,.8) } 100% { opacity:.85; box-shadow: 0 0 20px 6px rgba(240,192,96,.6) } }
@keyframes hel-shadow  { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-upper-class-citizens {
  background:
    radial-gradient(ellipse at 50% 10%, #6a5030 0%, transparent 70%),
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%);
}
.scn-upper-class-citizens .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-upper-class-citizens .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; }
.scn-upper-class-citizens .couch-left { position:absolute; bottom:0; left:10%; width:30%; height:25%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-upper-class-citizens .couch-right { position:absolute; bottom:0; right:10%; width:30%; height:25%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-upper-class-citizens .figure-reclining { position:absolute; bottom:12%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #d4b080 0%, #b09060 50%, #8a6a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: upp-figure 7s ease-in-out infinite; }
.scn-upper-class-citizens .krater { position:absolute; bottom:20%; left:48%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 40%, #a07050 0%, #785030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: upp-krater 10s ease-in-out infinite alternate; }
.scn-upper-class-citizens .wreath { position:absolute; top:15%; right:20%; width:24px; height:10px; background: radial-gradient(ellipse at 30% 50%, #5a7a40 0%, #3a5a2a 100%); border-radius: 50%; transform: rotate(15deg); filter: blur(2px); animation: upp-wreath 12s ease-in-out infinite alternate; }
.scn-upper-class-citizens .lamp { position:absolute; top:10%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #f0c060 0%, #d09030 60%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,192,96,.6); animation: upp-lamp 5s ease-in-out infinite alternate; }
.scn-upper-class-citizens .curtain { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 0 20% 20% 0; animation: upp-curtain 20s ease-in-out infinite alternate; }

@keyframes upp-figure  { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes upp-krater  { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(-3deg) } 100% { transform: scale(1) rotate(3deg) } }
@keyframes upp-wreath  { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.1) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes upp-lamp    { 0% { opacity:.7; box-shadow: 0 0 15px 4px rgba(240,192,96,.4) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(240,192,96,.8) } 100% { opacity:.8; box-shadow: 0 0 20px 6px rgba(240,192,96,.5) } }
@keyframes upp-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-earth-born-men-myth {
  background:
    radial-gradient(ellipse at 50% 120%, #4a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 40%, #3a3a2a 100%);
}
.scn-earth-born-men-myth .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 100%); }
.scn-earth-born-men-myth .bg-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 60% 0 0; }
.scn-earth-born-men-myth .figure-emerging { position:absolute; bottom:30%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-earth-born-men-myth .figure-left { left:30%; animation: ear-figure-left 6s ease-in-out infinite; }
.scn-earth-born-men-myth .figure-right { right:30%; animation: ear-figure-right 7s ease-in-out infinite 1s; }
.scn-earth-born-men-myth .fig-head { position:absolute; bottom:58%; width:18px; height:16px; background: radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-earth-born-men-myth .fig-head-left { left:35%; animation: ear-head 5s ease-in-out infinite; }
.scn-earth-born-men-myth .fig-head-right { right:35%; animation: ear-head 5s ease-in-out infinite 0.5s; }
.scn-earth-born-men-myth .rock { position:absolute; bottom:28%; left:48%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: ear-rock 12s ease-in-out infinite alternate; }
.scn-earth-born-men-myth .dust { position:absolute; bottom:30%; left:25%; width:50%; height:10px; background: radial-gradient(ellipse, rgba(100,90,70,.3) 0%, transparent 80%); filter: blur(6px); animation: ear-dust 8s ease-in-out infinite alternate; }

@keyframes ear-figure-left { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ear-figure-right { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes ear-head { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ear-rock { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes ear-dust { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-pythagorean-league {
  background:
    radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%);
}
.scn-pythagorean-league .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-pythagorean-league .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-pythagorean-league .arch { position:absolute; top:10%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pyt-arch 20s ease-in-out infinite alternate; }
.scn-pythagorean-league .tablet { position:absolute; bottom:40%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #a09070 0%, #7a6a50 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: pyt-tablet 10s ease-in-out infinite alternate; }
.scn-pythagorean-league .hand-writing { position:absolute; bottom:45%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: pyt-hand 6s ease-in-out infinite alternate; }
.scn-pythagorean-league .figure-seated { position:absolute; bottom:15%; width:18px; height:40px; background: linear-gradient(180deg, #b09060 0%, #8a6a40 50%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-pythagorean-league .figure-a { left:25%; animation: pyt-figure 8s ease-in-out infinite; }
.scn-pythagorean-league .figure-b { left:45%; animation: pyt-figure 8s ease-in-out infinite 1s; }
.scn-pythagorean-league .figure-c { left:65%; animation: pyt-figure 8s ease-in-out infinite 2s; }
.scn-pythagorean-league .lamp { position:absolute; top:20%; left:50%; width:12px; height:16px; background: radial-gradient(circle, #f0c060 0%, #d09030 60%); border-radius: 50%; box-shadow: 0 0 25px 10px rgba(240,192,96,.6); animation: pyt-lamp 4s ease-in-out infinite alternate; }

@keyframes pyt-arch   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes pyt-tablet { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes pyt-hand   { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes pyt-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes pyt-lamp   { 0% { opacity:.7; box-shadow: 0 0 15px 4px rgba(240,192,96,.4) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(240,192,96,.8) } 100% { opacity:.8; box-shadow: 0 0 20px 6px rgba(240,192,96,.5) } }

/* just-does-not-overreach-just */
.scn-just-does-not-overreach-just {
  background: linear-gradient(180deg, #2b2b1a 0%, #1a1a0e 40%, #0e0e08 100%), radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-just-does-not-overreach-just .wall {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #3d3025 0%, #2a1f16 100%); border-bottom: 2px solid #4a3a2a;
}
.scn-just-does-not-overreach-just .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f16 100%);
}
.scn-just-does-not-overreach-just .table {
  position: absolute; bottom: 22%; left: 35%; width: 140px; height: 8px; background: #5a4a3a; border-radius: 2px; transform: perspective(200px) rotateX(30deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-just-does-not-overreach-just .lamp {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 40px; background: linear-gradient(180deg, #ba8a5a 0%, #8a6a3a 100%); border-radius: 4px; transform: rotate(-5deg);
}
.scn-just-does-not-overreach-just .lamp-glow {
  position: absolute; bottom: 30%; left: 42%; width: 80px; height: 80px; background: radial-gradient(circle, #dbb87a 0%, #b08040 30%, transparent 70%); transform: translate(-50%, -50%); pointer-events: none;
  animation: jd-glow 6s ease-in-out infinite alternate;
}
.scn-just-does-not-overreach-just .figure {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 70px; background: linear-gradient(180deg, #2a1f16 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: jd-figure 4s ease-in-out infinite;
}
.scn-just-does-not-overreach-just .book {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 16px; background: #5a4a3a; border-radius: 2px; transform: perspective(200px) rotateY(-20deg) rotateX(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-just-does-not-overreach-just .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px);
  animation: jd-shadow 4s ease-in-out infinite;
}
@keyframes jd-glow { 0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); } }
@keyframes jd-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jd-shadow { 0% { width: 80px; opacity: 0.4; } 50% { width: 90px; opacity: 0.3; } 100% { width: 80px; opacity: 0.4; } }

/* unjust-overreaches-all */
.scn-unjust-overreaches-all {
  background: linear-gradient(180deg, #1e1e2a 0%, #121218 40%, #0a0a0e 100%), radial-gradient(ellipse at 40% 50%, #2a2a3a 0%, transparent 60%);
}
.scn-unjust-overreaches-all .wall {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%); border-bottom: 1px solid #3a2a40;
}
.scn-unjust-overreaches-all .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a40 0%, #1a1420 100%);
}
.scn-unjust-overreaches-all .figure-just {
  position: absolute; bottom: 20%; left: 25%; width: 26px; height: 65px; background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: un-just 5s ease-in-out infinite;
}
.scn-unjust-overreaches-all .figure-unjust {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 70px; background: linear-gradient(180deg, #3a2a44 0%, #2a1a34 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: un-unjust 5s ease-in-out infinite;
}
.scn-unjust-overreaches-all .foil {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 30px; background: #5a4a5a; border-radius: 4px; transform: rotate(20deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: un-foil 5s ease-in-out infinite;
}
.scn-unjust-overreaches-all .foil-glow {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle, #8a6a8a 0%, transparent 70%); transform: translate(-50%, -50%);
  animation: un-glow 6s ease-in-out infinite alternate;
}
.scn-unjust-overreaches-all .shadow-just {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 15px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: un-shadow 5s ease-in-out infinite;
}
.scn-unjust-overreaches-all .shadow-unjust {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 18px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: un-shadow2 5s ease-in-out infinite;
}
@keyframes un-just { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes un-unjust { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg) scale(1.05); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes un-foil { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }
@keyframes un-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes un-shadow { 0% { width: 60px; } 50% { width: 70px; } 100% { width: 60px; } }
@keyframes un-shadow2 { 0% { width: 70px; } 50% { width: 85px; } 100% { width: 70px; } }

/* like-and-unlike */
.scn-like-and-unlike {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-like-and-unlike .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3a3045 0%, #2a2035 100%); border-bottom: 2px solid #4a3a55;
}
.scn-like-and-unlike .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4a3a55 0%, #2a2035 100%);
}
.scn-like-and-unlike .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 60px; background: linear-gradient(180deg, #4a3a55 0%, #2a1a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: lu-left 4s ease-in-out infinite;
}
.scn-like-and-unlike .figure-right {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 68px; background: linear-gradient(180deg, #554a60 0%, #3a2a45 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: lu-right 4s ease-in-out infinite;
}
.scn-like-and-unlike .pedestal {
  position: absolute; bottom: 15%; left: 42%; width: 60px; height: 50px; background: linear-gradient(180deg, #4a3a55 0%, #2a1a30 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-like-and-unlike .lantern {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 24px; background: #b08040; border-radius: 2px; transform: rotate(-3deg);
}
.scn-like-and-unlike .lantern-glow {
  position: absolute; bottom: 35%; left: 48%; width: 60px; height: 60px; background: radial-gradient(circle, #c09050 0%, #a07030 30%, transparent 70%); transform: translate(-50%, -50%);
  animation: lu-glow 6s ease-in-out infinite alternate;
}
.scn-like-and-unlike .shadow-left {
  position: absolute; bottom: 22%; left: 25%; width: 50px; height: 12px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px);
  animation: lu-shadow 4s ease-in-out infinite;
}
.scn-like-and-unlike .shadow-right {
  position: absolute; bottom: 22%; left: 50%; width: 55px; height: 14px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px);
  animation: lu-shadow2 4s ease-in-out infinite;
}
@keyframes lu-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lu-right { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-3px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes lu-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lu-shadow { 0% { width: 50px; opacity: 0.4; } 50% { width: 60px; opacity: 0.3; } 100% { width: 50px; opacity: 0.4; } }
@keyframes lu-shadow2 { 0% { width: 55px; opacity: 0.4; } 50% { width: 65px; opacity: 0.3; } 100% { width: 55px; opacity: 0.4; } }

/* musician-analogy */
.scn-musician-analogy {
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 40%, #0e0808 100%), radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-musician-analogy .wall {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-bottom: 1px solid #4a3a3a;
}
.scn-musician-analogy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
}
.scn-musician-analogy .musician {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 75px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mu-body 4s ease-in-out infinite;
}
.scn-musician-analogy .lyre {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 40px; background: #b08050; border-radius: 4px; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mu-lyre 4s ease-in-out infinite;
}
.scn-musician-analogy .lyre-string {
  position: absolute; bottom: 30%; left: 48.5%; width: 2px; height: 30px; background: #d0b080; transform: rotate(-15deg);
  animation: mu-string 1.5s ease-in-out infinite;
}
.scn-musician-analogy .note {
  position: absolute; bottom: 50%; left: 55%; width: 8px; height: 8px; background: #b08040; border-radius: 50%;
  animation: mu-note 3s ease-in-out infinite;
}
.scn-musician-analogy .note1 {
  left: 55%; bottom: 50%;
  animation-delay: 0s;
}
.scn-musician-analogy .note2 {
  left: 65%; bottom: 40%;
  animation-delay: 1s;
  width: 6px; height: 6px;
}
.scn-musician-analogy .note3 {
  left: 75%; bottom: 30%;
  animation-delay: 2s;
  width: 4px; height: 4px;
}
.scn-musician-analogy .candle {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 20px; background: #8a6a3a; border-radius: 2px;
  animation: mu-candle 6s ease-in-out infinite alternate;
}
@keyframes mu-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mu-lyre { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-15deg); } }
@keyframes mu-string { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes mu-note { 0% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-30px) scale(0.8); opacity: 0.8; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }
@keyframes mu-candle { 0% { height: 20px; } 50% { height: 22px; } 100% { height: 20px; } }

.scn-one-or-many-virtues {
  background: linear-gradient(180deg, #2b2420 0%, #3d322c 40%, #4a3e36 100%),
              radial-gradient(ellipse at 50% 30%, #4a3e36 0%, #1e1815 80%);
  overflow: hidden;
}
.scn-one-or-many-virtues .wall-left {
  position: absolute;
  inset: 0 50% 0 0;
  background: linear-gradient(135deg, #3d322c 0%, #2b2420 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,.3);
}
.scn-one-or-many-virtues .wall-right {
  position: absolute;
  inset: 0 0 0 50%;
  background: linear-gradient(225deg, #4a3e36 0%, #3d322c 100%);
}
.scn-one-or-many-virtues .floor {
  position: absolute;
  inset: 60% 0 0 0;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1e16 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-one-or-many-virtues .lamp-glow {
  position: absolute;
  bottom: 55%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(ellipse at 50% 0%, #e8d0a0 0%, #c8a86a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,168,106,.3), 0 0 120px 60px rgba(200,168,106,.1);
  animation: omv-lamp 6s ease-in-out infinite alternate;
}
.scn-one-or-many-virtues .lamp-body {
  position: absolute;
  bottom: 58%;
  left: 50%;
  width: 14px;
  height: 28px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-one-or-many-virtues .scroll-a {
  position: absolute;
  bottom: 42%;
  left: 38%;
  width: 40px;
  height: 10px;
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: omv-scroll 9s ease-in-out infinite;
}
.scn-one-or-many-virtues .scroll-b {
  position: absolute;
  bottom: 40%;
  left: 54%;
  width: 50px;
  height: 8px;
  background: linear-gradient(180deg, #d0c4a0 0%, #b8ac88 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: omv-scroll 11s ease-in-out infinite reverse;
}
.scn-one-or-many-virtues .table {
  position: absolute;
  bottom: 40%;
  left: 38%;
  width: 80px;
  height: 6px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%);
  border-radius: 4px;
  transform: translate(-10%, 0);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
@keyframes omv-lamp {
  0% { opacity: .7; transform: translate(-50%, 0) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -2px) scale(1.05); }
  100% { opacity: .85; transform: translate(-50%, 0) scale(.98); }
}
@keyframes omv-scroll {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

.scn-soul-has-three-parts {
  background: linear-gradient(180deg, #f5ede0 0%, #e8dcc8 40%, #d4c8b0 100%),
              radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 60%);
  overflow: hidden;
}
.scn-soul-has-three-parts .arch-bg {
  position: absolute;
  inset: 0 10% 25% 10%;
  background: linear-gradient(180deg, #ece4d4 0%, #d8ccb8 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.08);
  animation: shp-arch 20s ease-in-out infinite alternate;
}
.scn-soul-has-three-parts .pillar-l {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 18px;
  height: 55%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca4 60%, #a89880 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.1), 4px 0 8px rgba(0,0,0,.05);
}
.scn-soul-has-three-parts .pillar-r {
  position: absolute;
  bottom: 25%;
  right: 15%;
  width: 18px;
  height: 55%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca4 60%, #a89880 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.1), -4px 0 8px rgba(0,0,0,.05);
}
.scn-soul-has-three-parts .sunlight {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 120px;
  height: 70%;
  background: linear-gradient(180deg, rgba(255,248,230,.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 85% 100%, 15% 100%);
  animation: shp-sun 8s ease-in-out infinite alternate;
}
.scn-soul-has-three-parts .figure-l {
  position: absolute;
  bottom: 26%;
  left: 22%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shp-fig-l 5s ease-in-out infinite;
}
.scn-soul-has-three-parts .figure-m {
  position: absolute;
  bottom: 26%;
  left: 46%;
  width: 30px;
  height: 54px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shp-fig-m 6s ease-in-out infinite;
}
.scn-soul-has-three-parts .figure-r {
  position: absolute;
  bottom: 26%;
  left: 66%;
  width: 26px;
  height: 48px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shp-fig-r 7s ease-in-out infinite;
}
.scn-soul-has-three-parts .plinth {
  position: absolute;
  bottom: 25%;
  left: 18%;
  right: 18%;
  height: 6px;
  background: linear-gradient(180deg, #c0b4a0 0%, #a89884 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,.1);
}
@keyframes shp-arch {
  0% { transform: scale(1); opacity: .95; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(.98); opacity: .9; }
}
@keyframes shp-sun {
  0% { opacity: .6; transform: translateX(-5px); }
  50% { opacity: 1; transform: translateX(3px); }
  100% { opacity: .7; transform: translateX(-2px); }
}
@keyframes shp-fig-l {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg); }
}
@keyframes shp-fig-m {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes shp-fig-r {
  0% { transform: rotate(1deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}

.scn-principle-of-contradiction {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 50%, #d0c4b0 100%),
              radial-gradient(ellipse at 80% 30%, #fff8ec 0%, transparent 60%);
  overflow: hidden;
}
.scn-principle-of-contradiction .sky-bright {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.05);
  animation: poc-sky 15s ease-in-out infinite alternate;
}
.scn-principle-of-contradiction .column-l {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #d8ccb8 0%, #b8ac98 60%, #a89884 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -3px 0 6px rgba(0,0,0,.08), 3px 0 6px rgba(0,0,0,.04);
}
.scn-principle-of-contradiction .column-r {
  position: absolute;
  bottom: 0;
  right: 20%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #d8ccb8 0%, #b8ac98 60%, #a89884 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 3px 0 6px rgba(0,0,0,.08), -3px 0 6px rgba(0,0,0,.04);
}
.scn-principle-of-contradiction .thinker {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 36px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  animation: poc-think 4s ease-in-out infinite;
}
.scn-principle-of-contradiction .arm-rest {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 24px;
  height: 6px;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: right center;
  animation: poc-arm-rest 4s ease-in-out infinite;
}
.scn-principle-of-contradiction .arm-move {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 20px;
  height: 5px;
  transform: translateX(-50%) rotate(15deg);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: left center;
  animation: poc-arm-move 3s ease-in-out infinite alternate;
}
.scn-principle-of-contradiction .shadow-sharp {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 80px;
  height: 25%;
  background: linear-gradient(135deg, rgba(0,0,0,.15) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: poc-shadow 6s ease-in-out infinite alternate;
}
@keyframes poc-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes poc-think {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes poc-arm-rest {
  0% { transform: translateX(-50%) rotate(-10deg); }
  50% { transform: translateX(-50%) rotate(-8deg) scaleX(1.05); }
  100% { transform: translateX(-50%) rotate(-10deg); }
}
@keyframes poc-arm-move {
  0% { transform: translateX(-50%) rotate(15deg); }
  50% { transform: translateX(-50%) rotate(25deg) scaleX(1.1); }
  100% { transform: translateX(-50%) rotate(15deg); }
}
@keyframes poc-shadow {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: .7; transform: scaleX(.95); }
}

.scn-thirst-example {
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 40%, #d0c0a8 100%),
              radial-gradient(ellipse at 30% 60%, #fff4e0 0%, transparent 70%);
  overflow: hidden;
}
.scn-thirst-example .wall-warm {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8ccb4 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,.05);
}
.scn-thirst-example .floor-stone {
  position: absolute;
  inset: 65% 0 0 0;
  background: linear-gradient(180deg, #c8b8a4 0%, #a89884 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
}
.scn-thirst-example .cup {
  position: absolute;
  bottom: 42%;
  left: 55%;
  width: 24px;
  height: 30px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
  transform: rotate(-5deg);
  animation: te-cup 5s ease-in-out infinite;
}
.scn-thirst-example .hand-reach {
  position: absolute;
  bottom: 38%;
  left: 45%;
  width: 22px;
  height: 28px;
  background: linear-gradient(180deg, #c8a88a 0%, #a8886a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  transform-origin: 80% 80%;
  animation: te-hand-reach 4s ease-in-out infinite alternate;
}
.scn-thirst-example .hand-restrain {
  position: absolute;
  bottom: 44%;
  left: 42%;
  width: 18px;
  height: 22px;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: 70% 70%;
  animation: te-hand-restrain 4s ease-in-out infinite alternate;
}
.scn-thirst-example .impulse-drink {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(200,160,120,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: te-impulse-d 3s ease-in-out infinite alternate;
}
.scn-thirst-example .impulse-stop {
  position: absolute;
  bottom: 52%;
  left: 40%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, rgba(100,120,140,.1) 0%, transparent 70%);
  border-radius: 50%;
  animation: te-impulse-s 3.5s ease-in-out infinite alternate;
}
@keyframes te-cup {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes te-hand-reach {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-4px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes te-hand-restrain {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes te-impulse-d {
  0% { opacity: .2; transform: scale(.8); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(.9); }
}
@keyframes te-impulse-s {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .1; transform: scale(.7); }
  100% { opacity: .4; transform: scale(1.1); }
}

.scn-swift-no-plato {
  background: linear-gradient(180deg, #2c241c 0%, #3c342c 40%, #4c443c 100%), radial-gradient(ellipse at 50% 100%, #4c443c 0%, transparent 70%);
}
.scn-swift-no-plato .walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3c342c 0%, #1c1410 100%);
  animation: snp-walls 15s ease-in-out infinite alternate;
}
.scn-swift-no-plato .desk {
  position: absolute; bottom: 20%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-swift-no-plato .book {
  position: absolute; bottom: 24%; left: 28%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: snp-book 8s ease-in-out infinite;
}
.scn-swift-no-plato .candle-glow {
  position: absolute; bottom: 30%; left: 46%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: snp-glow 3s ease-in-out infinite alternate;
}
.scn-swift-no-plato .candle {
  position: absolute; bottom: 23%; left: 48%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 40%, #8a6a4a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-swift-no-plato .inkwell {
  position: absolute; bottom: 26%; left: 42%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-swift-no-plato .quill {
  position: absolute; bottom: 33%; left: 44%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 60%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: snp-quill 6s ease-in-out infinite;
}
.scn-swift-no-plato .shadow-figure {
  position: absolute; bottom: 22%; left: 56%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snp-figure 10s ease-in-out infinite;
}
@keyframes snp-walls { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes snp-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes snp-glow { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes snp-quill { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes snp-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }

.scn-ideals-affect-life {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 60%);
}
.scn-ideals-affect-life .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ia-wall 20s ease-in-out infinite alternate;
}
.scn-ideals-affect-life .fireplace {
  position: absolute; bottom: 25%; left: 10%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5);
}
.scn-ideals-affect-life .fire-glow {
  position: absolute; bottom: 28%; left: 14%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,180,60,0.7) 0%, rgba(255,140,40,0.3) 40%, transparent 100%);
  border-radius: 50%;
  animation: ia-fire 4s ease-in-out infinite alternate;
}
.scn-ideals-affect-life .chair {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
}
.scn-ideals-affect-life .figure-sit {
  position: absolute; bottom: 24%; left: 48%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ia-sit 8s ease-in-out infinite;
}
.scn-ideals-affect-life .lamp {
  position: absolute; bottom: 32%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-ideals-affect-life .lamp::after {
  content: ''; position: absolute; top: -6px; left: -6px; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d8b0 0%, transparent 100%);
  border-radius: 50%;
  animation: ia-lamp 3s ease-in-out infinite alternate;
}
.scn-ideals-affect-life .book-open {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  animation: ia-book 12s ease-in-out infinite;
}
@keyframes ia-wall { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes ia-fire { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes ia-sit { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ia-lamp { 0% { opacity:0.7; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes ia-book { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } }

.scn-ideals-gain-distinctness {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 60%);
}
.scn-ideals-gain-distinctness .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  animation: igd-deep 18s ease-in-out infinite alternate;
}
.scn-ideals-gain-distinctness .column {
  position: absolute; bottom: 10%; left: 15%; width: 30px; height: 160px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-ideals-gain-distinctness .statue {
  position: absolute; bottom: 35%; left: 17%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: igd-statue 20s ease-in-out infinite;
}
.scn-ideals-gain-distinctness .window-arch {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-ideals-gain-distinctness .moonlight {
  position: absolute; top: 5%; left: 52%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,0.3) 0%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  animation: igd-moon 6s ease-in-out infinite alternate;
}
.scn-ideals-gain-distinctness .small-desk {
  position: absolute; bottom: 8%; left: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-ideals-gain-distinctness .scroll {
  position: absolute; bottom: 12%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #a09070 0%, #705a40 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  animation: igd-scroll 15s ease-in-out infinite;
}
@keyframes igd-deep { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes igd-statue { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes igd-moon { 0% { opacity:0.5; transform: scale(0.95) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes igd-scroll { 0%,100% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } }

.scn-ideal-of-past {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-ideal-of-past .wall-panel {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: iop-wall 14s ease-in-out infinite alternate;
}
.scn-ideal-of-past .mantel {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 14%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-ideal-of-past .clock {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: iop-clock 12s ease-in-out infinite;
}
.scn-ideal-of-past .photo-frame {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: iop-frame 18s ease-in-out infinite;
}
.scn-ideal-of-past .rose {
  position: absolute; bottom: 34%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #a05040 0%, #702030 100%);
  border-radius: 50% 50% 40% 40%;
  animation: iop-rose 8s ease-in-out infinite;
}
.scn-ideal-of-past .candle-old {
  position: absolute; bottom: 26%; left: 70%; width: 10px; height: 44px;
  background: linear-gradient(180deg, #d4b890 0%, #8a6a4a 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-ideal-of-past .candle-old-glow {
  position: absolute; bottom: 30%; left: 68%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,120,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: iop-candle 4s ease-in-out infinite alternate;
}
.scn-ideal-of-past .shadow-profile {
  position: absolute; bottom: 18%; left: 8%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iop-profile 20s ease-in-out infinite;
}
@keyframes iop-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes iop-clock { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes iop-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes iop-rose { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes iop-candle { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes iop-profile { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }

/* justice-not-good-for-much */
.scn-justice-not-good-for-much {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a12 0%, #2a2218 40%, #1e1a14 100%);
}
.scn-justice-not-good-for-much .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2418 0%, #1a1610 100%);
  animation: jng-wall 16s ease-in-out infinite alternate;
}
.scn-justice-not-good-for-much .shelf {
  position: absolute; top: 15%; left: 8%; right: 8%; height: 6%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: jng-shelf 12s ease-in-out infinite alternate;
}
.scn-justice-not-good-for-much .book-1,
.scn-justice-not-good-for-much .book-2 {
  position: absolute; bottom: 0; width: 6%; height: 80%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 1px; box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  animation: jng-book 10s ease-in-out infinite alternate;
}
.scn-justice-not-good-for-much .book-1 { left: 10%; }
.scn-justice-not-good-for-much .book-2 { left: 22%; width: 4%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); animation-delay: -2s; }
.scn-justice-not-good-for-much .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a140c 100%);
  border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: jng-desk 20s ease-in-out infinite alternate;
}
.scn-justice-not-good-for-much .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 8%; height: 14%; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.5);
  animation: jng-lamp 4s ease-in-out infinite alternate;
}
.scn-justice-not-good-for-much .figure {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #2a221a 0%, #0e0c08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(2deg);
  animation: jng-figure 6s ease-in-out infinite alternate;
}
@keyframes jng-wall { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes jng-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes jng-book { 0% { transform: skewY(0); } 50% { transform: skewY(-2deg); } 100% { transform: skewY(0); } }
@keyframes jng-desk { 0% { box-shadow: 0 -2px 6px rgba(0,0,0,0.5); } 50% { box-shadow: 0 -2px 12px rgba(0,0,0,0.7); } 100% { box-shadow: 0 -2px 6px rgba(0,0,0,0.5); } }
@keyframes jng-lamp { 0% { box-shadow: 0 0 15px 4px rgba(200,160,60,0.4); transform: translateX(-50%) rotate(-2deg); } 50% { box-shadow: 0 0 30px 10px rgba(220,180,80,0.6); transform: translateX(-50%) rotate(0deg); } 100% { box-shadow: 0 0 20px 6px rgba(200,160,60,0.5); transform: translateX(-50%) rotate(2deg); } }
@keyframes jng-figure { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(-1deg) translateY(0); } }

/* just-man-as-thief */
.scn-just-man-as-thief {
  background:
    radial-gradient(circle at 30% 90%, #1a140c 0%, transparent 50%),
    linear-gradient(180deg, #0e0e0a 0%, #1a1612 30%, #221c14 100%);
}
.scn-just-man-as-thief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-just-man-as-thief .wall-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #221e16 0%, #1a160e 100%);
  animation: jmt-panel 14s ease-in-out infinite alternate;
}
.scn-just-man-as-thief .cabinet {
  position: absolute; bottom: 18%; right: 12%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 2px; box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: jmt-cabinet 8s ease-in-out infinite alternate;
}
.scn-just-man-as-thief .chest {
  position: absolute; bottom: 18%; left: 10%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: jmt-chest 12s ease-in-out infinite alternate;
}
.scn-just-man-as-thief .coin-1,
.scn-just-man-as-thief .coin-2 {
  position: absolute; width: 4%; height: 4%; background: radial-gradient(circle, #c8a840 0%, #8a6820 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: jmt-coin 3s ease-in-out infinite alternate;
}
.scn-just-man-as-thief .coin-1 { bottom: 32%; left: 20%; animation-delay: -1s; }
.scn-just-man-as-thief .coin-2 { bottom: 28%; left: 28%; animation-delay: -2s; width: 3%; height: 3%; }
.scn-just-man-as-thief .hand {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a221a 0%, #16100a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(10deg); transform-origin: bottom left;
  animation: jmt-hand 5s ease-in-out infinite alternate;
}
@keyframes jmt-panel { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes jmt-cabinet { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes jmt-chest { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.7); } 50% { box-shadow: 0 6px 14px rgba(0,0,0,0.9); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.7); } }
@keyframes jmt-coin { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }
@keyframes jmt-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(0); } }

/* homer-on-autolycus */
.scn-homer-on-autolycus {
  background:
    radial-gradient(ellipse at 50% 70%, #2a1a10 0%, transparent 70%),
    linear-gradient(180deg, #120e0a 0%, #1c1610 50%, #261e16 100%);
}
.scn-homer-on-autolycus .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e140c 100%);
  border-radius: 0 0 20% 20%;
  animation: hoa-curtain 20s ease-in-out infinite alternate;
}
.scn-homer-on-autolycus .stage {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2018 0%, #1a120c 100%);
  border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-homer-on-autolycus .mime {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, #2e241c 0%, #120e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-3deg);
  animation: hoa-mime 3s ease-in-out infinite alternate;
}
.scn-homer-on-autolycus .bag {
  position: absolute; bottom: 24%; left: 48%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #5a4428 0%, #3a2a14 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hoa-bag 4s ease-in-out infinite alternate;
}
.scn-homer-on-autolycus .cap {
  position: absolute; bottom: 46%; left: 44%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(8deg);
  animation: hoa-cap 5s ease-in-out infinite alternate;
}
.scn-homer-on-autolycus .mask {
  position: absolute; bottom: 40%; left: 42%; width: 16%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #8a6830 100%);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: hoa-mask 2s ease-in-out infinite alternate;
}
.scn-homer-on-autolycus .spotlight {
  position: absolute; top: 0; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,200,120,0.15) 0%, transparent 70%);
  animation: hoa-spotlight 8s ease-in-out infinite alternate;
}
@keyframes hoa-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hoa-mime { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes hoa-bag { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes hoa-cap { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.05); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes hoa-mask { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hoa-spotlight { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* friends-and-enemies-real */
.scn-friends-and-enemies-real {
  background:
    radial-gradient(ellipse at 60% 50%, #1a1410 0%, transparent 60%),
    linear-gradient(180deg, #0e0c08 0%, #1a1410 40%, #221c16 100%);
}
.scn-friends-and-enemies-real .wall-r {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  animation: fer-wall 18s ease-in-out infinite alternate;
}
.scn-friends-and-enemies-real .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 6px; box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: fer-table 14s ease-in-out infinite alternate;
}
.scn-friends-and-enemies-real .bowl {
  position: absolute; bottom: 26%; left: 50%; width: 12%; height: 10%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, #3a2218 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: fer-bowl 5s ease-in-out infinite alternate;
}
.scn-friends-and-enemies-real .hand-l,
.scn-friends-and-enemies-real .hand-r {
  position: absolute; bottom: 28%; width: 14%; height: 16%;
  background: linear-gradient(180deg, #2a2018 0%, #140e08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: fer-hand 6s ease-in-out infinite alternate;
}
.scn-friends-and-enemies-real .hand-l { left: 30%; transform: rotate(-15deg); animation-delay: -2s; }
.scn-friends-and-enemies-real .hand-r { right: 30%; transform: rotate(15deg); animation-delay: -4s; }
.scn-friends-and-enemies-real .shadow-a,
.scn-friends-and-enemies-real .shadow-b {
  position: absolute; bottom: 8%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: fer-shadow 8s ease-in-out infinite alternate;
}
.scn-friends-and-enemies-real .shadow-a { left: 25%; animation-delay: -1s; }
.scn-friends-and-enemies-real .shadow-b { right: 25%; animation-delay: -3s; }
@keyframes fer-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes fer-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fer-bowl { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fer-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes fer-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* no-such-state-seen */
.scn-no-such-state-seen { background: radial-gradient(ellipse at 50% 60%, #2c1e1a 0%, #1a1210 60%, #0d0808 100%), linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0d0808 100%); }
.scn-no-such-state-seen .bg      { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-no-such-state-seen .wall    { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-bottom: 2px solid #4a3a1a; }
.scn-no-such-state-seen .table   { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-no-such-state-seen .scroll  { position:absolute; bottom:24%; left:35%; width:25%; height:5%; background: linear-gradient(180deg, #c8a86a 0%, #a07840 100%); border-radius: 2px 2px 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(-2deg); }
.scn-no-such-state-seen .candle  { position:absolute; bottom:28%; left:28%; width:6px; height:28px; background: linear-gradient(180deg, #f0d090 0%, #c89850 100%); border-radius: 2px 2px 0 0; }
.scn-no-such-state-seen .glow    { position:absolute; bottom:30%; left:26%; width:16px; height:20px; background: radial-gradient(ellipse, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.3); animation: nss-glow 4s ease-in-out infinite alternate; }
.scn-no-such-state-seen .dust    { position:absolute; inset:0; background: radial-gradient(circle at 20% 80%, rgba(255,220,180,0.05) 0%, transparent 60%); animation: nss-dust 30s linear infinite; }
@keyframes nss-glow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes nss-dust { 0% { background-position: 0% 0%; } 50% { background-position: 50% 100%; } 100% { background-position: 100% 0%; } }

/* world-begins-again */
.scn-world-begins-again { background: radial-gradient(ellipse at 50% 30%, #3a3a20 0%, #1a1a0a 60%, #0a0a00 100%), linear-gradient(180deg, #2a2a10 0%, #1a1a08 100%); }
.scn-world-begins-again .bg          { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.4) 100%); }
.scn-world-begins-again .wall        { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(90deg, #4a3a1a 0%, #6a5a2a 30%, #5a4a1a 70%, #3a2a0a 100%); border-bottom: 2px solid #8a7a3a; }
.scn-world-begins-again .pillar-left { position:absolute; top:5%; left:15%; width:8%; height:70%; background: linear-gradient(90deg, #8a7a4a 0%, #c8b888 30%, #a89868 70%, #7a6a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-world-begins-again .pillar-right{ position:absolute; top:5%; right:15%; width:8%; height:70%; background: linear-gradient(90deg, #8a7a4a 0%, #c8b888 30%, #a89868 70%, #7a6a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-world-begins-again .hieroglyph  { position:absolute; top:15%; left:30%; width:40%; height:12%; background: repeating-linear-gradient(90deg, #c8b888 0px, #c8b888 2px, transparent 2px, transparent 8px); opacity:0.6; animation: wba-hier 15s linear infinite; }
.scn-world-begins-again .light-beam  { position:absolute; top:0; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 70%); animation: wba-beam 10s ease-in-out infinite alternate; }
.scn-world-begins-again .statue      { position:absolute; bottom:8%; left:42%; width:16%; height:40%; background: linear-gradient(90deg, #1a1008 0%, #2a1a0a 50%, #0d0800 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 90%, 0% 100%); }
@keyframes wba-hier { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes wba-beam { 0% { opacity:0.3; transform: translateY(-5px); } 50% { opacity:0.7; transform: translateY(0); } 100% { opacity:0.2; transform: translateY(-10px); } }

/* legends-no-connection */
.scn-legends-no-connection { background: radial-gradient(ellipse at 50% 40%, #1a2a2a 0%, #0a1a1a 60%, #050a0a 100%), linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); }
.scn-legends-no-connection .bg       { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 30%, rgba(0,0,0,0.5) 100%); }
.scn-legends-no-connection .wall     { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-bottom: 2px solid #4a4a4a; }
.scn-legends-no-connection .pedestal { position:absolute; bottom:20%; left:38%; width:24%; height:12%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-legends-no-connection .bust     { position:absolute; bottom:32%; left:42%; width:16%; height:28%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lnc-turn 12s ease-in-out infinite; }
.scn-legends-no-connection .frieze   { position:absolute; top:8%; left:10%; width:80%; height:6%; background: linear-gradient(90deg, #5a4a2a 0%, #8a7a4a 30%, #5a4a2a 60%, #8a7a4a 100%); opacity:0.5; animation: lnc-fade 18s linear infinite; }
.scn-legends-no-connection .lamp     { position:absolute; bottom:18%; left:26%; width:8px; height:14px; background: linear-gradient(180deg, #c89850 0%, #a07830 100%); border-radius: 4px 4px 0 0; }
.scn-legends-no-connection .shadow   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes lnc-turn { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0deg); } }
@keyframes lnc-fade { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* salvation-in-inviolability */
.scn-salvation-in-inviolability { background: radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, #1a0a00 60%, #0a0000 100%), linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-salvation-in-inviolability .bg     { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 40%, rgba(0,0,0,0.7) 100%); }
.scn-salvation-in-inviolability .desk   { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-salvation-in-inviolability .figure{ position:absolute; bottom:25%; left:44%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sii-bow 8s ease-in-out infinite; }
.scn-salvation-in-inviolability .stylus{ position:absolute; bottom:22%; left:60%; width:2px; height:20px; background: #8a7a4a; transform: rotate(30deg); animation: sii-write 4s ease-in-out infinite; }
.scn-salvation-in-inviolability .tablet{ position:absolute; bottom:22%; left:42%; width:15%; height:8%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-salvation-in-inviolability .scroll{ position:absolute; bottom:26%; left:25%; width:18%; height:4%; background: linear-gradient(180deg, #c8a86a 0%, #a07840 100%); border-radius: 2px; transform: rotate(-5deg); }
.scn-salvation-in-inviolability .lamp  { position:absolute; bottom:38%; left:20%; width:10px; height:18px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 4px 4px 0 0; }
.scn-salvation-in-inviolability .glow  { position:absolute; bottom:38%; left:18%; width:24px; height:24px; background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius: 50%; animation: sii-light 3s ease-in-out infinite alternate; }
@keyframes sii-bow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sii-write { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes sii-light { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }

/* most-useful-most-sacred */
.scn-most-useful-most-sacred {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a201a 50%, #1e1814 100%);
}
.scn-most-useful-most-sacred .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: mu-bg 10s ease-in-out infinite alternate;
}
.scn-most-useful-most-sacred .wall-niche {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 140px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e16 0%, #1e1410 100%); border-radius: 20% 20% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-most-useful-most-sacred .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3828 0%, #2e2218 100%); border-radius: 4% 4% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-most-useful-most-sacred .sacred-object {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #c8a060 0%, #a08040 60%, #705030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px #b89050; animation: mu-object 4s ease-in-out infinite alternate;
}
.scn-most-useful-most-sacred .glow {
  position: absolute; bottom: 40%; left: 50%; width: 80px; height: 80px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(200,160,96,0.25) 0%, rgba(200,160,96,0.05) 60%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: mu-glow 6s ease-in-out infinite alternate;
}
.scn-most-useful-most-sacred .dust-a {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px; background: rgba(200,180,140,0.6); border-radius: 50%; filter: blur(1px); animation: mu-dust-a 12s linear infinite;
}
.scn-most-useful-most-sacred .dust-b {
  position: absolute; top: 40%; right: 25%; width: 3px; height: 3px; background: rgba(200,180,140,0.5); border-radius: 50%; filter: blur(1px); animation: mu-dust-b 15s linear infinite reverse;
}
@keyframes mu-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mu-object { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes mu-glow { 0% { opacity:0.6; transform: translate(-50%,-50%) scale(0.95) } 50% { opacity:0.9; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:0.7; transform: translate(-50%,-50%) scale(1) } }
@keyframes mu-dust-a { 0% { transform: translate(0,0) rotate(0deg); opacity:0.4 } 50% { transform: translate(20px,-15px) rotate(180deg); opacity:0.8 } 100% { transform: translate(40px,-30px) rotate(360deg); opacity:0.3 } }
@keyframes mu-dust-b { 0% { transform: translate(0,0) rotate(0deg); opacity:0.3 } 50% { transform: translate(-15px,-25px) rotate(-180deg); opacity:0.7 } 100% { transform: translate(-30px,-50px) rotate(-360deg); opacity:0.2 } }

/* questioning-property */
.scn-questioning-property {
  background:
    radial-gradient(ellipse at 60% 50%, #2e241e 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #221a14 50%, #1c1612 100%);
}
.scn-questioning-property .bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.1) 2px, transparent 4px);
  animation: qp-bg 20s linear infinite;
}
.scn-questioning-property .wall-desk {
  position: absolute; left: 20%; right: 20%; bottom: 0; top: 40%; background: linear-gradient(180deg, #2a2018 0%, #1c1612 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-questioning-property .desk {
  position: absolute; left: 15%; right: 15%; bottom: 0; height: 30%; background: linear-gradient(180deg, #4a3424 0%, #2e2218 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-questioning-property .scroll {
  position: absolute; left: 30%; bottom: 35%; width: 50px; height: 20px; background: linear-gradient(90deg, #b8a080 0%, #d0b090 30%, #b8a080 70%, #907050 100%); border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: qp-scroll 5s ease-in-out infinite alternate;
}
.scn-questioning-property .inkwell {
  position: absolute; left: 48%; bottom: 32%; width: 14px; height: 18px; background: radial-gradient(circle at 50% 30%, #303030 0%, #101010 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-questioning-property .candle {
  position: absolute; left: 58%; bottom: 38%; width: 8px; height: 24px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: qp-candle 2s ease-in-out infinite alternate;
}
.scn-questioning-property .candle::after { content: ''; position: absolute; top: -6px; left: 50%; width: 4px; height: 8px; background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%); transform: translateX(-50%); border-radius: 50%; box-shadow: 0 0 12px 4px #ffb040; animation: qp-flame 1.5s ease-in-out infinite alternate; }
.scn-questioning-property .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(20,40,60,0.8); animation: qp-window 8s ease-in-out infinite alternate;
}
@keyframes qp-bg { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes qp-scroll { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-6deg) translateX(-1px) } }
@keyframes qp-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }
@keyframes qp-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes qp-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }

/* aristotles-distinction */
.scn-aristotles-distinction {
  background:
    radial-gradient(ellipse at 40% 60%, #2a1e16 0%, transparent 70%),
    linear-gradient(180deg, #12100e 0%, #1c1612 50%, #161210 100%);
}
.scn-aristotles-distinction .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 30%, transparent 70%);
  animation: ad-bg 15s ease-in-out infinite alternate;
}
.scn-aristotles-distinction .bookshelf {
  position: absolute; left: 10%; right: 10%; top: 10%; bottom: 50%; background: linear-gradient(180deg, #2e2218 0%, #1a1410 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); display: flex; flex-wrap: wrap; align-content: flex-start; gap: 4px; padding: 8px;
}
.scn-aristotles-distinction .bookshelf::before { content: ''; position: absolute; top: 20%; left: 10%; width: 60%; height: 4px; background: #3a2a1a; }
.scn-aristotles-distinction .bookshelf::after { content: ''; position: absolute; top: 60%; left: 10%; width: 60%; height: 4px; background: #3a2a1a; }
.scn-aristotles-distinction .bust {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ad-bust 6s ease-in-out infinite alternate;
}
.scn-aristotles-distinction .ivy {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a5a3a 0%, #2a3a2a 100%); border-radius: 40% 20% 30% 50%; transform: rotate(20deg); animation: ad-ivy 8s ease-in-out infinite alternate;
}
.scn-aristotles-distinction .candle {
  position: absolute; bottom: 30%; left: 25%; width: 6px; height: 20px; background: linear-gradient(180deg, #e0c8b0 0%, #c0a890 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-aristotles-distinction .candle::after { content: ''; position: absolute; top: -5px; left: 50%; width: 3px; height: 7px; background: radial-gradient(circle, #ffc060 0%, #ff9020 60%, transparent 100%); transform: translateX(-50%); border-radius: 50%; box-shadow: 0 0 10px 3px #ff9020; animation: ad-flame 2s ease-in-out infinite alternate; }
.scn-aristotles-distinction .shadow-layer {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 60%); pointer-events: none; animation: ad-shadow 12s ease-in-out infinite alternate;
}
@keyframes ad-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ad-bust { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes ad-ivy { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(22deg) scale(1.02) } 100% { transform: rotate(18deg) scale(0.98) } }
@keyframes ad-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes ad-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* rate-of-progress */
.scn-rate-of-progress {
  background:
    radial-gradient(ellipse at 30% 60%, #2e241e 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #1e1814 50%, #14100e 100%);
}
.scn-rate-of-progress .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 50%, transparent 100%);
  animation: rp-bg 20s linear infinite;
}
.scn-rate-of-progress .map-surface {
  position: absolute; left: 15%; right: 15%; bottom: 20%; top: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%); border-radius: 2% 2% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-rate-of-progress .globe {
  position: absolute; bottom: 40%; left: 30%; width: 50px; height: 50px; background: radial-gradient(circle at 40% 40%, #6a8a6a 0%, #3a5a3a 60%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: rp-globe 12s linear infinite;
}
.scn-rate-of-progress .ray-a {
  position: absolute; bottom: 45%; left: 25%; width: 2px; height: 60px; background: linear-gradient(180deg, transparent 0%, rgba(200,180,160,0.3) 50%, transparent 100%); transform: rotate(-20deg); transform-origin: bottom; animation: rp-ray-a 8s ease-in-out infinite alternate;
}
.scn-rate-of-progress .ray-b {
  position: absolute; bottom: 45%; left: 35%; width: 2px; height: 50px; background: linear-gradient(180deg, transparent 0%, rgba(200,180,160,0.2) 50%, transparent 100%); transform: rotate(15deg); transform-origin: bottom; animation: rp-ray-b 10s ease-in-out infinite alternate;
}
.scn-rate-of-progress .dash-line {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 2px; background: repeating-linear-gradient(90deg, rgba(200,180,160,0.5) 0px, rgba(200,180,160,0.5) 4px, transparent 4px, transparent 8px); animation: rp-dash 4s linear infinite;
}
@keyframes rp-bg { 0% { background-position: 0% 0% } 100% { background-position: 200% 0% } }
@keyframes rp-globe { 0% { transform: rotate(0deg) 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 rp-ray-a { 0% { opacity:0.2; transform: rotate(-20deg) scaleY(1) } 50% { opacity:0.6; transform: rotate(-15deg) scaleY(1.2) } 100% { opacity:0.3; transform: rotate(-25deg) scaleY(0.9) } }
@keyframes rp-ray-b { 0% { opacity:0.3; transform: rotate(15deg) scaleY(1) } 50% { opacity:0.7; transform: rotate(10deg) scaleY(1.1) } 100% { opacity:0.4; transform: rotate(20deg) scaleY(0.8) } }
@keyframes rp-dash { 0% { background-position: 0% 0% } 100% { background-position: 400% 0% } }

.scn-thrasymachus-definition {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9b382 50%, #8c6239 100%),
    radial-gradient(ellipse at 50% 80%, #c8965e 0%, transparent 70%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.2);
}
.scn-thrasymachus-definition .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c9a67c 100%);
  border-radius: 0 0 20% 20%;
}
.scn-thrasymachus-definition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%);
  border-radius: 10% 10% 0 0;
}
.scn-thrasymachus-definition .window {
  position: absolute; top: 12%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #feeec8 0%, #ffd78c 50%, #fff5e0 100%);
  border: 6px solid #5a3e28;
  border-radius: 6px;
  box-shadow: 0 0 40px 20px rgba(255,215,140,0.3);
}
.scn-thrasymachus-definition .light-beam {
  position: absolute; top: 12%; left: 18%; width: 200px; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: tdef-beam 6s ease-in-out infinite alternate;
}
.scn-thrasymachus-definition .figure-thrasy {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: tdef-thrasy 4s ease-in-out infinite;
}
.scn-thrasymachus-definition .desk {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-thrasymachus-definition .scroll {
  position: absolute; bottom: 38%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #d4b684 0%, #b8975e 50%, #9a7a48 100%);
  border-radius: 4px 4px 30% 30%;
  transform: rotate(12deg);
  animation: tdef-scroll 8s ease-in-out infinite alternate;
}
@keyframes tdef-beam {
  0% { opacity: 0.6; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 0.9; transform: skewX(-8deg) scaleY(1.1); }
  100% { opacity: 0.5; transform: skewX(-12deg) scaleY(0.9); }
}
@keyframes tdef-thrasy {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  75% { transform: translateX(6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tdef-scroll {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(14deg) translateY(1px); }
}

.scn-art-analogy {
  background:
    linear-gradient(180deg, #fefef0 0%, #f0e6d0 50%, #d4c4a0 100%),
    radial-gradient(ellipse at 30% 70%, #f0e6d0 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.05);
}
.scn-art-analogy .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5efe0 0%, #e0d2b8 100%);
  border-radius: 0 0 15% 15%;
}
.scn-art-analogy .studio-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b89a 0%, #a89478 100%);
  border-radius: 8% 8% 0 0;
}
.scn-art-analogy .window-art {
  position: absolute; top: 10%; right: 15%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #b8d8e8 0%, #e0f0ff 50%, #ffffff 100%);
  border: 5px solid #7a6a4a;
  border-radius: 8px;
  box-shadow: 0 0 30px 10px rgba(200,230,255,0.4);
  animation: art-window 12s ease-in-out infinite alternate;
}
.scn-art-analogy .canvas {
  position: absolute; bottom: 35%; left: 40%; width: 90px; height: 110px;
  background: linear-gradient(135deg, #f5f0e8 0%, #e8dcc8 50%, #d4c4a8 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4px;
  transform: rotate(-3deg);
  box-shadow: 4px 6px 12px rgba(0,0,0,0.2);
}
.scn-art-analogy .easel {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
}
.scn-art-analogy .figure-artist {
  position: absolute; bottom: 30%; left: 30%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: art-figure 8s ease-in-out infinite;
}
.scn-art-analogy .palette {
  position: absolute; bottom: 38%; left: 25%; width: 28px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #c8553d 0%, #a0461a 30%, #5e1a1d 60%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: art-palette 10s ease-in-out infinite alternate;
}
@keyframes art-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}
@keyframes art-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(5px) rotate(2deg); }
  66% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes art-palette {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}

.scn-thrasymachus-diversion {
  background:
    linear-gradient(180deg, #ecd8b0 0%, #c9a67c 40%, #8c6239 100%),
    radial-gradient(ellipse at 60% 50%, #d9b382 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.3);
}
.scn-thrasymachus-diversion .interior-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4be9a 0%, #b8976e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-thrasymachus-diversion .interior-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%);
}
.scn-thrasymachus-diversion .lamp {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-thrasymachus-diversion .lamp::after {
  content: ''; position: absolute; top: 0; left: -8px; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffd680 0%, #c8944a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,214,128,0.5);
  animation: tdiv-lampglow 3s ease-in-out infinite alternate;
}
.scn-thrasymachus-diversion .table {
  position: absolute; bottom: 30%; left: 25%; width: 150px; height: 18px;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-thrasymachus-diversion .figure-a {
  position: absolute; bottom: 28%; left: 30%; width: 36px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdiv-figa 3.5s ease-in-out infinite;
}
.scn-thrasymachus-diversion .figure-b {
  position: absolute; bottom: 28%; right: 30%; width: 36px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdiv-figb 4s ease-in-out infinite;
}
.scn-thrasymachus-diversion .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: tdiv-shadow 5s ease-in-out infinite alternate;
}
@keyframes tdiv-lampglow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes tdiv-figa {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(4deg); }
  60% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tdiv-figb {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-8px) rotate(-5deg); }
  80% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tdiv-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.2; transform: scaleX(0.9); }
}

.scn-satire-on-governments {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-satire-on-governments .throne-room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-satire-on-governments .column-left {
  position: absolute; top: 10%; left: 10%; width: 14px; height: 70%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
}
.scn-satire-on-governments .column-right {
  position: absolute; top: 10%; right: 10%; width: 14px; height: 70%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
}
.scn-satire-on-governments .throne {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-satire-on-governments .ruler {
  position: absolute; bottom: 33%; left: 50%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: sat-ruler 8s ease-in-out infinite alternate;
}
.scn-satire-on-governments .candle {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-satire-on-governments .candle::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd680 0%, #c8944a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,214,128,0.6);
  animation: sat-candle 4s ease-in-out infinite alternate;
}
.scn-satire-on-governments .advisor {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sat-advisor 10s ease-in-out infinite;
}
@keyframes sat-ruler {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sat-candle {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes sat-advisor {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(5px) rotate(-2deg); }
  66% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Scene: fear-of-worse-ruler */
.scn-fear-of-worse-ruler {
  background: 
    linear-gradient(180deg, #1c1a24 0%, #2a2436 40%, #3d334a 70%, #2d2538 100%),
    radial-gradient(ellipse at 50% 0%, #5a4a6a 0%, transparent 60%);
}
.scn-fear-of-worse-ruler .wall-back { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2436 0%, #3a304a 100%); }
.scn-fear-of-worse-ruler .wall-left { position:absolute; inset:0 40% 45% 0; background: linear-gradient(90deg, #1e1a2a 0%, #2a2436 50%, transparent 100%); border-right: 2px solid #4a3e5e; }
.scn-fear-of-worse-ruler .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2d2538 0%, #1a1422 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.6); }
.scn-fear-of-worse-ruler .desk { position:absolute; bottom:20%; left:50%; width:140px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-fear-of-worse-ruler .chair { position:absolute; bottom:12%; left:50%; width:60px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 20% 20% 10% 10%; }
.scn-fear-of-worse-ruler .shadow-ruler { position:absolute; bottom:28%; left:50%; width:50px; height:80px; transform:translateX(-50%) scaleX(0.6); background: radial-gradient(ellipse, rgba(10,10,20,0.8) 0%, transparent 70%); opacity:0.5; animation: fwr-shadows 6s ease-in-out infinite alternate; }
.scn-fear-of-worse-ruler .candle { position:absolute; bottom:42%; left:62%; width:8px; height:18px; background: linear-gradient(180deg, #e8d0a0 0%, #b89860 100%); border-radius: 50%; animation: fwr-flicker 2s ease-in-out infinite; }
.scn-fear-of-worse-ruler .glow-candle { position:absolute; bottom:40%; left:62%; width:40px; height:40px; transform:translate(-50%,0); background: radial-gradient(circle, #ffd080 0%, #b07830 30%, transparent 60%); mix-blend-mode: screen; opacity:0.7; animation: fwr-glow 3s ease-in-out infinite alternate; }
@keyframes fwr-shadows { 0% { opacity:0.4; transform:translateX(-50%) scaleX(0.5); } 50% { opacity:0.7; transform:translateX(-50%) scaleX(0.65) translateY(-2px); } 100% { opacity:0.4; transform:translateX(-50%) scaleX(0.5); } }
@keyframes fwr-flicker { 0% { opacity:0.8; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.05); } 50% { opacity:0.9; transform: scaleY(0.95); } 75% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(1); } }
@keyframes fwr-glow { 0% { opacity:0.5; transform: scale(0.8); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }

/* Scene: city-of-good-men */
.scn-city-of-good-men {
  background: 
    linear-gradient(180deg, #1e2a30 0%, #2a3a40 50%, #3a4e56 100%),
    radial-gradient(ellipse at 50% 100%, #4a5e66 0%, transparent 70%);
}
.scn-city-of-good-men .bg-city { position:absolute; inset:0; background: linear-gradient(180deg, #2a3a40 0%, #3a4e56 50%, #1e2a30 100%); }
.scn-city-of-good-men .window-frame { position:absolute; inset:5% 10% 25% 10%; border: 6px solid #3a2e24; border-radius: 8px; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-city-of-good-men .city-skyline { position:absolute; bottom:30%; left:12%; right:12%; height:25%; background: linear-gradient(180deg, #2d3a3a 0%, #1a2626 70%, #0e1616 100%); clip-path: polygon(0% 100%, 0% 50%, 8% 50%, 8% 30%, 15% 30%, 15% 50%, 22% 50%, 22% 40%, 30% 40%, 30% 55%, 38% 55%, 38% 35%, 45% 35%, 45% 50%, 55% 50%, 55% 45%, 62% 45%, 62% 35%, 70% 35%, 70% 50%, 78% 50%, 78% 40%, 85% 40%, 85% 50%, 92% 50%, 92% 30%, 100% 30%, 100% 100%); border-radius: 2px; animation: cgm-skyline 20s ease-in-out infinite alternate; }
.scn-city-of-good-men .council-table { position:absolute; bottom:15%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #4a3e32 0%, #2a1e16 100%); border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%; }
.scn-city-of-good-men .councilor-left { position:absolute; bottom:28%; left:25%; width:30px; height:45px; background: linear-gradient(180deg, #3a3a2e 0%, #1e1e16 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cgm-speak 8s ease-in-out infinite; }
.scn-city-of-good-men .councilor-right { position:absolute; bottom:28%; right:25%; width:30px; height:45px; background: linear-gradient(180deg, #3a3a2e 0%, #1e1e16 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cgm-speak 8s ease-in-out infinite reverse; }
.scn-city-of-good-men .lamp { position:absolute; bottom:48%; left:48%; width:12px; height:20px; background: radial-gradient(circle, #c09850 0%, #603818 100%); border-radius: 30%; box-shadow: 0 0 20px 4px #b08040; animation: cgm-glow 4s ease-in-out infinite alternate; }
.scn-city-of-good-men .shadow-council { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); }
@keyframes cgm-skyline { 0% { opacity:0.8; filter: drop-shadow(0 0 5px #2a3a40); } 50% { opacity:0.9; filter: drop-shadow(0 0 10px #3a4e56); } 100% { opacity:0.7; filter: drop-shadow(0 0 5px #2a3a40); } }
@keyframes cgm-speak { 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 cgm-glow { 0% { box-shadow: 0 0 15px 3px #b08040; opacity:0.8; } 100% { box-shadow: 0 0 25px 6px #d0a050; opacity:1; } }

/* Scene: which-life-better */
.scn-which-life-better {
  background: 
    linear-gradient(180deg, #1a1e2a 0%, #2a3040 50%, #3a4060 100%),
    radial-gradient(ellipse at 50% 40%, #4a5880 0%, transparent 70%);
}
.scn-which-life-better .bg-balance { position:absolute; inset:0; background: linear-gradient(180deg, #2a3040 0%, #1a1e2a 100%); }
.scn-which-life-better .scale-beam { position:absolute; bottom:55%; left:20%; right:20%; height:4px; background: linear-gradient(90deg, #807060 0%, #b0a090 50%, #807060 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: wlb-beam 6s ease-in-out infinite alternate; }
.scn-which-life-better .scale-left { position:absolute; bottom:50%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #a09080 0%, #706050 100%); border-radius: 10% 10% 30% 30%; transform-origin: top center; animation: wlb-leftpan 6s ease-in-out infinite alternate; }
.scn-which-life-better .scale-right { position:absolute; bottom:50%; right:20%; width:40px; height:30px; background: linear-gradient(180deg, #a09080 0%, #706050 100%); border-radius: 10% 10% 30% 30%; transform-origin: top center; animation: wlb-rightpan 6s ease-in-out infinite alternate; }
.scn-which-life-better .weight-just { position:absolute; bottom:42%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #d0c0a0 0%, #a09070 100%); border-radius: 50%; transform: translateX(10px); animation: wlb-just 6s ease-in-out infinite alternate; }
.scn-which-life-better .weight-unjust { position:absolute; bottom:42%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #806050 0%, #503020 100%); border-radius: 50%; transform: translateX(-10px); animation: wlb-unjust 6s ease-in-out infinite alternate; }
.scn-which-life-better .pendulum { position:absolute; top:5%; left:49.5%; width:2px; height:55%; background: #a09080; transform-origin: top center; border-radius: 1px; animation: wlb-swing 8s ease-in-out infinite alternate; }
.scn-which-life-better .glow-neon { position:absolute; bottom:50%; left:50%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%); mix-blend-mode: screen; animation: wlb-pulse 4s ease-in-out infinite alternate; }
@keyframes wlb-beam { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes wlb-leftpan { 0% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes wlb-rightpan { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes wlb-just { 0% { opacity:0.8; transform: translateX(10px) scale(1); } 50% { opacity:1; transform: translateX(10px) scale(1.1); } 100% { opacity:0.8; transform: translateX(10px) scale(1); } }
@keyframes wlb-unjust { 0% { opacity:0.8; transform: translateX(-10px) scale(1); } 50% { opacity:1; transform: translateX(-10px) scale(1.1); } 100% { opacity:0.8; transform: translateX(-10px) scale(1); } }
@keyframes wlb-swing { 0% { transform: rotate(-15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }
@keyframes wlb-pulse { 0% { opacity:0.3; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity:0.6; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity:0.3; transform: translate(-50%, -50%) scale(0.8); } }

/* Scene: method-of-argument */
.scn-method-of-argument {
  background: 
    linear-gradient(180deg, #1a1a22 0%, #2a2a3a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-method-of-argument .bg-argument { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-method-of-argument .speaker-left { position:absolute; bottom:30%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #3a3a46 0%, #1e1e2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; animation: moa-speak-left 6s ease-in-out infinite; }
.scn-method-of-argument .speaker-right { position:absolute; bottom:30%; right:15%; width:40px; height:60px; background: linear-gradient(180deg, #3a3a46 0%, #1e1e2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; animation: moa-speak-right 6s ease-in-out infinite; }
.scn-method-of-argument .scroll-left { position:absolute; bottom:35%; left:22%; width:60px; height:12px; background: linear-gradient(90deg, #c0a078 0%, #a08058 50%, #c0a078 100%); border-radius: 6px; animation: moa-unroll 10s ease-in-out infinite; transform-origin: left center; }
.scn-method-of-argument .scroll-right { position:absolute; bottom:35%; right:22%; width:60px; height:12px; background: linear-gradient(90deg, #c0a078 0%, #a08058 50%, #c0a078 100%); border-radius: 6px; animation: moa-unroll 10s ease-in-out infinite reverse; transform-origin: right center; }
.scn-method-of-argument .table-argument { position:absolute; bottom:18%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-method-of-argument .inkwell { position:absolute; bottom:32%; left:48%; width:16px; height:20px; background: radial-gradient(ellipse, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; box-shadow: inset 0 2px 4px #0a0a12; }
.scn-method-of-argument .quill { position:absolute; bottom:38%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px 2px 50% 50%; transform: translateX(-2px) rotate(15deg); animation: moa-write 4s ease-in-out infinite; }
@keyframes moa-speak-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes moa-speak-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-3deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes moa-unroll { 0% { transform: scaleX(0.2); opacity:0.7; } 50% { transform: scaleX(1); opacity:1; } 100% { transform: scaleX(0.2); opacity:0.7; } }
@keyframes moa-write { 0% { transform: translateX(-2px) rotate(15deg) translateY(0); } 25% { transform: translateX(-2px) rotate(15deg) translateY(-2px); } 50% { transform: translateX(-2px) rotate(15deg) translateY(0); } 75% { transform: translateX(-2px) rotate(15deg) translateY(-2px); } 100% { transform: translateX(-2px) rotate(15deg) translateY(0); } }

.scn-apology-to-poetry {
  background: linear-gradient(135deg, #2a1f1a 0%, #1c1614 40%, #38261e 80%), radial-gradient(ellipse at 50% 30%, #4a3224 0%, transparent 70%);
}
.scn-apology-to-poetry .ap-floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(0deg, #1f1410 0%, #2a1a14 100%); }
.scn-apology-to-poetry .ap-wall { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #3a2820 0%, #2a1a14 100%); }
.scn-apology-to-poetry .ap-candle { position:absolute; bottom:30%; left:42%; width:6px; height:28px; background: linear-gradient(0deg, #8a6a3a 0%, #c8a060 100%); border-radius: 3px; transform-origin: bottom; animation: ap-candle 6s ease-in-out infinite; }
.scn-apology-to-poetry .ap-glow { position:absolute; bottom:32%; left:41%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,210,140,0.6) 0%, transparent 70%); filter: blur(8px); animation: ap-glow 4s ease-in-out infinite alternate; }
.scn-apology-to-poetry .ap-table { position:absolute; bottom:18%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #3a2618 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-apology-to-poetry .ap-scroll { position:absolute; bottom:24%; left:48%; width:24px; height:18px; background: #d4b88a; border-radius: 4px; transform: rotate(-5deg); animation: ap-scroll 9s ease-in-out infinite; }
.scn-apology-to-poetry .ap-figure { position:absolute; bottom:24%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 8s ease-in-out infinite alternate; }
.scn-apology-to-poetry .ap-shadow { position:absolute; bottom:18%; left:28%; width:80px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(6px); animation: ap-shadow 12s ease-in-out infinite alternate; }
@keyframes ap-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.92); } }
@keyframes ap-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1.1); } }
@keyframes ap-scroll { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes ap-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ap-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(0.9); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-rewards-of-virtue {
  background: linear-gradient(180deg, #2c2018 0%, #3d2a1e 40%, #2a1c14 100%), radial-gradient(ellipse at 50% 40%, #4a2e1c 0%, transparent 60%);
}
.scn-rewards-of-virtue .rv-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e16 0%, #1a0e0a 100%); }
.scn-rewards-of-virtue .rv-throne { position:absolute; bottom:20%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3224 0%, #2a1a10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
.scn-rewards-of-virtue .rv-figure { position:absolute; bottom:30%; left:50%; width:22px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rv-figure 7s ease-in-out infinite alternate; }
.scn-rewards-of-virtue .rv-halo { position:absolute; bottom:52%; left:50%; width:34px; height:34px; transform:translateX(-50%); background: radial-gradient(circle, #f0d080 0%, #c8a050 60%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: rv-halo 5s ease-in-out infinite alternate; }
.scn-rewards-of-virtue .rv-wreath { position:absolute; bottom:38%; left:48%; width:30px; height:18px; background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: rv-wreath 10s ease-in-out infinite; }
.scn-rewards-of-virtue .rv-lightbeam { position:absolute; top:5%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%); transform: rotate(-8deg); animation: rv-beam 9s ease-in-out infinite alternate; }
.scn-rewards-of-virtue .rv-pedestal { position:absolute; bottom:10%; left:35%; right:35%; height:6%; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%); border-radius: 4px; }
@keyframes rv-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); } }
@keyframes rv-halo { 0% { transform: translateX(-50%) scale(1); opacity: 0.7; } 50% { transform: translateX(-50%) scale(1.15); opacity: 0.95; } 100% { transform: translateX(-50%) scale(1.05); opacity: 0.8; } }
@keyframes rv-wreath { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes rv-beam { 0% { opacity: 0.3; transform: rotate(-8deg); } 50% { opacity: 0.6; transform: rotate(-6deg); } 100% { opacity: 0.4; transform: rotate(-10deg); } }

.scn-proof-of-immortality {
  background: linear-gradient(180deg, #141a24 0%, #1a2240 40%, #0e1420 100%), radial-gradient(ellipse at 70% 50%, #2a3a5a 0%, transparent 60%);
}
.scn-proof-of-immortality .pi-bg { position:absolute; inset:0; background: linear-gradient(180deg, #121826 0%, #0a0e18 100%); }
.scn-proof-of-immortality .pi-window { position:absolute; top:12%; left:25%; width:35%; height:50%; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-proof-of-immortality .pi-moonlight { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(180,200,240,0.2) 0%, transparent 60%); transform: rotate(15deg); animation: pi-moon 12s ease-in-out infinite alternate; }
.scn-proof-of-immortality .pi-figure { position:absolute; bottom:18%; left:35%; width:24px; height:70px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pi-figure 10s ease-in-out infinite alternate; }
.scn-proof-of-immortality .pi-soul { position:absolute; bottom:45%; left:42%; width:14px; height:14px; background: radial-gradient(circle, #b0c8e8 0%, #7088b0 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(180,200,240,0.5); animation: pi-soul 6s ease-in-out infinite; }
.scn-proof-of-immortality .pi-darkness { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #0a0e18 0%, transparent 90%); animation: pi-dark 15s ease-in-out infinite alternate; }
@keyframes pi-moon { 0% { opacity: 0.2; transform: rotate(15deg); } 50% { opacity: 0.4; transform: rotate(12deg); } 100% { opacity: 0.25; transform: rotate(18deg); } }
@keyframes pi-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes pi-soul { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-6px) scale(1.2); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes pi-dark { 0% { opacity: 0.7; } 50% { opacity: 0.5; } 100% { opacity: 0.8; } }

.scn-rewards-in-life {
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 40%, #c0a88c 100%), radial-gradient(ellipse at 50% 0%, #f0e4cc 0%, transparent 60%);
}
.scn-rewards-in-life .rl-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #d4c0a8 100%); }
.scn-rewards-in-life .rl-window { position:absolute; top:8%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #f0e6cc 0%, #c8b888 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); }
.scn-rewards-in-life .rl-sunbeam { position:absolute; top:5%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, rgba(255,240,180,0.5) 0%, transparent 100%); transform: rotate(-12deg); animation: rl-beam 8s ease-in-out infinite alternate; }
.scn-rewards-in-life .rl-figure { position:absolute; bottom:20%; left:40%; width:24px; height:64px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rl-figure 7s ease-in-out infinite alternate; }
.scn-rewards-in-life .rl-ring { position:absolute; bottom:30%; left:45%; width:14px; height:14px; background: radial-gradient(circle, #f0d080 0%, #c8a040 100%); border-radius: 50%; box-shadow: 0 0 12px 2px rgba(240,208,128,0.7); animation: rl-ring 6s ease-in-out infinite; }
.scn-rewards-in-life .rl-crown { position:absolute; bottom:50%; left:35%; width:30px; height:20px; background: linear-gradient(135deg, #d4b060 0%, #b89030 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); animation: rl-crown 10s ease-in-out infinite; }
.scn-rewards-in-life .rl-pillow { position:absolute; bottom:10%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #c8a888 0%, #a88868 100%); border-radius: 20%; }
@keyframes rl-beam { 0% { opacity: 0.4; transform: rotate(-12deg); } 50% { opacity: 0.7; transform: rotate(-8deg); } 100% { opacity: 0.5; transform: rotate(-15deg); } }
@keyframes rl-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes rl-ring { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes rl-crown { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } }

.scn-plato-on-perfection {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 70%);
}
.scn-plato-on-perfection .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); }
.scn-plato-on-perfection .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-plato-on-perfection .desk { position:absolute; bottom:18%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4% 4% 8% 8% / 6% 6% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-plato-on-perfection .scroll { position:absolute; bottom:24%; left:48%; width:60px; height:16px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:30% 30% 40% 40% / 50% 50% 60% 60%; transform:rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: scroll-unroll 6s ease-in-out infinite alternate; }
.scn-plato-on-perfection .lamp { position:absolute; bottom:35%; left:58%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #ffa060; }
.scn-plato-on-perfection .figure-seated { position:absolute; bottom:20%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(1px); animation: seated-think 5s ease-in-out infinite; }
.scn-plato-on-perfection .glow { position:absolute; bottom:30%; left:55%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, transparent 70%); border-radius:50%; animation: lamp-glow 3s ease-in-out infinite alternate; }
@keyframes scroll-unroll { 0% { transform:rotate(-8deg) scaleY(1); } 50% { transform:rotate(-6deg) scaleY(1.05); } 100% { transform:rotate(-10deg) scaleY(0.95); } }
@keyframes seated-think { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lamp-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(0.95); } }

.scn-statesman-and-republic {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 70%, #3a3a3a 0%, transparent 60%);
}
.scn-statesman-and-republic .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-statesman-and-republic .bg-mid { position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:10%; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-statesman-and-republic .book { position:absolute; bottom:25%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 50%, #3a2a0a 100%); border-radius:4% 4% 8% 8% / 10% 10% 12% 12%; box-shadow: 0 6px 12px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,200,150,0.1); animation: book-breathe 8s ease-in-out infinite; }
.scn-statesman-and-republic .hand-left { position:absolute; bottom:30%; left:38%; width:30px; height:40px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform:rotate(15deg); animation: hand-motion 5s ease-in-out infinite alternate; }
.scn-statesman-and-republic .hand-right { position:absolute; bottom:32%; left:62%; width:30px; height:36px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 50% 40% 40%; transform:rotate(-15deg); animation: hand-motion 5s ease-in-out infinite alternate-reverse; }
.scn-statesman-and-republic .candle { position:absolute; bottom:35%; left:20%; width:12px; height:50px; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); }
.scn-statesman-and-republic .flame-glow { position:absolute; bottom:45%; left:20%; width:24px; height:40px; background: radial-gradient(circle, rgba(255,200,80,0.8) 0%, rgba(255,150,50,0.4) 40%, transparent 80%); border-radius:50%; filter: blur(2px); animation: candle-flicker 2s ease-in-out infinite; }
@keyframes book-breathe { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes hand-motion { 0% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(10deg) translateX(3px); } 100% { transform:rotate(20deg) translateX(-2px); } }
@keyframes candle-flicker { 0% { opacity:.9; transform:scale(1) rotate(0deg); } 25% { opacity:1; transform:scale(1.05) rotate(2deg); } 50% { opacity:.8; transform:scale(0.95) rotate(-1deg); } 75% { opacity:.95; transform:scale(1.02) rotate(1deg); } 100% { opacity:.85; transform:scale(1) rotate(0deg); } }

.scn-rule-of-law-vs-person {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-rule-of-law-vs-person .bg-top { position:absolute; bottom:60%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-rule-of-law-vs-person .bg-bottom { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-rule-of-law-vs-person .column { position:absolute; bottom:30%; left:50%; width:30px; height:250px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 50%, #2a2a1a 100%); border-radius:10% 10% 4% 4% / 30% 30% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,200,0.1); animation: column-pulse 10s ease-in-out infinite; }
.scn-rule-of-law-vs-person .scale-left { position:absolute; bottom:48%; left:38%; width:40px; height:40px; background: linear-gradient(135deg, #8a8a6a 0%, #6a6a4a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(25deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: scale-tilt 6s ease-in-out infinite alternate; }
.scn-rule-of-law-vs-person .scale-right { position:absolute; bottom:48%; left:62%; width:40px; height:40px; background: linear-gradient(135deg, #8a8a6a 0%, #6a6a4a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform:rotate(-25deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: scale-tilt 6s ease-in-out infinite alternate-reverse; }
.scn-rule-of-law-vs-person .figure-small { position:absolute; bottom:22%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 50% 50% / 60% 60% 40% 40%; animation: figure-gesture 4s ease-in-out infinite; }
@keyframes column-pulse { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.005); } }
@keyframes scale-tilt { 0% { transform:rotate(25deg) translateY(0); } 50% { transform:rotate(30deg) translateY(-2px); } 100% { transform:rotate(20deg) translateY(2px); } }
@keyframes figure-gesture { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 30% { transform:translateX(-50%) translateY(-3px) rotate(-2deg); } 60% { transform:translateX(-50%) translateY(0) rotate(2deg); } 100% { transform:translateX(-50%) translateY(-1px) rotate(0deg); } }

.scn-no-answer {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-no-answer .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-no-answer .window { position:absolute; top:15%; left:50%; width:140px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius:4% 4% 8% 8% / 6% 6% 10% 10%; box-shadow: inset 0 0 20px rgba(100,150,200,0.3), 0 0 40px rgba(100,150,200,0.1); animation: window-light 12s ease-in-out infinite alternate; }
.scn-no-answer .light-beam { position:absolute; top:50%; left:50%; width:200px; height:300px; transform:translate(-50%, -50%); background: linear-gradient(180deg, rgba(150,200,255,0.2) 0%, transparent 100%); clip-path: polygon(35% 0, 65% 0, 65% 100%, 35% 100%); animation: beam-sway 8s ease-in-out infinite alternate; }
.scn-no-answer .figure-silhouette { position:absolute; bottom:20%; left:50%; width:40px; height:90px; transform:translateX(-50%); background: #0a0a12; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: figure-tilt 6s ease-in-out infinite; }
.scn-no-answer .curtain-left { position:absolute; top:10%; left:15%; width:40px; height:180%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); transform:rotate(8deg); transform-origin: top left; border-radius:0 0 30% 30% / 0 0 40% 40%; animation: curtain-drift 9s ease-in-out infinite alternate; }
.scn-no-answer .curtain-right { position:absolute; top:10%; right:15%; width:40px; height:180%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); transform:rotate(-8deg); transform-origin: top right; border-radius:0 0 30% 30% / 0 0 40% 40%; animation: curtain-drift 9s ease-in-out infinite alternate-reverse; }
.scn-no-answer .pot-plant { position:absolute; bottom:5%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40% / 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: plant-sway 11s ease-in-out infinite; }
@keyframes window-light { 0% { opacity:.8; box-shadow: inset 0 0 20px rgba(100,150,200,0.3), 0 0 30px rgba(100,150,200,0.1); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(120,170,220,0.5), 0 0 50px rgba(120,170,220,0.2); } 100% { opacity:.9; box-shadow: inset 0 0 15px rgba(80,130,180,0.3), 0 0 25px rgba(80,130,180,0.1); } }
@keyframes beam-sway { 0% { transform:translate(-50%, -50%) rotate(-2deg); } 50% { transform:translate(-50%, -50%) rotate(0deg) scaleX(1.02); } 100% { transform:translate(-50%, -50%) rotate(2deg); } }
@keyframes figure-tilt { 0% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-50%) rotate(1deg); } 60% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes curtain-drift { 0% { transform:rotate(8deg) scaleY(1); } 50% { transform:rotate(10deg) scaleY(1.02); } 100% { transform:rotate(6deg) scaleY(0.98); } }
@keyframes plant-sway { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }

.scn-request-to-answer { background: linear-gradient(180deg, #2b1e14 0%, #1f140e 40%, #120b08 100%), radial-gradient(ellipse at 30% 60%, #4a2e1e 0%, transparent 60%); }
.scn-request-to-answer .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #3d2a1a 0%, #2e1e12 50%, #3d2a1a 100%); opacity:.8; }
.scn-request-to-answer .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a100a 0%, #2a1a10 100%); border-top:2px solid #4a321a; }
.scn-request-to-answer .pillar-l { position:absolute; bottom:20%; left:10%; width:12px; height:70%; background: linear-gradient(90deg, #5a4030 0%, #3a2a1a 50%, #5a4030 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: rqa-pillar 12s ease-in-out infinite; }
.scn-request-to-answer .pillar-r { position:absolute; bottom:20%; right:15%; width:14px; height:65%; background: linear-gradient(90deg, #4a3525 0%, #2e1e12 50%, #4a3525 100%); border-radius:4px; animation: rqa-pillar 12s ease-in-out infinite reverse; }
.scn-request-to-answer .lamp-glow { position:absolute; bottom:45%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,180,80,.6) 0%, rgba(255,140,40,.2) 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: rqa-lamp 3s ease-in-out infinite alternate; }
.scn-request-to-answer .figure-sitting { position:absolute; bottom:30%; left:30%; width:34px; height:48px; background:radial-gradient(ellipse at 50% 0%, #1c1612 30%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rqa-sit 6s ease-in-out infinite; }
.scn-request-to-answer .figure-standing { position:absolute; bottom:25%; left:65%; width:28px; height:60px; background:linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rqa-stand 8s ease-in-out infinite; }
.scn-request-to-answer .shadow-pool { position:absolute; bottom:18%; left:20%; width:120px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%); filter:blur(4px); animation: rqa-shadow 6s ease-in-out infinite; }
@keyframes rqa-pillar { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rqa-lamp { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes rqa-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rqa-stand { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes rqa-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }

.scn-socrates-on-learning { background: linear-gradient(180deg, #2a1e12 0%, #1f140a 40%, #140c06 100%), radial-gradient(ellipse at 50% 80%, #3a2214 0%, transparent 60%); }
.scn-socrates-on-learning .alcove-back { position:absolute; inset:10% 20% 30% 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-socrates-on-learning .lamp { position:absolute; bottom:40%; left:35%; width:20px; height:25px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(176,112,48,.4); animation: sol-lamp 4s ease-in-out infinite alternate; }
.scn-socrates-on-learning .desk { position:absolute; bottom:28%; left:25%; width:50%; height:10px; background: linear-gradient(90deg, #4a3020 0%, #6a4a30 50%, #4a3020 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-socrates-on-learning .scroll { position:absolute; bottom:30%; left:38%; width:40px; height:8px; background: #8a6a48; border-radius:4px; transform: rotate(-5deg); animation: sol-scroll 10s ease-in-out infinite; }
.scn-socrates-on-learning .socrates-silhouette { position:absolute; bottom:22%; left:30%; width:30px; height:62px; background: radial-gradient(ellipse 70% 100% at 50% 0%, #1a1410 30%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sol-talk 6s ease-in-out infinite; }
.scn-socrates-on-learning .socrates-silhouette::after { content:''; position:absolute; bottom:40%; left:50%; width:40px; height:4px; background:#0e0a08; border-radius:4px; transform:translateX(-50%) rotate(-10deg); }
.scn-socrates-on-learning .listener { position:absolute; bottom:25%; right:30%; width:28px; height:50px; background: radial-gradient(ellipse 70% 100% at 50% 0%, #1c1814 30%, #100c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sol-listen 6s ease-in-out infinite reverse; }
@keyframes sol-lamp { 0% { transform: scaleY(.95); opacity:.8 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(.98); opacity:.85 } }
@keyframes sol-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sol-talk { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes sol-listen { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-socrates-questions { background: linear-gradient(180deg, #1f140c 0%, #140a06 40%, #0a0604 100%), radial-gradient(ellipse at 40% 50%, #2a1a0e 0%, transparent 70%); }
.scn-socrates-questions .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a10 0%, #1a0e08 50%, #241610 100%); opacity:.9; }
.scn-socrates-questions .chair-left { position:absolute; bottom:20%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius:10% 10% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,.6); animation: sq-chair 8s ease-in-out infinite; }
.scn-socrates-questions .chair-right { position:absolute; bottom:22%; right:10%; width:28px; height:38px; background: linear-gradient(180deg, #3a2212 0%, #1a0e08 100%); border-radius:10% 10% 30% 30%; animation: sq-chair 8s ease-in-out infinite reverse; }
.scn-socrates-questions .arm-socrates { position:absolute; bottom:30%; left:20%; width:40px; height:6px; background: #1a1410; border-radius:4px; transform: rotate(-20deg); transform-origin:left center; animation: sq-arm-s 5s ease-in-out infinite; }
.scn-socrates-questions .arm-thrasymachus { position:absolute; bottom:32%; right:20%; width:35px; height:5px; background: #1a1410; border-radius:4px; transform: rotate(15deg); transform-origin:right center; animation: sq-arm-t 5s ease-in-out infinite; }
.scn-socrates-questions .face-profile { position:absolute; bottom:35%; left:35%; width:20px; height:22px; background: radial-gradient(ellipse 60% 90% at 30% 50%, #1c1410 30%, #0e0a08 100%); border-radius:50% 50% 40% 40%; transform: rotate(5deg); animation: sq-face 4s ease-in-out infinite alternate; }
@keyframes sq-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sq-arm-s { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-20deg) } }
@keyframes sq-arm-t { 0% { transform: rotate(15deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(15deg) } }
@keyframes sq-face { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(2px) } 100% { transform: rotate(5deg) translateX(0) } }

.scn-clarification { background: linear-gradient(180deg, #1c1008 0%, #120a04 40%, #080400 100%), radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 60%); }
.scn-clarification .dark-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0604 0%, #140c08 50%, #0a0604 100%); opacity:.8; animation: clr-bg 6s ease-in-out infinite alternate; }
.scn-clarification .table { position:absolute; bottom:20%; left:20%; width:60%; height:8px; background: linear-gradient(90deg, #3a2212 0%, #5a3828 50%, #3a2212 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.8); }
.scn-clarification .hand-1 { position:absolute; bottom:28%; left:30%; width:12px; height:25px; background: #1a1410; border-radius: 40% 40% 30% 30%; transform: rotate(-30deg); transform-origin:bottom left; animation: clr-hand1 3s ease-in-out infinite; }
.scn-clarification .hand-2 { position:absolute; bottom:28%; right:30%; width:12px; height:25px; background: #1a1410; border-radius: 40% 40% 30% 30%; transform: rotate(30deg); transform-origin:bottom right; animation: clr-hand2 3s ease-in-out infinite; }
.scn-clarification .fist { position:absolute; bottom:30%; left:50%; width:14px; height:16px; background: #1a1410; border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:translateX(-50%); animation: clr-fist 2s ease-in-out infinite alternate; }
.scn-clarification .shadow-stripe { position:absolute; inset:10% 0 0 0; height:2px; background: rgba(0,0,0,.5); filter:blur(4px); animation: clr-stripe 5s ease-in-out infinite; }
.scn-clarification .dust { position:absolute; bottom:40%; left:20%; width:6px; height:6px; background: rgba(200,160,120,.3); border-radius:50%; filter:blur(2px); animation: clr-dust 12s linear infinite; }
.scn-clarification .dust-2 { position:absolute; bottom:50%; right:30%; width:4px; height:4px; background: rgba(200,160,120,.25); border-radius:50%; filter:blur(2px); animation: clr-dust 15s linear infinite reverse; }
@keyframes clr-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes clr-hand1 { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }
@keyframes clr-hand2 { 0% { transform: rotate(30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(30deg) } }
@keyframes clr-fist { 0% { transform:translateX(-50%) scale(1) } 100% { transform:translateX(-50%) scale(1.05) } }
@keyframes clr-stripe { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes clr-dust { 0% { transform: translate(0, 0) } 25% { transform: translate(20px, -10px) } 50% { transform: translate(10px, -20px) } 75% { transform: translate(-10px, -10px) } 100% { transform: translate(0, 0) } }

.scn-harmonics {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background: 
    linear-gradient(180deg, #1e1e3a 0%, #2a2a50 40%, #3a2a5a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a6e 0%, transparent 70%);
}
.scn-harmonics .string-main {
  position: absolute; top: 50%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #c8a060 20%, #c8a060 80%, transparent);
  transform: translateY(-50%);
  animation: hm-string-vib 2.5s ease-in-out infinite;
}
.scn-harmonics .string-harmonic {
  position: absolute; top: 50%; left: 30%; right: 30%; height: 1px;
  background: linear-gradient(90deg, transparent, #e0b070 30%, #e0b070 70%, transparent);
  transform: translateY(-50%);
  animation: hm-harmonic 3.2s ease-in-out infinite alternate;
}
.scn-harmonics .bridge {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-harmonics .base {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-harmonics .glow-dot {
  position: absolute; top: 48%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080, #c89040);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 20px 6px rgba(200,144,64,0.6);
  animation: hm-glow-pulse 3s ease-in-out infinite;
}
.scn-harmonics .particle-a {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,160,96,0.5);
  border-radius: 50%;
  animation: hm-drift-a 12s linear infinite;
}
.scn-harmonics .particle-b {
  position: absolute; top: 60%; left: 70%; width: 3px; height: 3px;
  background: rgba(220,176,112,0.4);
  border-radius: 50%;
  animation: hm-drift-b 18s linear infinite reverse;
}
@keyframes hm-string-vib { 0%,100% { transform: translateY(-50%) scaleY(1); } 25% { transform: translateY(-50%) scaleY(0.8); } 50% { transform: translateY(-50%) scaleY(1.2); } 75% { transform: translateY(-50%) scaleY(0.9); } }
@keyframes hm-harmonic { 0% { opacity: 0.3; transform: translateY(-50%) scaleX(0.9); } 50% { opacity: 1; transform: translateY(-50%) scaleX(1.1); } 100% { opacity: 0.5; transform: translateY(-50%) scaleX(0.95); } }
@keyframes hm-glow-pulse { 0%,100% { box-shadow: 0 0 20px 6px rgba(200,144,64,0.4); } 50% { box-shadow: 0 0 35px 12px rgba(255,208,128,0.7); } }
@keyframes hm-drift-a { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.6; } 100% { transform: translate(80px, -40px); opacity: 0; } }
@keyframes hm-drift-b { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: 0.5; } 90% { opacity: 0.5; } 100% { transform: translate(-60px, 30px); opacity: 0; } }

.scn-prelude-to-dialectic {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background: 
    linear-gradient(180deg, #14142e 0%, #1e1e3e 40%, #2a2a50 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-prelude-to-dialectic .corridor-wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(90deg, #1a1a2e, #2a2a46);
  border-right: 2px solid #3a3a5a;
}
.scn-prelude-to-dialectic .corridor-wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(270deg, #1a1a2e, #2a2a46);
  border-left: 2px solid #3a3a5a;
}
.scn-prelude-to-dialectic .steps {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #3a2a4a 30%, #2a1a3a 60%, #1a0a2a 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 30%, 40% 100%, 50% 40%, 60% 100%, 70% 25%, 80% 100%, 90% 35%, 100% 100%);
  animation: pd-step-glow 8s ease-in-out infinite alternate;
}
.scn-prelude-to-dialectic .light-beam {
  position: absolute; top: 0%; left: 45%; right: 45%; bottom: 40%;
  background: linear-gradient(180deg, rgba(200,180,140,0.4), transparent 70%);
  clip-path: polygon(35% 0%, 65% 0%, 70% 100%, 30% 100%);
  animation: pd-light-sway 6s ease-in-out infinite alternate;
}
.scn-prelude-to-dialectic .figure-climber {
  position: absolute; bottom: 18%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2a3e, #12122a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-climb 4s ease-in-out infinite;
}
.scn-prelude-to-dialectic .arch {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a5a, #2a1a3a);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-prelude-to-dialectic .shadow-sway {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.3));
  animation: pd-shadow-sway 7s ease-in-out infinite alternate;
}
@keyframes pd-step-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pd-light-sway { 0% { transform: skewX(-2deg); opacity: 0.5; } 50% { transform: skewX(2deg); opacity: 0.8; } 100% { transform: skewX(0deg); opacity: 0.6; } }
@keyframes pd-climb { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(0deg); } 50% { transform: translateY(-10px) rotate(2deg); } 75% { transform: translateY(-5px) rotate(0deg); } }
@keyframes pd-shadow-sway { 0% { transform: scaleX(0.8); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-nature-of-dialectic {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background: 
    linear-gradient(180deg, #0e0e24 0%, #1a1a36 50%, #2a2a4e 100%),
    radial-gradient(circle at 50% 50%, #2a2a5e 0%, transparent 80%);
}
.scn-nature-of-dialectic .core-spiral {
  position: absolute; top: 50%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0c080, #b09050);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 40px 10px rgba(176,144,80,0.5);
  animation: nd-spin 12s linear infinite;
}
.scn-nature-of-dialectic .ring-outer {
  position: absolute; top: 50%; left: 50%; width: 120px; height: 120px;
  margin: -60px 0 0 -60px;
  border: 2px solid rgba(200,180,120,0.3);
  border-radius: 50%;
  animation: nd-pulse 8s ease-in-out infinite;
}
.scn-nature-of-dialectic .rays {
  position: absolute; top: 50%; left: 50%; width: 200px; height: 200px;
  margin: -100px 0 0 -100px;
  background: 
    repeating-conic-gradient(from 0deg, transparent 0deg, rgba(200,180,120,0.08) 5deg, transparent 10deg);
  animation: nd-rotate 20s linear infinite;
}
.scn-nature-of-dialectic .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
.scn-nature-of-dialectic .particle-orbit-a {
  position: absolute; top: 50%; left: 50%; width: 8px; height: 8px;
  margin-left: -4px; margin-top: -4px;
  background: radial-gradient(circle, #d0b070, transparent);
  border-radius: 50%;
  animation: nd-orbit-a 10s linear infinite;
}
.scn-nature-of-dialectic .particle-orbit-b {
  position: absolute; top: 50%; left: 50%; width: 6px; height: 6px;
  margin-left: -3px; margin-top: -3px;
  background: radial-gradient(circle, #c0a060, transparent);
  border-radius: 50%;
  animation: nd-orbit-b 14s linear infinite reverse;
}
@keyframes nd-spin { 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 nd-pulse { 0%,100% { transform: scale(0.8); opacity: 0.4; } 50% { transform: scale(1.2); opacity: 0.8; } }
@keyframes nd-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes nd-orbit-a { 0% { transform: translate(-50%, -50%) rotate(0deg) translateX(80px) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg) translateX(80px) rotate(-360deg); } }
@keyframes nd-orbit-b { 0% { transform: translate(-50%, -50%) rotate(0deg) translateX(60px) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(-360deg) translateX(60px) rotate(360deg); } }

.scn-selection-of-disciples {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background: 
    linear-gradient(180deg, #efe3c0 0%, #dac8a0 30%, #c0aa80 60%, #a08860 100%),
    radial-gradient(ellipse at 50% 20%, #f5ebd0 0%, transparent 70%);
}
.scn-selection-of-disciples .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8a8, #b8a480);
  border-bottom: 4px solid #9a8040;
}
.scn-selection-of-disciples .pillar-left {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #a08850, #c8b080, #a08850);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
}
.scn-selection-of-disciples .pillar-right {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #a08850, #c8b080, #a08850);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
}
.scn-selection-of-disciples .figures-row {
  position: absolute; bottom: 22%; left: 22%; right: 22%; height: 50%;
  background: repeating-linear-gradient(90deg, 
    transparent 0px, transparent 12px,
    #3a2a1a 12px, #3a2a1a 14px,
    transparent 14px, transparent 30px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 80%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 80%, transparent 100%);
  animation: sd-row-bob 6s ease-in-out infinite;
}
.scn-selection-of-disciples .light-beam-left {
  position: absolute; top: 0%; left: 20%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,235,200,0.5), transparent 70%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  animation: sd-beam-sway 8s ease-in-out infinite alternate;
}
.scn-selection-of-disciples .light-beam-right {
  position: absolute; top: 0%; right: 20%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,235,200,0.4), transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  animation: sd-beam-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-selection-of-disciples .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b09870, #8a7040);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
@keyframes sd-row-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sd-beam-sway { 0% { transform: skewX(-3deg); opacity: 0.6; } 50% { transform: skewX(3deg); opacity: 0.9; } 100% { transform: skewX(0deg); opacity: 0.7; } }

.scn-perfect-just {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-perfect-just .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f1a 100%); animation: pj-wall 15s ease-in-out infinite alternate; }
.scn-perfect-just .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1410 0%, #2a1f1a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-perfect-just .window { position:absolute; top:15%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, transparent 60%); border:2px solid #5a4a3a; border-radius:4%; box-shadow: 0 0 30px 10px rgba(200,160,96,.3); animation: pj-window 4s ease-in-out infinite alternate; }
.scn-perfect-just .figure { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:20px; height:40px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pj-figure 6s ease-in-out infinite; }
.scn-perfect-just .halo { position:absolute; top:42%; left:50%; transform:translate(-50%,-50%); width:30px; height:30px; background: radial-gradient(circle, #d4b06a 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(212,176,106,.4); animation: pj-halo 3s ease-in-out infinite alternate; }
.scn-perfect-just .shadow { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: pj-shadow 6s ease-in-out infinite; }
@keyframes pj-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes pj-window { 0% { opacity:.6; box-shadow: 0 0 20px 5px rgba(200,160,96,.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(200,160,96,.5); } 100% { opacity:.7; box-shadow: 0 0 25px 8px rgba(200,160,96,.3); } }
@keyframes pj-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 pj-halo { 0% { transform:translate(-50%,-50%) scale(.95); opacity:.7; } 50% { transform:translate(-50%,-50%) scale(1.1); opacity:1; } 100% { transform:translate(-50%,-50%) scale(1); opacity:.8; } }
@keyframes pj-shadow { 0% { transform:translateX(-50%) scaleX(1); opacity:.6; } 50% { transform:translateX(-50%) scaleX(.9); opacity:.4; } 100% { transform:translateX(-50%) scaleX(1); opacity:.6; } }

.scn-until-death {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a12 0%, transparent 70%);
}
.scn-until-death .bg-black { position:absolute; inset:0; background: linear-gradient(180deg, #050505 0%, #0a0a0a 100%); animation: ud-bg 20s ease-in-out infinite alternate; }
.scn-until-death .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0a0a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-until-death .candle { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:12px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ud-candle 8s ease-in-out infinite; }
.scn-until-death .flame { position:absolute; bottom:72%; left:50%; transform:translateX(-50%); width:10px; height:14px; background: radial-gradient(circle, #ffd860 0%, #ff8040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,128,64,.4); animation: ud-flame 2s ease-in-out infinite alternate; }
.scn-until-death .wax { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:16px; height:8px; background: linear-gradient(180deg, #b08850 0%, #d8b878 100%); border-radius:50% 50% 30% 30%; animation: ud-wax 6s ease-in-out infinite; }
.scn-until-death .figure-silhouette { position:absolute; bottom:30%; left:35%; width:24px; height:48px; background: #040404; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 4px rgba(0,0,0,.3); animation: ud-figure 10s ease-in-out infinite; }
@keyframes ud-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ud-candle { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes ud-flame { 0% { transform:translateX(-50%) scale(.9) rotate(-5deg); opacity:.8; } 50% { transform:translateX(-50%) scale(1.1) rotate(2deg); opacity:1; } 100% { transform:translateX(-50%) scale(.95) rotate(3deg); opacity:.7; } }
@keyframes ud-wax { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(.8); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes ud-figure { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }

.scn-glaucon-describes-life-of-just {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-glaucon-describes-life-of-just .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f1a 100%); animation: gj-bg 12s ease-in-out infinite alternate; }
.scn-glaucon-describes-life-of-just .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-glaucon-describes-life-of-just .book { position:absolute; bottom:30%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #a08060 0%, #8a6a4a 100%); border-radius:2px; transform:rotate(5deg); animation: gj-book 8s ease-in-out infinite; }
.scn-glaucon-describes-life-of-just .lamp { position:absolute; bottom:43%; left:65%; width:8px; height:18px; background: #5a4a3a; border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,160,96,.3); animation: gj-lamp 4s ease-in-out infinite alternate; }
.scn-glaucon-describes-life-of-just .figure { position:absolute; bottom:28%; left:30%; width:20px; height:36px; background: linear-gradient(180deg, #1a1410 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gj-figure 6s ease-in-out infinite; }
.scn-glaucon-describes-life-of-just .glow { position:absolute; bottom:40%; left:68%; width:60px; height:60px; background: radial-gradient(circle, #c8a060 0%, transparent 70%); border-radius:50%; opacity:.6; animation: gj-glow 5s ease-in-out infinite alternate; }
@keyframes gj-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes gj-book { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-1px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes gj-lamp { 0% { opacity:.7; box-shadow: 0 0 15px 5px rgba(200,160,96,.2); } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(200,160,96,.5); } 100% { opacity:.8; box-shadow: 0 0 20px 8px rgba(200,160,96,.3); } }
@keyframes gj-figure { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes gj-glow { 0% { transform:scale(.95); opacity:.5; } 50% { transform:scale(1.1); opacity:.7; } 100% { transform:scale(1); opacity:.6; } }

.scn-unjust-reality {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-unjust-reality .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); animation: ur-bg 18s ease-in-out infinite alternate; }
.scn-unjust-reality .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.5); }
.scn-unjust-reality .roots { position:absolute; bottom:30%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%); border-radius:0 0 50% 50% / 0 0 30% 30%; animation: ur-roots 10s ease-in-out infinite; }
.scn-unjust-reality .figure { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:22px; height:42px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ur-figure 7s ease-in-out infinite; }
.scn-unjust-reality .earth-layer { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; animation: ur-earth 14s ease-in-out infinite alternate; }
.scn-unjust-reality .shadow { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:80px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation: ur-shadow 7s ease-in-out infinite; }
@keyframes ur-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ur-roots { 0% { transform:scaleY(1); opacity:.6; } 50% { transform:scaleY(1.05); opacity:.8; } 100% { transform:scaleY(1); opacity:.6; } }
@keyframes ur-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 ur-earth { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ur-shadow { 0% { transform:translateX(-50%) scaleX(1); opacity:.5; } 50% { transform:translateX(-50%) scaleX(.9); opacity:.3; } 100% { transform:translateX(-50%) scaleX(1); opacity:.5; } }

.scn-dialectic-at-rest-or-motion {
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 40%, #14100a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-dialectic-at-rest-or-motion .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 100%);
}
.scn-dialectic-at-rest-or-motion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f1510 0%, #0c0906 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-dialectic-at-rest-or-motion .lamp {
  position: absolute; bottom: 40%; left: 20%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #b08040;
}
.scn-dialectic-at-rest-or-motion .glow {
  position: absolute; bottom: 35%; left: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, #c08040 0%, transparent 100%);
  opacity: .6;
  animation: drm-glow 4s ease-in-out infinite alternate;
}
.scn-dialectic-at-rest-or-motion .bookshelf {
  position: absolute; bottom: 30%; right: 5%; width: 30%; height: 55%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1510 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateY(-10deg);
}
.scn-dialectic-at-rest-or-motion .orb {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #6a5a3a;
  transform: translateX(-50%);
  animation: drm-orb 12s ease-in-out infinite;
}
.scn-dialectic-at-rest-or-motion .shadow-figure {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0c0906 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drm-figure 6s ease-in-out infinite;
}
.scn-dialectic-at-rest-or-motion .line-a,
.scn-dialectic-at-rest-or-motion .line-b {
  position: absolute; height: 2px; background: rgba(200,180,120,.15);
  border-radius: 50%; filter: blur(1px);
}
.scn-dialectic-at-rest-or-motion .line-a {
  top: 30%; left: 5%; width: 60%;
  transform: rotate(-5deg);
  animation: drm-line-a 20s linear infinite;
}
.scn-dialectic-at-rest-or-motion .line-b {
  top: 45%; right: 5%; width: 40%;
  transform: rotate(12deg);
  animation: drm-line-b 25s linear infinite reverse;
}
@keyframes drm-glow    { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.1); } 100% { opacity: .5; transform: scale(.95); } }
@keyframes drm-orb     { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-40%) translateY(-4px); } 50% { transform: translateX(-50%) translateY(2px); } 75% { transform: translateX(-60%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes drm-figure  { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes drm-line-a  { 0% { opacity: .1; transform: translateX(-20px) rotate(-5deg); } 50% { opacity: .3; transform: translateX(40px) rotate(-3deg); } 100% { opacity: .1; transform: translateX(80px) rotate(-5deg); } }
@keyframes drm-line-b  { 0% { opacity: .15; transform: translateX(20px) rotate(12deg); } 50% { opacity: .25; transform: translateX(-30px) rotate(10deg); } 100% { opacity: .15; transform: translateX(-60px) rotate(12deg); } }

.scn-hegel-and-plato {
  background: linear-gradient(180deg, #1e1814 0%, #16100c 40%, #0e0a07 100%),
              radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, transparent 70%);
}
.scn-hegel-and-plato .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #1e1814 0%, #16100c 100%);
}
.scn-hegel-and-plato .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #16100c 0%, #0a0705 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
}
.scn-hegel-and-plato .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-hegel-and-plato .candle {
  position: absolute; width: 10px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1f1a 100%);
  border-radius: 2px;
}
.scn-hegel-and-plato .candle-a {
  bottom: 30%; left: 38%;
  box-shadow: 0 0 30px 8px #c08040;
  animation: hgp-candle-glow 3s ease-in-out infinite alternate;
}
.scn-hegel-and-plato .candle-b {
  bottom: 30%; right: 38%;
  box-shadow: 0 0 20px 4px #b07030;
  animation: hgp-candle-glow 3s ease-in-out infinite alternate-reverse;
}
.scn-hegel-and-plato .figure {
  position: absolute; bottom: 24%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0a0705 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-hegel-and-plato .figure-l {
  left: 32%;
  animation: hgp-figure-l 8s ease-in-out infinite;
}
.scn-hegel-and-plato .figure-r {
  right: 32%;
  animation: hgp-figure-r 8s ease-in-out infinite;
}
.scn-hegel-and-plato .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
  animation: hgp-vignette 6s ease-in-out infinite alternate;
}
@keyframes hgp-candle-glow { 0% { opacity: .6; box-shadow: 0 0 20px 4px #b07030; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #c08040; } 100% { opacity: .7; box-shadow: 0 0 25px 6px #b07030; } }
@keyframes hgp-figure-l { 0% { transform: rotate(2deg); } 25% { transform: rotate(-2deg) translateX(-3px); } 50% { transform: rotate(0); } 75% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(2deg); } }
@keyframes hgp-figure-r { 0% { transform: rotate(-2deg); } 25% { transform: rotate(3deg) translateX(3px); } 50% { transform: rotate(0); } 75% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes hgp-vignette { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-swift-on-commentators {
  background: linear-gradient(180deg, #1f1510 0%, #140e0a 40%, #0a0705 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 70%);
}
.scn-swift-on-commentators .stage {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #1f1510 0%, #0a0705 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-swift-on-commentators .pedestal {
  position: absolute; bottom: 35%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-swift-on-commentators .pedestal-l { left: 15%; }
.scn-swift-on-commentators .pedestal-r { right: 15%; }
.scn-swift-on-commentators .hero {
  position: absolute; bottom: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0705 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-swift-on-commentators .hero-l { left: 22%; animation: swh-hero 6s ease-in-out infinite; }
.scn-swift-on-commentators .hero-r { right: 22%; animation: swh-hero 6s ease-in-out infinite reverse; }
.scn-swift-on-commentators .swarm {
  position: absolute; bottom: 30%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #1f1510 0%, #0a0705 100%);
  border-radius: 50%;
  transform-origin: bottom center;
}
.scn-swift-on-commentators .swarm-1 { left: 10%; animation: swh-swarm 3s ease-in-out infinite; }
.scn-swift-on-commentators .swarm-2 { left: 35%; animation: swh-swarm 3.6s ease-in-out infinite 0.7s; }
.scn-swift-on-commentators .swarm-3 { right: 35%; animation: swh-swarm 4.2s ease-in-out infinite 1.4s; }
.scn-swift-on-commentators .swarm-4 { right: 10%; animation: swh-swarm 2.8s ease-in-out infinite 2.1s; }
@keyframes swh-hero { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes swh-swarm { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(10px,-5px) scale(.9); } 50% { transform: translate(20px,0) scale(1.1); } 75% { transform: translate(10px,3px) scale(.95); } 100% { transform: translate(0,0) scale(1); } }

.scn-swift-continued {
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 40%, #0a0805 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%);
}
.scn-swift-continued .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1a1410 0%, #120e0a 100%);
}
.scn-swift-continued .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #120e0a 0%, #080504 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
}
.scn-swift-continued .hero {
  position: absolute; bottom: 22%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #0a0705 0%, #040302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-swift-continued .hero-left { left: 20%; animation: swc-hero-l 8s ease-in-out infinite; }
.scn-swift-continued .hero-right { right: 20%; animation: swc-hero-r 8s ease-in-out infinite; }
.scn-swift-continued .cowering {
  position: absolute; bottom: 18%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #1a1410 0%, #080504 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-swift-continued .cower-1 { left: 35%; animation: swc-cower 4s ease-in-out infinite; }
.scn-swift-continued .cower-2 { left: 50%; animation: swc-cower 4.5s ease-in-out infinite 0.8s; }
.scn-swift-continued .cower-3 { left: 60%; animation: swc-cower 5s ease-in-out infinite 1.6s; }
.scn-swift-continued .curtain {
  position: absolute; top: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1005 100%);
  border-radius: 0 30% 40% 0 / 0 20% 30% 0;
  opacity: .8;
}
.scn-swift-continued .curtain-l { left: 0; transform: scaleX(.8); animation: swc-curtain-l 10s ease-in-out infinite; }
.scn-swift-continued .curtain-r { right: 0; transform: scaleX(.8) scaleY(1.1); animation: swc-curtain-r 10s ease-in-out infinite; }
@keyframes swc-hero-l { 0% { transform: rotate(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(0); } 75% { transform: rotate(2deg) translateY(2px); } 100% { transform: rotate(0); } }
@keyframes swc-hero-r { 0% { transform: rotate(0); } 25% { transform: rotate(2deg) translateY(2px); } 50% { transform: rotate(0); } 75% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0); } }
@keyframes swc-cower { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-4px) scale(.9); } 50% { transform: translateY(2px) scale(1.05); } 75% { transform: translateY(-2px) scale(.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes swc-curtain-l { 0% { transform: scaleX(.8) translateX(0); } 50% { transform: scaleX(.85) translateX(5px); } 100% { transform: scaleX(.8) translateX(0); } }
@keyframes swc-curtain-r { 0% { transform: scaleX(.8) translateX(0); } 50% { transform: scaleX(.85) translateX(-5px); } 100% { transform: scaleX(.8) translateX(0); } }

.scn-passion-ally-of-reason { background: linear-gradient(135deg, #f5efe6 0%, #e6d5b8 50%, #d9c4a0 100%), radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 50%); }
.scn-passion-ally-of-reason .room-shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,60,40,0.12) 0%, rgba(40,30,20,0.08) 100%); }
.scn-passion-ally-of-reason .wall { position:absolute; bottom:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #e8dcc4 0%, #cbb895 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 2px 10px rgba(120,80,40,0.2); }
.scn-passion-ally-of-reason .window { position:absolute; top:12%; left:65%; width:90px; height:110px; background: linear-gradient(180deg, #cce0ff 0%, #b0cfff 100%); border:6px solid #a1886a; border-radius:4px; box-shadow: inset 0 0 20px rgba(200,220,255,0.6), 0 4px 12px rgba(0,0,0,0.15); animation: sc1w 6s ease-in-out infinite alternate; }
.scn-passion-ally-of-reason .shelf { position:absolute; bottom:30%; left:20%; width:40%; height:6px; background: #8b7355; border-radius:2px; box-shadow: 0 -10px 0 #7a644a, 0 -20px 0 #6b553f; }
.scn-passion-ally-of-reason .figure { position:absolute; bottom:16%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #3a2e1e 0%, #2a2216 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1f 5s ease-in-out infinite; }
.scn-passion-ally-of-reason .hand { position:absolute; bottom:22%; left:38%; width:10px; height:14px; background: #4a3e2e; border-radius: 40% 50% 30% 50%; transform: rotate(20deg); animation: sc1h 5s ease-in-out infinite; }
.scn-passion-ally-of-reason .light-ray { position:absolute; top:10%; left:60%; width:120px; height:200px; background: linear-gradient(135deg, rgba(255,245,200,0.3) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sc1l 8s ease-in-out infinite alternate; }
.scn-passion-ally-of-reason .dust { position:absolute; width:4px; height:4px; background: rgba(255,240,180,0.6); border-radius:50%; filter: blur(2px); animation: sc1d 10s linear infinite; }
.scn-passion-ally-of-reason .motes { position:absolute; bottom:20%; left:40%; width:100px; height:100px; background: radial-gradient(circle at 50% 50%, rgba(255,220,150,0.15) 0%, transparent 70%); animation: sc1dm 12s ease-in-out infinite; }
@keyframes sc1w { 0% { box-shadow: inset 0 0 20px rgba(200,220,255,0.6), 0 4px 12px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 0 30px rgba(200,220,255,0.8), 0 6px 18px rgba(0,0,0,0.2); } }
@keyframes sc1f { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes sc1h { 0%,100% { transform: translateX(0) rotate(20deg); } 50% { transform: translateX(4px) rotate(25deg); } }
@keyframes sc1l { 0% { opacity:0.6; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.1); } }
@keyframes sc1d { 0% { transform: translateY(0) translateX(0); opacity:0.4; } 50% { transform: translateY(-30px) translateX(15px); opacity:0.1; } 100% { transform: translateY(-60px) translateX(0); opacity:0.4; } }
@keyframes sc1dm { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }

.scn-virtues-in-individual { background: linear-gradient(180deg, #ece4d7 0%, #d9ccb8 50%, #c0b09a 100%), radial-gradient(ellipse at 50% 30%, #f5efe5 0%, transparent 60%); }
.scn-virtues-in-individual .bg-temple { position:absolute; inset:0; background: linear-gradient(180deg, #e2d6c4 0%, #cabcab 100%); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); }
.scn-virtues-in-individual .column { position:absolute; bottom:10%; width:12px; height:65%; background: linear-gradient(180deg, #c4b4a0 0%, #b0a08e 100%); border-radius:6px; box-shadow: inset -2px 0 4px rgba(0,0,0,0.1); }
.scn-virtues-in-individual .left { left:20%; }
.scn-virtues-in-individual .right { right:20%; }
.scn-virtues-in-individual .figure { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:36px; height:70px; background: linear-gradient(180deg, #3d2e1a 0%, #2a1e10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc2f 6s ease-in-out infinite; }
.scn-virtues-in-individual .scroll { position:absolute; bottom:35%; left:52%; width:26px; height:34px; background: #e8dac0; border:1px solid #b09a80; border-radius:2px 8px 8px 2px; transform: rotate(-5deg); animation: sc2s 5s ease-in-out infinite alternate; }
.scn-virtues-in-individual .sparkle { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #f7e7b0 0%, transparent 70%); border-radius:50%; filter: blur(1px); }
.scn-virtues-in-individual .sparkle.a { top:18%; left:30%; animation: sc2sp 3s ease-in-out infinite; }
.scn-virtues-in-individual .sparkle.b { top:22%; right:25%; animation: sc2sp 4s ease-in-out infinite 1s; }
.scn-virtues-in-individual .sparkle.c { top:30%; left:55%; animation: sc2sp 5s ease-in-out infinite 2s; }
.scn-virtues-in-individual .pedestal { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:60px; height:18px; background: linear-gradient(180deg, #b8a894 0%, #a0907e 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
@keyframes sc2f { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes sc2s { 0% { transform: rotate(-5deg) scaleY(1); } 100% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes sc2sp { 0%,100% { opacity:0.3; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

.scn-justice-more-profitable { background: linear-gradient(180deg, #d4c9b8 0%, #bdaa90 40%, #a6917a 100%), radial-gradient(ellipse at 50% 70%, #e5d8c0 0%, transparent 50%); }
.scn-justice-more-profitable .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #cbdae8 0%, #b0c2d4 100%); animation: sc3s 10s ease-in-out infinite alternate; }
.scn-justice-more-profitable .city { position:absolute; bottom:30%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #9d8b74 0%, #82715c 100%); clip-path: polygon(0% 0%, 5% 0%, 8% 100%, 12% 100%, 15% 0%, 22% 0%, 25% 100%, 30% 100%, 35% 0%, 40% 0%, 45% 100%, 50% 100%, 55% 0%, 60% 0%, 65% 100%, 70% 100%, 75% 0%, 80% 0%, 85% 100%, 90% 100%, 95% 0%, 100% 0%, 100% 100%, 0% 100%); animation: sc3c 8s ease-in-out infinite alternate; }
.scn-justice-more-profitable .hill { position:absolute; bottom:24%; left:35%; right:35%; height:22%; background: linear-gradient(180deg, #7e9a6b 0%, #5e7a4a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,30,0,0.3); animation: sc3h 12s ease-in-out infinite; }
.scn-justice-more-profitable .figure { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:28px; height:55px; background: linear-gradient(180deg, #2f2a1e 0%, #1e1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc3f 5s ease-in-out infinite; }
.scn-justice-more-profitable .staff { position:absolute; bottom:30%; left:53%; width:4px; height:50px; background: #5a4a32; border-radius:2px; transform-origin: bottom center; animation: sc3st 5s ease-in-out infinite; }
.scn-justice-more-profitable .cape { position:absolute; bottom:25%; left:46%; width:40px; height:30px; background: linear-gradient(180deg, #6b5040 0%, #4a3428 100%); border-radius: 0 0 50% 50%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: sc3cp 6s ease-in-out infinite; }
.scn-justice-more-profitable .bird { position:absolute; top:15%; left:20%; width:12px; height:8px; background: #5a4a3a; border-radius: 50% 50% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sc3b 15s linear infinite; }
.scn-justice-more-profitable .cloud { position:absolute; background: rgba(255,255,245,0.5); border-radius:50%; filter: blur(5px); }
.scn-justice-more-profitable .cloud.a { top:8%; left:10%; width:80px; height:18px; animation: sc3cl 40s linear infinite; }
.scn-justice-more-profitable .cloud.b { top:12%; right:15%; width:60px; height:14px; animation: sc3cl 50s linear infinite reverse; }
@keyframes sc3s { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sc3c { 0% { filter: brightness(0.9); } 100% { filter: brightness(1.1); } }
@keyframes sc3h { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc3f { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-1px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sc3st { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes sc3cp { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(0.95); } }
@keyframes sc3b { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(30px) translateY(-8px); } 100% { transform: translateX(60px) translateY(0); } }
@keyframes sc3cl { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-psychology-recap { background: linear-gradient(180deg, #1c1c2e 0%, #2a2a40 50%, #1e1e34 100%), radial-gradient(ellipse at 50% 50%, #2f2f50 0%, transparent 70%); }
.scn-psychology-recap .void-bg { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(60,60,100,0.3) 0%, transparent 70%); }
.scn-psychology-recap .faculty { position:absolute; width:30px; height:30px; border-radius:50%; background: linear-gradient(135deg, #505080 0%, #383860 100%); box-shadow: 0 0 20px rgba(80,80,140,0.4); }
.scn-psychology-recap .faculty.a { top:18%; left:35%; animation: sc4fa 6s ease-in-out infinite; }
.scn-psychology-recap .faculty.b { top:40%; left:50%; transform:translateX(-50%); width:36px; height:36px; background: linear-gradient(135deg, #6060a0 0%, #484870 100%); animation: sc4fb 7s ease-in-out infinite 0.5s; }
.scn-psychology-recap .faculty.c { top:22%; right:32%; animation: sc4fc 8s ease-in-out infinite 1s; }
.scn-psychology-recap .cord { position:absolute; top:30%; left:40%; right:40%; height:2px; background: linear-gradient(90deg, transparent, #8070a0 50%, transparent); animation: sc4co 10s ease-in-out infinite; }
.scn-psychology-recap .glow { position:absolute; top:35%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(100,100,180,0.2) 0%, transparent 70%); animation: sc4gl 8s ease-in-out infinite alternate; }
.scn-psychology-recap .halo { position:absolute; top:26%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, rgba(120,120,200,0.15) 0%, transparent 70%); filter: blur(8px); animation: sc4ha 9s ease-in-out infinite; }
@keyframes sc4fa { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-15px) scale(1.1); box-shadow: 0 0 30px rgba(80,80,140,0.6); } }
@keyframes sc4fb { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-10px) scale(1.1); box-shadow: 0 0 30px rgba(96,96,160,0.6); } }
@keyframes sc4fc { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-12px) scale(1.1); box-shadow: 0 0 30px rgba(80,80,140,0.6); } }
@keyframes sc4co { 0%,100% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(2); } }
@keyframes sc4gl { 0% { opacity:0.4; transform: scale(0.9); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes sc4ha { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.3); opacity:0.6; } }

/* beauty-of-nature */
.scn-beauty-of-nature { background: linear-gradient(180deg, #2b1e0e 0%, #4a3520 40%, #2b1e0e 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%); }
.scn-beauty-of-nature .bon-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a18 0%, #1f150a 100%); }
.scn-beauty-of-nature .bon-window { position:absolute; top:15%; left:55%; width:120px; height:150px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border:6px solid #5a4020; border-radius:4px; box-shadow: inset 0 0 20px #0a0a0a; }
.scn-beauty-of-nature .bon-nature { position:absolute; top:15%; left:55%; width:110px; height:140px; margin:5px; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 40%, #1a3a1a 100%); border-radius:0; clip-path: inset(0); animation: bon-seasons 20s ease-in-out infinite alternate; }
.scn-beauty-of-nature .bon-figure { position:absolute; bottom:20%; left:45%; width:40px; 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: bon-turnpag 6s ease-in-out infinite; }
.scn-beauty-of-nature .bon-book { position:absolute; bottom:22%; left:48%; width:50px; height:35px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px; box-shadow: 0 4px 8px #0a0a0a; transform: rotate(-10deg); }
.scn-beauty-of-nature .bon-candle { position:absolute; bottom:25%; left:35%; width:8px; height:25px; background: linear-gradient(180deg, #c8a870 0%, #a08850 100%); border-radius:2px; box-shadow: 0 -4px 12px #d0a060; }
.scn-beauty-of-nature .bon-glow { position:absolute; bottom:25%; left:35%; width:60px; height:60px; background: radial-gradient(circle, rgba(208,160,96,0.6) 0%, transparent 70%); transform: translate(-50%, -50%); border-radius:50%; animation: bon-flicker 3s ease-in-out infinite alternate; }
@keyframes bon-seasons { 0% { filter: hue-rotate(0deg) saturate(1); } 50% { filter: hue-rotate(30deg) saturate(1.2); } 100% { filter: hue-rotate(0deg) saturate(0.8); } }
@keyframes bon-turnpag { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bon-flicker { 0% { opacity:0.7; transform: scale(0.9); } 25% { opacity:0.9; transform: scale(1.1); } 50% { opacity:0.6; transform: scale(0.8); } 75% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1.0); } }

/* dante-monarchia */
.scn-dante-monarchia { background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 100%, #2a1c10 0%, transparent 60%); }
.scn-dante-monarchia .dm-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, #0e0a08 100%); }
.scn-dante-monarchia .dm-desk { position:absolute; bottom:10%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8% 8% 0 0; box-shadow: 0 -4px 12px #0a0a0a; }
.scn-dante-monarchia .dm-scroll { position:absolute; bottom:20%; left:30%; width:80px; height:60px; background: linear-gradient(135deg, #c8b088 0%, #a08060 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 6px #0a0a0a; }
.scn-dante-monarchia .dm-figure { position:absolute; bottom:18%; left:50%; width:45px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: dm-write 8s ease-in-out infinite; }
.scn-dante-monarchia .dm-globe { position:absolute; bottom:22%; right:28%; width:30px; height:30px; background: radial-gradient(circle, #5a8a6a 0%, #3a5a4a 60%, #1a2a1a 100%); border-radius:50%; box-shadow: 0 0 8px #0a0a0a; animation: dm-spin 12s linear infinite; }
.scn-dante-monarchia .dm-candle { position:absolute; bottom:22%; left:22%; width:8px; height:22px; background: linear-gradient(180deg, #d0b080 0%, #a08850 100%); border-radius:2px; box-shadow: 0 -4px 12px #d0a060; }
.scn-dante-monarchia .dm-light { position:absolute; bottom:22%; left:22%; width:80px; height:80px; background: radial-gradient(circle, rgba(208,160,96,0.5) 0%, transparent 70%); border-radius:50%; transform: translate(-50%, -50%); animation: dm-flicker 4s ease-in-out infinite alternate; }
@keyframes dm-write { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes dm-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes dm-flicker { 0% { opacity:0.8; transform: scale(0.95); } 25% { opacity:1; transform: scale(1.05); } 50% { opacity:0.7; transform: scale(0.9); } 75% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1.0); } }

/* dante-miracles-and-paul */
.scn-dante-miracles-and-paul { background: linear-gradient(180deg, #0e0a08 0%, #1a1210 40%, #0a0604 100%), radial-gradient(ellipse at 50% 100%, #1a0e0a 0%, transparent 60%); }
.scn-dante-miracles-and-paul .dmp-cell { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%); }
.scn-dante-miracles-and-paul .dmp-bars { position:absolute; top:20%; left:10%; right:10%; height:3%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: 0 8px 0 #4a3a2a, 0 16px 0 #3a2a1a; }
.scn-dante-miracles-and-paul .dmp-figure { position:absolute; bottom:15%; left:50%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: dmp-pray 8s ease-in-out infinite; }
.scn-dante-miracles-and-paul .dmp-halo { position:absolute; bottom:60%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #d0c080 0%, rgba(208,192,128,0.3) 60%, transparent 100%); border-radius:50%; transform: translateX(-50%); animation: dmp-glow 4s ease-in-out infinite alternate; }
.scn-dante-miracles-and-paul .dmp-chain { position:absolute; bottom:20%; left:40%; width:4px; height:30px; background: repeating-linear-gradient(0deg, #8a7a6a 0px, #8a7a6a 2px, #6a5a4a 2px, #6a5a4a 4px); border-radius:2px; transform: rotate(15deg); animation: dmp-rattle 6s ease-in-out infinite; }
.scn-dante-miracles-and-paul .dmp-lantern { position:absolute; top:25%; right:20%; width:12px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px; box-shadow: 0 0 20px #c0a060; }
.scn-dante-miracles-and-paul .dmp-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); }
@keyframes dmp-pray { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-6px) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-6px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes dmp-glow { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(1.0); } }
@keyframes dmp-rattle { 0% { transform: rotate(12deg); } 25% { transform: rotate(18deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(20deg); } 100% { transform: rotate(12deg); } }

/* dante-miserable-state */
.scn-dante-miserable-state { background: linear-gradient(180deg, #0a0606 0%, #1a0e0c 40%, #060404 100%), radial-gradient(ellipse at 50% 100%, #1a0a08 0%, transparent 60%); }
.scn-dante-miserable-state .dms-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #2a1a12 0%, #060404 100%); }
.scn-dante-miserable-state .dms-arch { position:absolute; top:10%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%); border-radius:50% 50% 0 0; box-shadow: 0 10px 20px #0a0a0a; }
.scn-dante-miserable-state .dms-figure { position:absolute; bottom:20%; left:50%; width:40px; height:85px; background: linear-gradient(180deg, #1a100e 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: dms-weep 7s ease-in-out infinite; }
.scn-dante-miserable-state .dms-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); }
.scn-dante-miserable-state .dms-light { position:absolute; top:20%; left:50%; width:6px; height:6px; background: #a08060; border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,128,96,0.4); animation: dms-fade 5s ease-in-out infinite alternate; }
.scn-dante-miserable-state .dms-shadow { position:absolute; bottom:0; left:40%; right:40%; height:10%; background: #0a0806; border-radius:50% 50% 0 0; opacity:0.6; animation: dms-shiver 4s ease-in-out infinite; }
.scn-dante-miserable-state .dms-drop { position:absolute; bottom:30%; left:55%; width:4px; height:6px; background: radial-gradient(circle, #8a7a6a 0%, transparent 100%); border-radius:0 0 50% 50%; animation: dms-drip 3s ease-in-out infinite; }
@keyframes dms-weep { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-8px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-8px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes dms-fade { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1.0); } }
@keyframes dms-shiver { 0% { transform: translateX(0); } 25% { transform: translateX(2px); } 50% { transform: translateX(-2px); } 75% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes dms-drip { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(20px); opacity:0.2; } 100% { transform: translateY(0); opacity:0.8; } }

/* Scene: political-economy-remarks */
.scn-political-economy-remarks { background: linear-gradient(180deg, #2c1a10 0%, #3c2820 40%, #2a1a12 100%), radial-gradient(ellipse at 50% 100%, #4a3228 0%, transparent 70%); }
.scn-political-economy-remarks .desk { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-political-economy-remarks .lamp { position:absolute; bottom:38%; left:20%; width:12px; height:40px; background: linear-gradient(180deg, #b08050 0%, #806040 100%); border-radius:40% 40% 10% 10%; transform-origin: bottom center; animation: pe-lamp-sway 6s ease-in-out infinite alternate; }
.scn-political-economy-remarks .glow { position:absolute; bottom:36%; left:20%; width:80px; height:50px; background: radial-gradient(circle, #e0b060 0%, #c09040 40%, transparent 70%); transform:translate(-50%,0); opacity:0.8; animation: pe-glow-pulse 4s ease-in-out infinite alternate; }
.scn-political-economy-remarks .scroll { position:absolute; bottom:28%; left:30%; width:60px; height:4px; background: linear-gradient(90deg, #d4b090 0%, #b89878 50%, #d4b090 100%); border-radius:2px; animation: pe-scroll 10s ease-in-out infinite; }
.scn-political-economy-remarks .books { position:absolute; bottom:18%; right:15%; width:20px; height:50px; background: linear-gradient(180deg, #7a4a30 0%, #4a2a18 100%); border-radius:2px; box-shadow: 4px 0 0 #5a3a20, 8px 0 0 #6a3a28; animation: pe-books-shift 12s ease-in-out infinite; }
.scn-political-economy-remarks .scholar { position:absolute; bottom:28%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-scholar-breathe 4s ease-in-out infinite; }
@keyframes pe-lamp-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pe-glow-pulse { 0% { opacity:0.6; transform:translate(-50%,0) scale(0.95); } 50% { opacity:1; transform:translate(-50%,0) scale(1.05); } 100% { opacity:0.7; transform:translate(-50%,0) scale(0.98); } }
@keyframes pe-scroll { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pe-books-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pe-scholar-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

/* Scene: humor-and-meaning */
.scn-humor-and-meaning { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a28 50%, #2a1a0a 100%), radial-gradient(ellipse at 30% 50%, #5a4a38 0%, transparent 60%); }
.scn-humor-and-meaning .speaker { position:absolute; bottom:30%; left:25%; width:30px; 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: hm-speaker 3s ease-in-out infinite; }
.scn-humor-and-meaning .pig { position:absolute; bottom:22%; left:65%; width:40px; height:28px; background: radial-gradient(circle at 40% 40%, #b87878 0%, #a06868 40%, #705050 100%); border-radius:50% 50% 30% 30%; animation: hm-pig-bounce 2s ease-in-out infinite alternate; }
.scn-humor-and-meaning .dog { position:absolute; bottom:25%; left:55%; width:30px; height:35px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: hm-dog-wag 1.5s ease-in-out infinite; }
.scn-humor-and-meaning .couch { position:absolute; bottom:10%; left:40%; width:70px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.5); }
.scn-humor-and-meaning .shine { position:absolute; bottom:40%; left:30%; width:100px; height:60px; background: radial-gradient(circle, #e0c080 0%, #c09850 30%, transparent 70%); opacity:0.5; animation: hm-shine-pulse 3s ease-in-out infinite alternate; }
.scn-humor-and-meaning .mist { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(80,60,40,0.3) 100%); mix-blend-mode: overlay; animation: hm-mist-drift 8s ease-in-out infinite; }
@keyframes hm-speaker { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(10deg); } 50% { transform: translateX(-2px) rotate(-5deg); } 75% { transform: translateX(3px) rotate(8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm-pig-bounce { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hm-dog-wag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes hm-shine-pulse { 0% { opacity:0.3; transform:scale(0.95); } 50% { opacity:0.6; transform:scale(1.05); } 100% { opacity:0.4; transform:scale(0.98); } }
@keyframes hm-mist-drift { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

/* Scene: truth-and-falsehood */
.scn-truth-and-falsehood { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #1a0a2a 100%), radial-gradient(ellipse at 50% 50%, #3a2a4e 0%, transparent 70%); }
.scn-truth-and-falsehood .pedestal { position:absolute; bottom:15%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 0 20px rgba(100,80,140,0.3); }
.scn-truth-and-falsehood .truth-figure { position:absolute; bottom:40%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #c8b090 0%, #a08070 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-truth 6s ease-in-out infinite; }
.scn-truth-and-falsehood .falsehood-figure { position:absolute; bottom:40%; left:65%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-falsehood 6s ease-in-out infinite reverse; }
.scn-truth-and-falsehood .veil { position:absolute; bottom:30%; left:50%; width:60px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,180,180,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: tf-veil 8s ease-in-out infinite; }
.scn-truth-and-falsehood .base-glow { position:absolute; bottom:15%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(150,120,200,0.4) 0%, transparent 70%); animation: tf-glow 4s ease-in-out infinite alternate; }
@keyframes tf-truth { 0% { transform: translateY(0) scaleY(1); opacity:0.8; } 50% { transform: translateY(-2px) scaleY(1.03); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.8; } }
@keyframes tf-falsehood { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 50% { transform: translateY(2px) scaleY(0.97); opacity:0.3; } 100% { transform: translateY(0) scaleY(1); opacity:0.6; } }
@keyframes tf-veil { 0% { width:60px; opacity:0.3; } 50% { width:70px; opacity:0.5; } 100% { width:60px; opacity:0.3; } }
@keyframes tf-glow { 0% { opacity:0.2; transform:translateX(-50%) scaleY(1); } 50% { opacity:0.5; transform:translateX(-50%) scaleY(1.3); } 100% { opacity:0.3; transform:translateX(-50%) scaleY(1); } }

/* Scene: greek-religion-history */
.scn-greek-religion-history { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%); }
.scn-greek-religion-history .sky-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); animation: gr-sky 12s ease-in-out infinite alternate; }
.scn-greek-religion-history .col-left { position:absolute; bottom:20%; left:20%; width:14px; height:60px; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%); border-radius:4px; box-shadow: inset -4px 0 0 rgba(0,0,0,0.3); animation: gr-col 8s ease-in-out infinite; }
.scn-greek-religion-history .col-right { position:absolute; bottom:20%; right:20%; width:14px; height:60px; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%); border-radius:4px; box-shadow: inset 4px 0 0 rgba(0,0,0,0.3); animation: gr-col 8s ease-in-out infinite reverse; }
.scn-greek-religion-history .statue { position:absolute; bottom:30%; left:50%; width:20px; height:66px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a890 0%, #908070 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 16px rgba(180,160,130,0.3); animation: gr-statue 10s ease-in-out infinite; }
.scn-greek-religion-history .altar { position:absolute; bottom:15%; left:50%; width:44px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #7a7060 0%, #5a5040 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-greek-religion-history .scroll-gr { position:absolute; bottom:22%; left:50%; width:10px; height:8px; transform:translateX(-50%); background: linear-gradient(90deg, #c8b898 0%, #a89878 50%, #c8b898 100%); border-radius:2px; animation: gr-scroll 14s ease-in-out infinite; }
@keyframes gr-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes gr-col { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gr-statue { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes gr-scroll { 0% { width:10px; height:8px; } 50% { width:12px; height:9px; } 100% { width:10px; height:8px; } }

.scn-description-of-old-age {
  background: linear-gradient(180deg, #2a1e12 0%, #3d2b1a 40%, #1a1108 100%), radial-gradient(ellipse at 60% 80%, #6b4a2e 0%, transparent 60%);
}
.scn-description-of-old-age .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, #4a3320 0%, #1a1108 100%); animation: doa-room 8s ease-in-out infinite alternate;
}
.scn-description-of-old-age .hearth {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 60px; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-description-of-old-age .fire {
  position: absolute; bottom: 18%; left: 36%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 100%, #ff9a3e 0%, #d05a1a 50%, #6a2a0a 100%); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: doa-fire 2s ease-in-out infinite alternate, doa-fire-glow 3s ease-in-out infinite;
}
.scn-description-of-old-age .armchair {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-description-of-old-age .figure {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2518 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: doa-breathe 4s ease-in-out infinite;
}
.scn-description-of-old-age .scroll {
  position: absolute; bottom: 28%; left: 46%; width: 40px; height: 12px; background: linear-gradient(90deg, #c8a87a 0%, #e8c89a 50%, #c8a87a 100%); border-radius: 20% / 50%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: doa-scroll 6s ease-in-out infinite;
}
.scn-description-of-old-age .lamp-glow {
  position: absolute; bottom: 25%; left: 60%; width: 50px; height: 50px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.3) 40%, transparent 80%); border-radius: 50%; animation: doa-glow 5s ease-in-out infinite alternate;
}
@keyframes doa-room {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes doa-fire {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(.9) translateY(1px); }
}
@keyframes doa-fire-glow {
  0% { box-shadow: 0 0 20px 6px #ff7a2e, 0 0 40px 12px rgba(255,122,46,.4); } 50% { box-shadow: 0 0 30px 10px #ff9a3e, 0 0 60px 20px rgba(255,154,62,.5); } 100% { box-shadow: 0 0 25px 8px #ff7a2e, 0 0 50px 15px rgba(255,122,46,.4); }
}
@keyframes doa-breathe {
  0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-1px); }
}
@keyframes doa-scroll {
  0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.05); }
}
@keyframes doa-glow {
  0% { opacity: .6; transform: scale(1); } 100% { opacity: .9; transform: scale(1.2); }
}

.scn-polemarchus-definition {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b0 40%, #c8b898 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-polemarchus-definition .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c8a8 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); animation: pd-wall 10s ease-in-out infinite alternate;
}
.scn-polemarchus-definition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2);
}
.scn-polemarchus-definition .window {
  position: absolute; top: 10%; left: 15%; width: 100px; height: 140px; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 100%); border-radius: 10px; box-shadow: inset 0 0 10px rgba(100,150,200,.5), 0 0 30px rgba(180,220,255,.3); animation: pd-window 6s ease-in-out infinite;
}
.scn-polemarchus-definition .table {
  position: absolute; bottom: 22%; left: 35%; width: 140px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-polemarchus-definition .sword.left {
  position: absolute; bottom: 25%; left: 38%; width: 6px; height: 50px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom; animation: pd-sword 8s ease-in-out infinite;
}
.scn-polemarchus-definition .sword.right {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 50px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(25deg); transform-origin: bottom; animation: pd-sword 8s ease-in-out infinite reverse;
}
.scn-polemarchus-definition .figure-seated {
  position: absolute; bottom: 23%; left: 30%; width: 35px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: pd-sit 5s ease-in-out infinite;
}
.scn-polemarchus-definition .figure-standing {
  position: absolute; bottom: 23%; left: 60%; width: 35px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pd-stand 7s ease-in-out infinite;
}
@keyframes pd-wall {
  0% { background: linear-gradient(180deg, #e8dcc0, #d4c8a8); } 50% { background: linear-gradient(180deg, #f0e4c8, #dcccb0); } 100% { background: linear-gradient(180deg, #e8dcc0, #d4c8a8); }
}
@keyframes pd-window {
  0%,100% { opacity: .8; } 50% { opacity: 1; }
}
@keyframes pd-sword {
  0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg); }
}
@keyframes pd-sit {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes pd-stand {
  0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); }
}

.scn-first-stage-morality {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221a 40%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #3a2e22 0%, transparent 70%);
}
.scn-first-stage-morality .dim-wall {
  position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #2a221a 0%, #1e1812 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-first-stage-morality .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 30px; background: linear-gradient(180deg, #a08050 0%, #6a4a20 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px rgba(160,128,80,.4);
}
.scn-first-stage-morality .lamp-light {
  position: absolute; bottom: 35%; left: 55%; width: 100px; height: 100px; background: radial-gradient(circle, #d0a050 0%, rgba(208,160,80,.2) 40%, transparent 80%); border-radius: 50%; animation: fsm-light 6s ease-in-out infinite alternate;
}
.scn-first-stage-morality .desk {
  position: absolute; bottom: 15%; left: 25%; width: 200px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-first-stage-morality .book {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5%; box-shadow: 2px 2px 6px rgba(0,0,0,.5); transform: rotate(2deg); animation: fsm-book 8s ease-in-out infinite;
}
.scn-first-stage-morality .page {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 50px; background: linear-gradient(180deg, #c8b898 0%, #e8d8b8 100%); border-radius: 2px; transform: rotate(3deg); animation: fsm-page 10s ease-in-out infinite;
}
.scn-first-stage-morality .hand {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: fsm-hand 5s ease-in-out infinite;
}
@keyframes fsm-light {
  0% { transform: scale(1); opacity: .6; } 50% { transform: scale(1.15); opacity: .9; } 100% { transform: scale(.95); opacity: .7; }
}
@keyframes fsm-book {
  0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); }
}
@keyframes fsm-page {
  0%,100% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); }
}
@keyframes fsm-hand {
  0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-5px); }
}

.scn-thrasymachus-rushes-in {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a09080 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-thrasymachus-rushes-in .hall {
  position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.15); animation: tri-hall 4s ease-in-out infinite alternate;
}
.scn-thrasymachus-rushes-in .door-frame {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 180px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-thrasymachus-rushes-in .door-open {
  position: absolute; top: 5%; left: 62%; width: 70px; height: 170px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 5px; transform-origin: left; animation: tri-door .8s ease-in-out infinite alternate;
}
.scn-thrasymachus-rushes-in .figure-rush {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: tri-rush 1s ease-in-out infinite;
}
.scn-thrasymachus-rushes-in .arm-outstretched {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform-origin: left; animation: tri-arm .5s ease-in-out infinite alternate;
}
.scn-thrasymachus-rushes-in .shadow-angular {
  position: absolute; bottom: 12%; left: 30%; width: 120px; height: 40px; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%); transform: skewX(-20deg); animation: tri-shadow 2s ease-in-out infinite;
}
.scn-thrasymachus-rushes-in .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #b8a898 0%, #908070 100%); border-radius: 10% 10% 0 0;
}
@keyframes tri-hall {
  0% { background: linear-gradient(180deg, #d8c8b8, #b8a898); } 100% { background: linear-gradient(180deg, #e0d0c0, #c0b0a0); }
}
@keyframes tri-door {
  0% { transform: rotate(0deg); } 100% { transform: rotate(-15deg); }
}
@keyframes tri-rush {
  0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-5px) rotate(5deg); } 50% { transform: translateX(20px) translateY(0) rotate(0deg); } 75% { transform: translateX(30px) translateY(-5px) rotate(-5deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes tri-arm {
  0% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); }
}
@keyframes tri-shadow {
  0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .4; }
}

/* Scene: socrates-character-summary (calm, dim interior) */
.scn-socrates-character-summary {
  background: linear-gradient(180deg, #2a241d 0%, #3c3228 40%, #4a3d30 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-socrates-character-summary .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a241d 0%, #1f1a15 100%); animation: scs-bg 12s ease-in-out infinite alternate;
}
.scn-socrates-character-summary .wall {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #4a3d30 0%, #3a2e24 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
}
.scn-socrates-character-summary .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-socrates-character-summary .figure {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a241d 0%, #1a1510 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scs-figure 5s ease-in-out infinite;
}
.scn-socrates-character-summary .lamp {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 16px; background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 10px 4px #b08840; animation: scs-lamp 3s ease-in-out infinite alternate;
}
.scn-socrates-character-summary .scroll1 {
  position: absolute; bottom: 19%; left: 50%; width: 30px; height: 6px; background: linear-gradient(90deg, #d4c4a0, #b8a880, #d4c4a0); border-radius: 50%; transform: rotate(-10deg); animation: scs-scroll 7s ease-in-out infinite;
}
.scn-socrates-character-summary .scroll2 {
  position: absolute; bottom: 19%; left: 55%; width: 25px; height: 5px; background: linear-gradient(90deg, #c8b890, #a89870, #c8b890); border-radius: 50%; transform: rotate(5deg); animation: scs-scroll 7s ease-in-out infinite 1s;
}
.scn-socrates-character-summary .glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; animation: scs-glow 3s ease-in-out infinite alternate;
}
@keyframes scs-bg { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes scs-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(0.5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } }
@keyframes scs-lamp { 0%,100% { box-shadow: 0 0 8px 3px #b08840; opacity:.8 } 50% { box-shadow: 0 0 14px 6px #d4a860; opacity:1 } }
@keyframes scs-scroll { 0%,100% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-2px) rotate(-8deg) } }
@keyframes scs-glow { 0%,100% { transform: translate(-50%, -50%) scale(1); opacity:.6 } 50% { transform: translate(-50%, -50%) scale(1.1); opacity:.8 } }

/* Scene: analysis-of-republic (calm, dim interior) */
.scn-analysis-of-republic {
  background: linear-gradient(180deg, #1f1f2e 0%, #2c2a3a 40%, #3a374a 100%), radial-gradient(ellipse at 50% 70%, #3a374a 0%, transparent 70%);
}
.scn-analysis-of-republic .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1f2e 0%, #151524 100%); animation: ar-bg 15s ease-in-out infinite alternate;
}
.scn-analysis-of-republic .bookshelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #2c2a3a 0%, #1f1f2e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); display: flex; justify-content: space-around; align-items: flex-end; padding: 0 10%;
}
.scn-analysis-of-republic .open-book {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%); border-radius: 4% 4% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: ar-book 8s ease-in-out infinite;
}
.scn-analysis-of-republic .lines {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 30px; transform: translateX(-50%); background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 2px, transparent 2px, transparent 6px); border-radius: 2%; animation: ar-lines 6s ease-in-out infinite alternate;
}
.scn-analysis-of-republic .quill {
  position: absolute; bottom: 25%; left: 60%; width: 4px; height: 24px; background: linear-gradient(180deg, #b8b0a0 0%, #8a8070 100%); border-radius: 50% 50% 10% 10%; transform: rotate(15deg); transform-origin: bottom; animation: ar-quill 4s ease-in-out infinite;
}
.scn-analysis-of-republic .candle {
  position: absolute; bottom: 20%; left: 30%; width: 6px; height: 18px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a860 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px #d4a860; animation: ar-candle 3s ease-in-out infinite alternate;
}
@keyframes ar-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ar-book { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes ar-lines { 0%,100% { opacity:.6; transform: translateX(-50%) } 50% { opacity:.9; transform: translateX(-50%) translateY(1px) } }
@keyframes ar-quill { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes ar-candle { 0%,100% { box-shadow: 0 0 6px 2px #d4a860; opacity:.8 } 50% { box-shadow: 0 0 12px 4px #e8c880; opacity:1 } }

/* Scene: opening-scene-piraeus (warm, sunlit) */
.scn-opening-scene-piraeus {
  background: linear-gradient(180deg, #ffd8a0 0%, #f0b070 40%, #d08850 100%), radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 70%);
}
.scn-opening-scene-piraeus .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffd8a0 0%, #e8a060 100%); animation: osp-sky 20s ease-in-out infinite alternate;
}
.scn-opening-scene-piraeus .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #c08050 0%, #a06840 50%, #805030 100%); animation: osp-sea 12s ease-in-out infinite;
}
.scn-opening-scene-piraeus .columns {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 30%; background: repeating-linear-gradient(90deg, #d4b890 0px, #d4b890 12px, transparent 12px, transparent 20px); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3); animation: osp-columns 8s ease-in-out infinite alternate;
}
.scn-opening-scene-piraeus .torch-left {
  position: absolute; bottom: 35%; left: 15%; width: 6px; height: 20px; background: linear-gradient(180deg, #e8a060 0%, #b07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #e8a060; animation: osp-torch 2s ease-in-out infinite alternate;
}
.scn-opening-scene-piraeus .torch-right {
  position: absolute; bottom: 35%; right: 15%; width: 6px; height: 20px; background: linear-gradient(180deg, #e8a060 0%, #b07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #e8a060; animation: osp-torch 2s ease-in-out infinite alternate .5s;
}
.scn-opening-scene-piraeus .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 14px; height: 32px; background: linear-gradient(180deg, #2a241d 0%, #1a1510 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom; animation: osp-figure 6s ease-in-out infinite;
}
.scn-opening-scene-piraeus .ships {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 30% 30% 0 0; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%); animation: osp-ships 15s linear infinite;
}
@keyframes osp-sky { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes osp-sea { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes osp-columns { 0%,100% { opacity:.85 } 50% { opacity:1; transform: scaleY(1.02) } }
@keyframes osp-torch { 0%,100% { box-shadow: 0 0 8px 2px #e8a060; opacity:.8 } 50% { box-shadow: 0 0 18px 6px #ffc080; opacity:1 } }
@keyframes osp-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes osp-ships { 0% { transform: translateX(-30px) } 100% { transform: translateX(30px) } }

/* Scene: narrative-framework (calm, dim interior) */
.scn-narrative-framework {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #3a3a50 100%), radial-gradient(ellipse at 50% 60%, #3a3a50 0%, transparent 70%);
}
.scn-narrative-framework .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #101020 100%); animation: nf-bg 18s ease-in-out infinite alternate;
}
.scn-narrative-framework .stage {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-narrative-framework .podium {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a4a60 0%, #3a3a50 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-narrative-framework .speaker {
  position: absolute; bottom: 35%; left: 50%; width: 18px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom; animation: nf-speaker 5s ease-in-out infinite;
}
.scn-narrative-framework .audience-left {
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nf-audience 7s ease-in-out infinite;
}
.scn-narrative-framework .audience-right {
  position: absolute; bottom: 20%; right: 10%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nf-audience 7s ease-in-out infinite 1s;
}
.scn-narrative-framework .lamp {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 14px; background: linear-gradient(180deg, #c8a860 0%, #8a6a30 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 10px 3px #b08840; animation: nf-lamp 3s ease-in-out infinite alternate;
}
@keyframes nf-bg { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes nf-speaker { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } }
@keyframes nf-audience { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes nf-lamp { 0%,100% { box-shadow: 0 0 6px 2px #b08840; opacity:.8 } 50% { box-shadow: 0 0 14px 5px #d4a860; opacity:1 } }

.scn-proof-required {
  background: 
    linear-gradient(135deg, #1f1a16 0%, #2c241e 40%, #3d3228 100%),
    radial-gradient(circle at 30% 50%, #4a3c30 0%, transparent 70%);
}
.scn-proof-required .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  animation: pr-bg 20s ease-in-out infinite alternate;
}
.scn-proof-required .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(135deg, #4a3c30 0%, #362a20 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -2px 8px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.5);
}
.scn-proof-required .lamp {
  position: absolute; bottom: 38%; left: 28%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: pr-lamp 4s ease-in-out infinite;
}
.scn-proof-required .figure {
  position: absolute; bottom: 22%; left: 35%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure 6s ease-in-out infinite;
}
.scn-proof-required .book {
  position: absolute; bottom: 18%; left: 38%; width: 20%; height: 6%;
  background: linear-gradient(135deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(10deg);
  animation: pr-book 8s ease-in-out infinite alternate;
}
.scn-proof-required .hand {
  position: absolute; bottom: 22%; left: 42%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 20% 20% 60% 60% / 40% 40% 60% 60%;
  transform-origin: 50% 90%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
  animation: pr-hand 2s ease-in-out infinite;
}

@keyframes pr-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pr-lamp { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-7deg) scale(1.02); box-shadow: 0 0 20px 8px #b08040; } }
@keyframes pr-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(0.5deg); } }
@keyframes pr-book { 0% { transform: perspective(200px) rotateX(10deg); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(9deg); } }
@keyframes pr-hand { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-0.5px); } }

.scn-socrates-difficulty {
  background: 
    linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #36302a 100%),
    radial-gradient(ellipse at 50% 80%, #383028 0%, transparent 70%);
}
.scn-socrates-difficulty .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #241e1a 0%, #181410 100%);
  animation: sd-bg 25s ease-in-out infinite alternate;
}
.scn-socrates-difficulty .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-socrates-difficulty .wall {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #322825 0%, #1e1816 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.4);
}
.scn-socrates-difficulty .chair {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3e34 0%, #342c24 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-socrates-difficulty .figure {
  position: absolute; bottom: 10%; left: 32%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 8s ease-in-out infinite;
}
.scn-socrates-difficulty .candle {
  position: absolute; bottom: 18%; left: 20%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
}
.scn-socrates-difficulty .flame {
  position: absolute; bottom: 26%; left: 20.5%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,.6), 0 0 40px 16px rgba(255,208,128,.3);
  animation: sd-flame 2s ease-in-out infinite alternate;
}

@keyframes sd-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes sd-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sd-flame { 0% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1.05); opacity: 0.9; } }

.scn-enquiry-serious {
  background: 
    linear-gradient(180deg, #1f1a16 0%, #2c241e 40%, #3a3028 100%),
    radial-gradient(ellipse at 60% 40%, #4a3c30 0%, transparent 70%);
}
.scn-enquiry-serious .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221c 0%, #181410 100%);
  animation: es-bg 22s ease-in-out infinite alternate;
}
.scn-enquiry-serious .table {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(135deg, #3a2e24 0%, #261e16 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 -2px 8px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.4);
}
.scn-enquiry-serious .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-figureL 10s ease-in-out infinite;
}
.scn-enquiry-serious .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-figureR 10s ease-in-out infinite reverse;
}
.scn-enquiry-serious .scroll {
  position: absolute; bottom: 16%; left: 45%; width: 8%; height: 4%;
  background: linear-gradient(135deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(10deg);
  animation: es-scroll 14s ease-in-out infinite alternate;
}
.scn-enquiry-serious .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
  animation: es-lamp 6s ease-in-out infinite;
}

@keyframes es-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes es-figureL { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes es-figureR { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes es-scroll { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes es-lamp { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); box-shadow: 0 0 16px 6px #b08040; } }

.scn-analogy-accepted {
  background: 
    linear-gradient(180deg, #1e1814 0%, #2c241e 40%, #3d3228 100%),
    radial-gradient(circle at 70% 50%, #4a3c30 0%, transparent 70%);
}
.scn-analogy-accepted .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221c 0%, #181410 100%);
  animation: aa-bg 18s ease-in-out infinite alternate;
}
.scn-analogy-accepted .diagram {
  position: absolute; top: 15%; right: 15%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #4a3a28 0%, #362a20 100%);
  border-radius: 8%;
  box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.4);
  transform: perspective(300px) rotateY(-10deg);
  animation: aa-diagram 12s ease-in-out infinite;
}
.scn-analogy-accepted .hand-pointing {
  position: absolute; bottom: 25%; right: 40%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 60% 60%;
  transform-origin: 50% 90%;
  animation: aa-hand 3s ease-in-out infinite;
}
.scn-analogy-accepted .pointer-stick {
  position: absolute; bottom: 32%; right: 42%; width: 2%; height: 22%;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 20%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: aa-stick 4s ease-in-out infinite alternate;
}
.scn-analogy-accepted .light-source {
  position: absolute; top: 10%; left: 10%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,.5), 0 0 60px 30px rgba(255,208,128,.2);
  animation: aa-light 6s ease-in-out infinite alternate;
}
.scn-analogy-accepted .shadow {
  position: absolute; bottom: 6%; right: 20%; width: 20%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: aa-shadow 8s ease-in-out infinite;
}

@keyframes aa-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aa-diagram { 0% { transform: perspective(300px) rotateY(-10deg); } 50% { transform: perspective(300px) rotateY(-8deg) scale(1.01); } 100% { transform: perspective(300px) rotateY(-12deg); } }
@keyframes aa-hand { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-3deg) translateY(-1px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-0.5px); } }
@keyframes aa-stick { 0% { transform: rotate(30deg); } 50% { transform: rotate(28deg); } 100% { transform: rotate(32deg); } }
@keyframes aa-light { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes aa-shadow { 0%,100% { opacity: 0.6; transform: rotate(-10deg) scaleY(1); } 50% { opacity: 0.8; transform: rotate(-12deg) scaleY(1.05); } }

/* scene 1: socrates-defends (calm, dim) */
.scn-socrates-defends {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1d10 0%, transparent 50%),
    linear-gradient(180deg, #0f0a05 0%, #1c1410 30%, #2a1d10 70%, #0f0a05 100%);
}
.scn-socrates-defends .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1d10 0%, #1c1410 100%);
  animation: sd-wall 20s ease-in-out infinite alternate;
}
.scn-socrates-defends .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c1410 0%, #0f0a05 100%);
}
.scn-socrates-defends .lamp-glow {
  position: absolute; bottom: 40%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d08030 0%, #b06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,100,30,0.3);
  animation: sd-glow 6s ease-in-out infinite alternate;
}
.scn-socrates-defends .lamp-base {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1005 100%);
  border-radius: 4px;
}
.scn-socrates-defends .figure-soc {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0f0a05 0%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 8s ease-in-out infinite;
}
.scn-socrates-defends .figure-thra {
  position: absolute; bottom: 22%; right: 38%; width: 28px; height: 74px;
  background: linear-gradient(180deg, #1c1410 0%, #0f0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 10s ease-in-out infinite reverse;
}
.scn-socrates-defends .shadow-soc {
  position: absolute; bottom: 18%; left: 34%; width: 50px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: sd-shadow 8s ease-in-out infinite;
}
.scn-socrates-defends .shadow-thra {
  position: absolute; bottom: 18%; right: 34%; width: 55px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: sd-shadow 10s ease-in-out infinite reverse;
}
.scn-socrates-defends .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 42% 38%, rgba(200,150,80,0.1) 0%, transparent 60%);
  animation: sd-dust 12s ease-in-out infinite;
}
@keyframes sd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sd-glow {
  0% { transform: scale(0.9) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(0deg); opacity: 0.9; }
}
@keyframes sd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sd-shadow {
  0% { transform: scaleX(0.95) translateX(0); }
  50% { transform: scaleX(1.05) translateX(2px); }
  100% { transform: scaleX(0.95) translateX(0); }
}
@keyframes sd-dust {
  0% { background-position: 0 0; }
  50% { background-position: 2% -1%; }
  100% { background-position: 0 0; }
}

/* scene 2: comparison-denied (tense, dim) */
.scn-comparison-denied {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1d10 0%, transparent 50%),
    linear-gradient(180deg, #0a0500 0%, #1a1008 30%, #2a1a0a 70%, #0a0500 100%);
}
.scn-comparison-denied .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  animation: cd-wall 5s ease-in-out infinite alternate;
}
.scn-comparison-denied .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0500 0%, #000 100%);
}
.scn-comparison-denied .lamp-glow {
  position: absolute; bottom: 42%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c07020 0%, #a05010 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,100,20,0.4);
  animation: cd-glow 2s ease-in-out infinite alternate;
}
.scn-comparison-denied .lamp-base {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px;
}
.scn-comparison-denied .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #0a0500 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-figure-left 4s ease-in-out infinite;
}
.scn-comparison-denied .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-figure-right 4.5s ease-in-out infinite reverse;
}
.scn-comparison-denied .arm-point {
  position: absolute; bottom: 55%; left: 38%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #1a1008 0%, #0a0500 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: cd-arm 3s ease-in-out infinite;
}
.scn-comparison-denied .shadow-left {
  position: absolute; bottom: 16%; left: 26%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: cd-shadow 4s ease-in-out infinite;
}
.scn-comparison-denied .shadow-right {
  position: absolute; bottom: 16%; right: 26%; width: 45px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: cd-shadow 4.5s ease-in-out infinite reverse;
}
@keyframes cd-wall {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes cd-glow {
  0% { transform: scale(0.85) rotate(-5deg); opacity: 0.7; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(0deg); opacity: 0.8; }
}
@keyframes cd-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cd-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cd-arm {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(10deg) scaleX(1); }
}
@keyframes cd-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}

/* scene 3: thrasymachus-offers-answer (tense, dim) */
.scn-thrasymachus-offers-answer {
  background:
    radial-gradient(ellipse at 40% 55%, #2a1a0a 0%, transparent 50%),
    linear-gradient(180deg, #0f0a00 0%, #1a1005 30%, #2a1a0a 70%, #0f0a00 100%);
}
.scn-thrasymachus-offers-answer .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1005 0%, #0f0a00 100%);
  animation: to-wall 6s ease-in-out infinite alternate;
}
.scn-thrasymachus-offers-answer .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0f0a00 0%, #000 100%);
}
.scn-thrasymachus-offers-answer .lamp-glow {
  position: absolute; bottom: 40%; left: 45%; width: 55px; height: 55px;
  background: radial-gradient(circle, #c07020 0%, #a05010 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 20px rgba(200,100,20,0.35);
  animation: to-glow 2.5s ease-in-out infinite alternate;
}
.scn-thrasymachus-offers-answer .lamp-base {
  position: absolute; bottom: 36%; left: 45%; width: 18px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 3px;
}
.scn-thrasymachus-offers-answer .figure-thra {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #0f0a00 0%, #1a1005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: to-figure-thra 5s ease-in-out infinite;
}
.scn-thrasymachus-offers-answer .arm-out {
  position: absolute; bottom: 55%; left: 36%; width: 50px; height: 7px;
  background: linear-gradient(90deg, #1a1005 0%, #0f0a00 100%);
  border-radius: 4px;
  transform-origin: right center;
  animation: to-arm 3s ease-in-out infinite;
}
.scn-thrasymachus-offers-answer .figure-soc {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1005 0%, #0f0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: to-figure-soc 5.5s ease-in-out infinite reverse;
}
.scn-thrasymachus-offers-answer .shadow-thra {
  position: absolute; bottom: 16%; left: 26%; width: 45px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: to-shadow 5s ease-in-out infinite;
}
.scn-thrasymachus-offers-answer .shadow-soc {
  position: absolute; bottom: 16%; right: 26%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: to-shadow 5.5s ease-in-out infinite reverse;
}
@keyframes to-wall {
  0% { opacity: 0.85; }
  100% { opacity: 1; }
}
@keyframes to-glow {
  0% { transform: scale(0.9) rotate(-3deg); opacity: 0.75; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(0deg); opacity: 0.85; }
}
@keyframes to-figure-thra {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes to-figure-soc {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes to-arm {
  0% { transform: rotate(5deg) scaleX(0.9); }
  50% { transform: rotate(-20deg) scaleX(1.2); }
  100% { transform: rotate(5deg) scaleX(0.9); }
}
@keyframes to-shadow {
  0% { transform: scaleX(0.95) translateX(0); }
  50% { transform: scaleX(1.1) translateX(3px); }
  100% { transform: scaleX(0.95) translateX(0); }
}

/* scene 4: socrates-fears (tense, dim) */
.scn-socrates-fears {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1d10 0%, transparent 50%),
    linear-gradient(180deg, #0a0500 0%, #1a1008 30%, #2a1a0a 70%, #0a0500 100%);
}
.scn-socrates-fears .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  animation: sf-wall 4s ease-in-out infinite alternate;
}
.scn-socrates-fears .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0500 0%, #000 100%);
}
.scn-socrates-fears .lamp-glow {
  position: absolute; bottom: 42%; left: 55%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c07020 0%, #a05010 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,100,20,0.35);
  animation: sf-glow 2s ease-in-out infinite alternate;
}
.scn-socrates-fears .lamp-base {
  position: absolute; bottom: 38%; left: 55%; width: 16px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px;
}
.scn-socrates-fears .figure-soc {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0a0500 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sf-soc 4s ease-in-out infinite;
}
.scn-socrates-fears .arm-defensive {
  position: absolute; bottom: 50%; left: 34%; width: 35px; height: 6px;
  background: linear-gradient(90deg, #1a1008 0%, #0a0500 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: sf-arm 2.5s ease-in-out infinite;
}
.scn-socrates-fears .figure-thra {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sf-thra 4.5s ease-in-out infinite reverse;
}
.scn-socrates-fears .shadow-soc {
  position: absolute; bottom: 16%; left: 26%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: sf-shadow 4s ease-in-out infinite;
}
.scn-socrates-fears .shadow-thra {
  position: absolute; bottom: 16%; right: 26%; width: 45px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: sf-shadow 4.5s ease-in-out infinite reverse;
}
@keyframes sf-wall {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes sf-glow {
  0% { transform: scale(0.85) rotate(-4deg); opacity: 0.7; }
  50% { transform: scale(1.1) rotate(4deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(0deg); opacity: 0.8; }
}
@keyframes sf-soc {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg) scaleX(0.95); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sf-thra {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg) scaleX(1.05); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sf-arm {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes sf-shadow {
  0% { transform: scaleX(0.95); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}

/* more-bishop-of-utopia */
.scn-more-bishop-of-utopia {
  background:
    linear-gradient(135deg, #1a1a1a 0%, #2a1a12 20%, #1a1a1a 40%, #2a1a12 60%, #1a1a1a 80%, #2a1a12 100%),
    radial-gradient(ellipse at 50% 0%, #2a1a12 0%, transparent 70%);
}
.scn-more-bishop-of-utopia .back-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a12 100%);
  animation: mb-wave 8s ease-in-out infinite alternate;
}
.scn-more-bishop-of-utopia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2218 0%, #1a120e 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
}
.scn-more-bishop-of-utopia .candle {
  position: absolute; bottom: 45%; left: 30%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px 2px 1px 1px;
}
.scn-more-bishop-of-utopia .mitre {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform: translateX(-50%) rotate(-2deg);
  animation: mb-mitre 4s ease-in-out infinite;
}
.scn-more-bishop-of-utopia .staff {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2218 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  animation: mb-staff 5s ease-in-out infinite;
}
.scn-more-bishop-of-utopia .figure {
  position: absolute; bottom: 35%; left: 45%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure 3s ease-in-out infinite;
}
.scn-more-bishop-of-utopia .halo {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,160,96,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: mb-halo 4s ease-in-out infinite alternate;
}
.scn-more-bishop-of-utopia .shadow {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: mb-shadow 3s ease-in-out infinite;
}
@keyframes mb-wave { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mb-mitre { 0% { transform: translateX(-50%) rotate(-3deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-3deg) scale(1) } }
@keyframes mb-staff { 0% { transform: rotate(6deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(0) } }
@keyframes mb-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mb-halo { 0% { opacity: 0.6; filter: blur(5px) } 50% { opacity: 1; filter: blur(8px) } 100% { opacity: 0.6; filter: blur(5px) } }
@keyframes mb-shadow { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(10px) } 100% { transform: scale(1) translateX(0) } }

/* more-secret-lost */
.scn-more-secret-lost {
  background:
    linear-gradient(160deg, #1e1e1e 0%, #2a1a12 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-more-secret-lost .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a12 100%);
  animation: ms-room 12s ease-in-out infinite alternate;
}
.scn-more-secret-lost .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-more-secret-lost .map-roll {
  position: absolute; bottom: 32%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #c8b080 0%, #a08050 100%);
  border-radius: 10px;
  transform: rotate(-5deg);
  animation: ms-map 5s ease-in-out infinite;
}
.scn-more-secret-lost .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 65px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-fig-left 4s ease-in-out infinite;
}
.scn-more-secret-lost .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 35px; height: 65px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-fig-right 4s ease-in-out infinite;
}
.scn-more-secret-lost .servant {
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 55px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a12 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-servant 6s ease-in-out infinite;
}
.scn-more-secret-lost .distraction {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ms-distract 3s ease-in-out infinite;
}
.scn-more-secret-lost .glow {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(180,120,60,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ms-glow 7s ease-in-out infinite alternate;
}
@keyframes ms-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ms-map { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes ms-fig-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(5px) rotate(-3deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-fig-right { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-10px) rotate(-4deg) } 50% { transform: translateX(-5px) rotate(2deg) } 75% { transform: translateX(-15px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-servant { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes ms-distract { 0% { transform: translateX(-50%) scale(1); opacity: 0.8 } 50% { transform: translateX(-50%) scale(1.5); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.8 } }
@keyframes ms-glow { 0% { opacity: 0.3; filter: blur(6px) } 50% { opacity: 0.7; filter: blur(12px) } 100% { opacity: 0.3; filter: blur(6px) } }

/* more-originality */
.scn-more-originality {
  background:
    linear-gradient(135deg, #2a1a12 0%, #3a2a1a 30%, #1a120e 70%, #2a1a12 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-more-originality .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a120e 0%, #2a1a12 40%, #3a2a1a 100%);
  animation: mo-chamber 10s ease-in-out infinite alternate;
}
.scn-more-originality .pillars {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  opacity: 0.6;
  animation: mo-pillars 15s ease-in-out infinite;
}
.scn-more-originality .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #c8b080 0%, #a08050 100%);
  border-radius: 5px;
  transform: translateX(-50%) rotate(2deg);
  animation: mo-scroll 4s ease-in-out infinite;
}
.scn-more-originality .figure-thinker {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.95);
  animation: mo-thinker 5s ease-in-out infinite;
}
.scn-more-originality .lamp {
  position: absolute; bottom: 45%; left: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d4a060 0%, #8a6030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(212,160,96,0.5);
  animation: mo-lamp 3s ease-in-out infinite alternate;
}
.scn-more-originality .glow-orig {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(212,160,96,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mo-glow 6s ease-in-out infinite alternate;
}
.scn-more-originality .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: mo-shadows 8s ease-in-out infinite;
}
@keyframes mo-chamber { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mo-pillars { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mo-scroll { 0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) translateY(0) } }
@keyframes mo-thinker { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(5deg) } 50% { transform: translateX(-52%) rotate(-3deg) } 75% { transform: translateX(-49%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes mo-lamp { 0% { opacity: 0.7; filter: blur(2px) } 50% { opacity: 1; filter: blur(4px) } 100% { opacity: 0.7; filter: blur(2px) } }
@keyframes mo-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(1) } }
@keyframes mo-shadows { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* more-punishment-example */
.scn-more-punishment-example {
  background:
    linear-gradient(135deg, #1a1a1a 0%, #2a1a12 50%, #1a120e 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a12 0%, transparent 80%);
}
.scn-more-punishment-example .sanctuary {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a12 100%);
  animation: mp-sanctuary 14s ease-in-out infinite alternate;
}
.scn-more-punishment-example .altar {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-more-punishment-example .figure-kneeling {
  position: absolute; bottom: 20%; left: 45%; width: 35px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-kneel 6s ease-in-out infinite;
}
.scn-more-punishment-example .figure-priest {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a12 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-priest 5s ease-in-out infinite;
}
.scn-more-punishment-example .candle-punish {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: mp-candle 4s ease-in-out infinite alternate;
}
.scn-more-punishment-example .light-beam {
  position: absolute; top: 0; left: 40%; right: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(180,120,60,0.2) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: mp-beam 8s ease-in-out infinite alternate;
}
.scn-more-punishment-example .shadow-cross {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: mp-cross 7s ease-in-out infinite;
}
@keyframes mp-sanctuary { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mp-kneel { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-5px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mp-priest { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes mp-candle { 0% { opacity: 0.6; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.1) } 100% { opacity: 0.6; transform: translateX(-50%) scaleY(1) } }
@keyframes mp-beam { 0% { opacity: 0.2; transform: scaleY(1) } 50% { opacity: 0.5; transform: scaleY(1.2) } 100% { opacity: 0.2; transform: scaleY(1) } }
@keyframes mp-cross { 0% { transform: translateX(-50%) scale(1) rotate(0) } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }

/* paradoxes-of-gorgias */
.scn-paradoxes-of-gorgias {
  background: linear-gradient(180deg, #2a1e18 0%, #3a2a1e 40%, #1e1410 100%),
              radial-gradient(ellipse at 30% 80%, #4a3528 0%, transparent 70%);
}
.scn-paradoxes-of-gorgias .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%); animation: pg-wall 12s ease-in-out infinite alternate; }
.scn-paradoxes-of-gorgias .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 20px 30px rgba(0,0,0,.7); }
.scn-paradoxes-of-gorgias .table { position:absolute; bottom:18%; left:35%; width:40%; height:8%; background: linear-gradient(90deg, #5a3a20 0%, #3a2210 50%, #5a3a20 100%); border-radius: 12% 12% 8% 8% / 40% 40% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,.5); }
.scn-paradoxes-of-gorgias .scroll { position:absolute; bottom:22%; left:45%; width:30px; height:18px; background: linear-gradient(180deg, #d4b880 0%, #b89a60 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pg-scroll 6s ease-in-out infinite; }
.scn-paradoxes-of-gorgias .figure { position:absolute; bottom:12%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.6); animation: pg-figure 8s ease-in-out infinite; }
.scn-paradoxes-of-gorgias .candle { position:absolute; bottom:25%; left:38%; width:4px; height:16px; background: linear-gradient(180deg, #e8c880 0%, #c8a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #c8a060; animation: pg-candle 3s ease-in-out infinite alternate; }
.scn-paradoxes-of-gorgias .glow { position:absolute; bottom:25%; left:38%; width:10px; height:10px; background: radial-gradient(circle, #ffdd90 0%, #c8a060 60%, transparent 80%); border-radius: 50%; pointer-events: none; animation: pg-glow 3s ease-in-out infinite alternate; }
.scn-paradoxes-of-gorgias .dust { position:absolute; top:20%; left:10%; width:100%; height:80%; background: radial-gradient(ellipse at 20% 30%, rgba(255,200,120,.08) 0%, transparent 50%); animation: pg-dust 20s linear infinite; }
@keyframes pg-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pg-scroll { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes pg-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes pg-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.05) scaleX(.95); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:.9 } }
@keyframes pg-glow { 0% { opacity:.75; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(1) } }
@keyframes pg-dust { 0% { opacity:0; transform: translateY(0) } 10% { opacity:.6 } 90% { opacity:.6 } 100% { opacity:0; transform: translateY(-20px) } }

/* soul-overgrown */
.scn-soul-overgrown {
  background: linear-gradient(180deg, #1a261a 0%, #0f1a0f 40%, #0a0f0a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a2a 0%, transparent 70%);
}
.scn-soul-overgrown .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1a2a1a 0%, #0a0f0a 100%); animation: so-bg 15s ease-in-out infinite alternate; }
.scn-soul-overgrown .soul-core { position:absolute; top:50%; left:50%; width:40px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e0d8a0 0%, #a09860 60%, #504a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(160,152,96,.3); animation: so-core 4s ease-in-out infinite alternate; }
.scn-soul-overgrown .crust-1 { position:absolute; top:42%; left:44%; width:60px; height:70px; transform:translate(-50%,-50%); background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 40% 60% 50% 50% / 50% 60% 40% 50%; opacity:.7; animation: so-crust 8s ease-in-out infinite; }
.scn-soul-overgrown .crust-2 { position:absolute; top:55%; left:56%; width:50px; height:60px; transform:translate(-50%,-50%); background: linear-gradient(225deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 60% 40% 50% 50% / 50% 40% 60% 50%; opacity:.8; animation: so-crust 10s ease-in-out infinite reverse; }
.scn-soul-overgrown .crust-3 { position:absolute; top:48%; left:50%; width:70px; height:80px; transform:translate(-50%,-50%); background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 70%); border-radius: 50% 50% 50% 50%; opacity:.5; animation: so-crust 12s ease-in-out infinite; }
.scn-soul-overgrown .root { position:absolute; top:30%; left:30%; width:10px; height:80px; background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%; transform: rotate(25deg); animation: so-root 6s ease-in-out infinite alternate; }
.scn-soul-overgrown .mote { position:absolute; top:20%; left:60%; width:4px; height:4px; background: #d0c080; border-radius: 50%; box-shadow: 0 0 6px #d0c080; animation: so-mote 3s ease-in-out infinite; }
@keyframes so-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes so-core { 0% { transform: translate(-50%,-50%) scale(.95); opacity:.9 } 50% { transform: translate(-50%,-50%) scale(1.05); opacity:1 } 100% { transform: translate(-50%,-50%) scale(.95); opacity:.9 } }
@keyframes so-crust { 0%,100% { transform: translate(-50%,-50%) rotate(0deg) } 50% { transform: translate(-50%,-50%) rotate(5deg) } }
@keyframes so-root { 0% { transform: rotate(25deg) scaleY(1) } 50% { transform: rotate(30deg) scaleY(1.1) } 100% { transform: rotate(25deg) scaleY(1) } }
@keyframes so-mote { 0% { opacity:0; transform: translate(0,0) } 20% { opacity:1 } 80% { opacity:1 } 100% { opacity:0; transform: translate(10px,-15px) } }

/* vision-of-er-oriental */
.scn-vision-of-er-oriental {
  background: linear-gradient(180deg, #1a1a2e 0%, #121220 50%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-vision-of-er-oriental .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #0a0a14 0%, #000008 100%); animation: ve-bg 20s ease-in-out infinite alternate; }
.scn-vision-of-er-oriental .sphere-outer { position:absolute; top:50%; left:50%; width:200px; height:200px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 70%); border:1px solid rgba(255,200,100,.1); border-radius:50%; box-shadow: 0 0 40px rgba(255,200,100,.1); animation: ve-spin 30s linear infinite; }
.scn-vision-of-er-oriental .sphere-mid { position:absolute; top:50%; left:50%; width:140px; height:140px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,180,80,.2) 0%, transparent 60%); border:1px solid rgba(255,180,80,.15); border-radius:50%; box-shadow: 0 0 30px rgba(255,180,80,.1); animation: ve-spin 20s linear infinite reverse; }
.scn-vision-of-er-oriental .sphere-inner { position:absolute; top:50%; left:50%; width:80px; height:80px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffdd90 0%, #c8a050 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px #c8a050; animation: ve-pulse 8s ease-in-out infinite alternate; }
.scn-vision-of-er-oriental .figure { position:absolute; bottom:10%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(0,0,0,.6); animation: ve-fig 6s ease-in-out infinite; }
.scn-vision-of-er-oriental .light-ray { position:absolute; top:0; left:50%; width:4px; height:100%; background: linear-gradient(180deg, rgba(255,220,150,.6) 0%, transparent 80%); transform:translateX(-50%); opacity:.3; animation: ve-ray 5s ease-in-out infinite alternate; }
.scn-vision-of-er-oriental .star { position:absolute; top:15%; left:25%; width:3px; height:3px; background: #fff; border-radius:50%; box-shadow: 0 0 6px #ffd090; animation: ve-star 2s ease-in-out infinite alternate; }
@keyframes ve-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ve-spin { 0% { transform: translate(-50%,-50%) rotate(0deg) } 100% { transform: translate(-50%,-50%) rotate(360deg) } }
@keyframes ve-pulse { 0% { transform: translate(-50%,-50%) scale(.9); opacity:.7 } 50% { transform: translate(-50%,-50%) scale(1.1); opacity:1 } 100% { transform: translate(-50%,-50%) scale(.9); opacity:.7 } }
@keyframes ve-fig { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes ve-ray { 0% { opacity:.2; transform: translateX(-50%) scaleY(1) } 50% { opacity:.5; transform: translateX(-50%) scaleY(1.1) } 100% { opacity:.2; transform: translateX(-50%) scaleY(1) } }
@keyframes ve-star { 0% { opacity:.5; transform: scale(.5) } 100% { opacity:1; transform: scale(1.5) } }

/* astronomy-and-mythology */
.scn-astronomy-and-mythology {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a3e 0%, transparent 80%);
}
.scn-astronomy-and-mythology .bg-space { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #0a0a1a 0%, #00000a 100%); animation: as-bg 25s ease-in-out infinite alternate; }
.scn-astronomy-and-mythology .cylinder { position:absolute; top:10%; left:50%; width:120px; height:80%; transform:translateX(-50%); background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 20%, #2a2a3a 40%, #1a1a2a 60%, #2a2a3a 80%, #1a1a2a 100%); border-radius: 8% 8% 4% 4% / 5% 5% 3% 3%; box-shadow: 0 0 30px rgba(100,100,200,.1); animation: as-cyl 15s ease-in-out infinite; }
.scn-astronomy-and-mythology .spindle { position:absolute; top:0; left:50%; width:6px; height:100%; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #a08040 30%, #806030 50%, #a08040 70%, #c0a060 100%); border-radius: 30% 30% 20% 20% / 20% 20% 10% 10%; box-shadow: 0 0 20px 4px rgba(192,160,96,.2); animation: as-spin 20s linear infinite; }
.scn-astronomy-and-mythology .orbit-1 { position:absolute; top:20%; left:50%; width:160px; height:160px; transform:translate(-50%,-20%); border:1px solid rgba(200,180,120,.12); border-radius:50%; animation: as-spin 30s linear infinite; }
.scn-astronomy-and-mythology .orbit-2 { position:absolute; top:30%; left:50%; width:120px; height:120px; transform:translate(-50%,-30%); border:1px solid rgba(200,180,120,.1); border-radius:50%; animation: as-spin 25s linear infinite reverse; }
.scn-astronomy-and-mythology .orbit-3 { position:absolute; top:40%; left:50%; width:80px; height:80px; transform:translate(-50%,-40%); border:1px solid rgba(200,180,120,.08); border-radius:50%; animation: as-spin 20s linear infinite; }
.scn-astronomy-and-mythology .star-burst { position:absolute; top:50%; left:50%; width:10px; height:10px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd090 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,208,144,.3); animation: as-pulse 4s ease-in-out infinite alternate; }
.scn-astronomy-and-mythology .figure { position:absolute; bottom:10%; left:50%; width:30px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,.7); animation: as-fig 6s ease-in-out infinite; }
@keyframes as-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes as-cyl { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes as-spin { 0% { transform: translate(-50%,0) rotate(0deg) } 100% { transform: translate(-50%,0) rotate(360deg) } }
@keyframes as-pulse { 0% { opacity:.6; transform: translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.15) } 100% { opacity:.6; transform: translate(-50%,-50%) scale(.9) } }
@keyframes as-fig { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }

/* glaucon-challenges – dim interior, tense */
.scn-glaucon-challenges {
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0e0e 50%, #0e0808 100%),
              radial-gradient(ellipse at 30% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-glaucon-challenges .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1010 0%, #0a0606 100%); animation: gla-bg 8s ease-in-out infinite alternate;
}
.scn-glaucon-challenges .wall-left {
  position: absolute; top: 5%; left: 0; width: 35%; height: 75%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 8% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.6); animation: gla-wall 12s ease-in-out infinite alternate;
}
.scn-glaucon-challenges .wall-right {
  position: absolute; top: 5%; right: 0; width: 35%; height: 75%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 8% 0 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,.6); animation: gla-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-glaucon-challenges .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius: 40% 40% 0 0; animation: gla-floor 10s ease-in-out infinite;
}
.scn-glaucon-challenges .challenger {
  position: absolute; bottom: 15%; left: 25%; width: 20px; height: 60px; background: linear-gradient(180deg, #1c1410 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gla-figure 3s ease-in-out infinite;
}
.scn-glaucon-challenges .opponent {
  position: absolute; bottom: 15%; right: 25%; width: 18px; height: 56px; background: linear-gradient(180deg, #1a1210 0%, #080604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gla-figure 3.5s ease-in-out infinite reverse;
}
.scn-glaucon-challenges .lamp {
  position: absolute; top: 20%; left: 50%; width: 12px; height: 20px; background: radial-gradient(circle, #ffaa40 0%, #cc6620 70%, #330800 100%); border-radius: 50%; box-shadow: 0 0 40px 12px #cc6620, 0 0 80px 20px rgba(204,102,32,.4); animation: gla-lamp 2s ease-in-out infinite alternate;
}
.scn-glaucon-challenges .shadow {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%); animation: gla-shadow 5s ease-in-out infinite alternate;
}
@keyframes gla-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes gla-wall { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(-2px) } 100% { transform: scale(1) translateX(0) } }
@keyframes gla-floor { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes gla-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes gla-lamp { 0% { opacity: .7; box-shadow: 0 0 30px 8px #cc6620, 0 0 60px 16px rgba(204,102,32,.3) } 50% { opacity: 1; box-shadow: 0 0 50px 16px #ffaa40, 0 0 100px 24px rgba(255,170,64,.5) } 100% { opacity: .8; box-shadow: 0 0 35px 10px #cc6620, 0 0 70px 18px rgba(204,102,32,.35) } }
@keyframes gla-shadow { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-3px) } 100% { transform: scaleY(1) translateY(0) } }

/* third-class – dim interior, calm (physician care) */
.scn-third-class {
  background: linear-gradient(180deg, #2a3035 0%, #1c2025 50%, #101418 100%),
              radial-gradient(ellipse at 50% 80%, #354045 0%, transparent 70%);
}
.scn-third-class .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #252a2e 0%, #15181c 100%); animation: thi-bg 12s ease-in-out infinite alternate;
}
.scn-third-class .bed {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30%; background: linear-gradient(180deg, #4a5048 0%, #2a3028 100%); border-radius: 12px; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: thi-bed 10s ease-in-out infinite;
}
.scn-third-class .patient {
  position: absolute; bottom: 25%; left: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #6a7068 0%, #3a4038 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: thi-figure 4s ease-in-out infinite;
}
.scn-third-class .physician {
  position: absolute; bottom: 25%; right: 20%; width: 20px; height: 55px; background: linear-gradient(180deg, #7a8078 0%, #4a5048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: thi-figure 4.5s ease-in-out infinite reverse;
}
.scn-third-class .bottle {
  position: absolute; bottom: 30%; left: 42%; width: 10px; height: 24px; background: linear-gradient(180deg, #b8bca0 0%, #80846a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: thi-bottle 6s ease-in-out infinite;
}
.scn-third-class .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, rgba(180,190,170,.15) 0%, transparent 100%); filter: blur(4px); animation: thi-curtain 20s ease-in-out infinite alternate;
}
@keyframes thi-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes thi-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes thi-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) } }
@keyframes thi-bottle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes thi-curtain { 0% { opacity: .1; transform: scaleY(1) } 50% { opacity: .3; transform: scaleY(1.05) } 100% { opacity: .15; transform: scaleY(1) } }

/* many-disagree – dim interior, calm (group silhouettes) */
.scn-many-disagree {
  background: linear-gradient(180deg, #1a1e2e 0%, #10141e 50%, #0a0c14 100%),
              radial-gradient(ellipse at 50% 30%, #2a2e4e 0%, transparent 60%);
}
.scn-many-disagree .bg {
  position: absolute; inset: 0; background: linear-gradient(160deg, #121620 0%, #080a10 100%); animation: man-bg 15s ease-in-out infinite alternate;
}
.scn-many-disagree .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1e2a 0%, #0e1018 100%); border-radius: 30% 30% 0 0; animation: man-floor 12s ease-in-out infinite;
}
.scn-many-disagree .figure-a {
  position: absolute; bottom: 15%; left: 20%; width: 18px; height: 50px; background: linear-gradient(180deg, #1c1e28 0%, #0a0c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: man-figure 5s ease-in-out infinite;
}
.scn-many-disagree .figure-b {
  position: absolute; bottom: 15%; left: 48%; width: 20px; height: 54px; background: linear-gradient(180deg, #1e202c 0%, #0c0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: man-figure 5.5s ease-in-out infinite reverse;
}
.scn-many-disagree .figure-c {
  position: absolute; bottom: 15%; right: 20%; width: 16px; height: 48px; background: linear-gradient(180deg, #1a1c26 0%, #080a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: man-figure 6s ease-in-out infinite;
}
.scn-many-disagree .overlight {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 20%; background: radial-gradient(ellipse, rgba(200,200,220,.1) 0%, transparent 80%); filter: blur(8px); animation: man-light 8s ease-in-out infinite alternate;
}
@keyframes man-bg { 0% { opacity: .75 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes man-floor { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes man-figure { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes man-light { 0% { opacity: .1 } 50% { opacity: .3 } 100% { opacity: .15 } }

/* glaucon-wants-truth – dim interior, tense (truth as glow) */
.scn-glaucon-wants-truth {
  background: linear-gradient(135deg, #1e1410 0%, #120a08 50%, #080404 100%),
              radial-gradient(ellipse at 60% 50%, #3a2018 0%, transparent 60%);
}
.scn-glaucon-wants-truth .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #140c0a 0%, #080404 100%); animation: glab-bg 10s ease-in-out infinite alternate;
}
.scn-glaucon-wants-truth .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: glab-table 8s ease-in-out infinite;
}
.scn-glaucon-wants-truth .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #1a100c 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: glab-figure 2.5s ease-in-out infinite;
}
.scn-glaucon-wants-truth .figure-b {
  position: absolute; bottom: 22%; right: 30%; width: 18px; height: 58px; background: linear-gradient(180deg, #1c120e 0%, #0c0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: glab-figure 3s ease-in-out infinite reverse;
}
.scn-glaucon-wants-truth .truth-glow {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 16px; margin-left: -8px; background: radial-gradient(circle, #ffdd80 0%, #cc8800 50%, #442200 100%); border-radius: 50%; box-shadow: 0 0 40px 16px #cc8800, 0 0 80px 24px rgba(204,136,0,.5), 0 0 120px 32px rgba(204,136,0,.2); animation: glab-glow 2s ease-in-out infinite alternate, glab-pulse 3s ease-in-out infinite;
}
.scn-glaucon-wants-truth .shadow {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%; background: radial-gradient(ellipse, rgba(0,0,0,.9) 0%, transparent 70%); animation: glab-shadow 4s ease-in-out infinite alternate;
}
@keyframes glab-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes glab-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes glab-figure { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes glab-glow { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(1) } }
@keyframes glab-pulse { 0% { box-shadow: 0 0 30px 12px #cc8800, 0 0 60px 18px rgba(204,136,0,.4) } 50% { box-shadow: 0 0 60px 24px #ffdd80, 0 0 120px 36px rgba(255,221,128,.6) } 100% { box-shadow: 0 0 35px 14px #cc8800, 0 0 70px 20px rgba(204,136,0,.45) } }
@keyframes glab-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.15) } 100% { transform: scaleY(1) } }

/* Scene: plato-psychology (dim interior study) */
.scn-plato-psychology {
  background: linear-gradient(180deg, #2a1f14 0%, #3d2b1a 30%, #4a3420 60%, #1f140b 100%), 
              radial-gradient(ellipse at 80% 60%, #5c3a20 0%, transparent 60%);
}
.scn-plato-psychology .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2216 0%, #3a2a1a 100%);
  animation: pl-wall 12s ease-in-out infinite alternate;
}
.scn-plato-psychology .desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2e1c10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
}
.scn-plato-psychology .book {
  position: absolute; bottom: 32%; left: 42%; width: 22%; height: 14%;
  background: linear-gradient(135deg, #8b6b42 0%, #5a3e28 100%);
  border-radius: 2px 8px 8px 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: pl-book 14s ease-in-out infinite alternate;
}
.scn-plato-psychology .lamp-glow {
  position: absolute; bottom: 36%; left: 55%; width: 20px; height: 28px;
  background: radial-gradient(ellipse 60% 70% at 50% 40%, #ffd080 0%, #c08840 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.4), 0 0 80px 40px rgba(255,200,100,0.15);
  animation: pl-lamp 3s ease-in-out infinite alternate;
}
.scn-plato-psychology .figure-sit {
  position: absolute; bottom: 24%; left: 35%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a05 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pl-fig 8s ease-in-out infinite alternate;
}
.scn-plato-psychology .scroll {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 4%;
  background: linear-gradient(180deg, #cba06c 0%, #a67b48 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pl-scroll 6s ease-in-out infinite alternate;
}
@keyframes pl-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pl-book   { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(-1px) } }
@keyframes pl-lamp   { 0% { box-shadow: 0 0 30px 15px rgba(255,200,100,0.3), 0 0 60px 30px rgba(255,200,100,0.1); opacity:0.9 } 50% { box-shadow: 0 0 50px 25px rgba(255,220,120,0.5), 0 0 100px 50px rgba(255,220,120,0.2); opacity:1 } 100% { box-shadow: 0 0 35px 18px rgba(255,200,100,0.35), 0 0 70px 35px rgba(255,200,100,0.12); opacity:0.92 } }
@keyframes pl-fig   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(-0.5deg) } }
@keyframes pl-scroll { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4px) scaleY(0.9) } 100% { transform: translateX(2px) scaleY(1) } }

/* Scene: aristotle-anticipation (dim interior with niche) */
.scn-aristotle-anticipation {
  background: linear-gradient(180deg, #1e1410 0%, #2c1e16 40%, #3a281c 70%, #1a0f0a 100%), 
              radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 60%);
}
.scn-aristotle-anticipation .wall-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1f1510 0%, #2e1e14 100%);
  animation: ar-wall 10s ease-in-out infinite alternate;
}
.scn-aristotle-anticipation .niche {
  position: absolute; bottom: 30%; left: 28%; width: 44%; height: 40%;
  background: linear-gradient(180deg, #3a2818 0%, #1f120a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}
.scn-aristotle-anticipation .bust {
  position: absolute; bottom: 32%; left: 40%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2818 80%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: ar-bust 12s ease-in-out infinite alternate;
}
.scn-aristotle-anticipation .candle {
  position: absolute; bottom: 26%; left: 55%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0c080 0%, #c09850 60%, #8a6a30 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.5);
  animation: ar-candle 4s ease-in-out infinite alternate;
}
.scn-aristotle-anticipation .tablet {
  position: absolute; bottom: 24%; left: 46%; width: 14%; height: 8%;
  background: linear-gradient(135deg, #8a6a42 0%, #5a3e28 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: 1px 2px 4px rgba(0,0,0,0.5);
  animation: ar-tablet 9s ease-in-out infinite alternate;
}
.scn-aristotle-anticipation .shadow-figure {
  position: absolute; bottom: 24%; left: 30%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #0a0604 0%, #140a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: ar-shadow 7s ease-in-out infinite alternate;
}
@keyframes ar-wall   { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ar-bust   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(-0.5deg) } }
@keyframes ar-candle { 0% { box-shadow: 0 0 12px 4px rgba(255,200,100,0.4); height:24px } 50% { box-shadow: 0 0 24px 10px rgba(255,220,120,0.6); height:26px } 100% { box-shadow: 0 0 14px 5px rgba(255,200,100,0.45); height:23px } }
@keyframes ar-tablet { 0% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(6deg) translateX(-3px) } 100% { transform: rotate(7deg) translateX(2px) } }
@keyframes ar-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(0.95) } 100% { transform: translateX(-2px) scaleX(1) } }

/* Scene: the-longer-way (night path with distant door) */
.scn-the-longer-way {
  background: linear-gradient(180deg, #0a0e1a 0%, #121a2e 40%, #1a2638 70%, #0a0e1a 100%), 
              radial-gradient(ellipse at 50% 100%, #1a2638 0%, transparent 70%);
}
.scn-the-longer-way .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #121a2e 0%, #0c1020 100%);
  animation: lw-sky 15s ease-in-out infinite alternate;
}
.scn-the-longer-way .path {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #2a3426 0%, #1a221a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0% 80%, 15% 0%, 85% 0%, 100% 80%);
  animation: lw-path 18s ease-in-out infinite alternate;
}
.scn-the-longer-way .distant-door {
  position: absolute; bottom: 50%; left: 45%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(200,170,100,0.3);
  animation: lw-door 8s ease-in-out infinite alternate;
}
.scn-the-longer-way .walker {
  position: absolute; bottom: 36%; left: 25%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #0c0a06 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-walk 6s ease-in-out infinite alternate;
}
.scn-the-longer-way .glow-path {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, rgba(200,180,120,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: lw-glow 10s ease-in-out infinite alternate;
}
.scn-the-longer-way .tree-left {
  position: absolute; bottom: 35%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a14 0%, #0e0e0a 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: lw-tree 20s ease-in-out infinite alternate;
}
.scn-the-longer-way .tree-right {
  position: absolute; bottom: 35%; right: 5%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1a14 0%, #0e0e0a 100%);
  border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
  animation: lw-tree 20s ease-in-out infinite alternate-reverse;
}
@keyframes lw-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes lw-path  { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) scaleY(1.02) } 100% { transform: translateX(1px) } }
@keyframes lw-door  { 0% { box-shadow: 0 0 20px 8px rgba(200,170,100,0.2); } 50% { box-shadow: 0 0 40px 20px rgba(220,190,120,0.4); } 100% { box-shadow: 0 0 25px 10px rgba(200,170,100,0.25); } }
@keyframes lw-walk  { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(0deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes lw-glow  { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes lw-tree  { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(0.98) } }

/* Scene: women-and-children-question (bright interior with group) */
.scn-women-and-children-question {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d4b8 30%, #c8b898 60%, #b8a888 100%), 
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-women-and-children-question .wall-bright {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 100%);
  animation: wc-wall 14s ease-in-out infinite alternate;
}
.scn-women-and-children-question .window {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #b8dce0 0%, #a0c8d0 100%);
  border: 6px solid #8a7858;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
  animation: wc-window 10s ease-in-out infinite alternate;
}
.scn-women-and-children-question .bench {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-women-and-children-question .figure-group {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wc-group 12s ease-in-out infinite alternate;
}
.scn-women-and-children-question .child {
  position: absolute; bottom: 20%; left: 42%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: wc-child 5s ease-in-out infinite alternate;
}
.scn-women-and-children-question .woman {
  position: absolute; bottom: 22%; left: 52%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: wc-woman 7s ease-in-out infinite alternate;
}
.scn-women-and-children-question .sunbeam {
  position: absolute; top: -5%; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,220,0.2) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 10% 100%);
  filter: blur(6px);
  animation: wc-beam 8s ease-in-out infinite alternate;
}
@keyframes wc-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wc-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,200,0.3); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.4); } }
@keyframes wc-group  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(-1px) } }
@keyframes wc-child  { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(4deg) } 100% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes wc-woman  { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes wc-beam   { 0% { opacity:0.3; transform: scaleX(1) translateX(0) } 50% { opacity:0.6; transform: scaleX(1.05) translateX(-5px) } 100% { opacity:0.4; transform: scaleX(0.95) translateX(3px) } }

.scn-tyrant-most-miserable { background: linear-gradient(180deg, #0a0a14 0%, #1a0e0e 30%, #2a1212 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 70%); }
.scn-tyrant-most-miserable .bg-abyss { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #1a0e0e 40%, #2a1212 70%, #1a0a0a 100%); animation: tmm-pulse 12s ease-in-out infinite alternate; }
.scn-tyrant-most-miserable .bg-shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); }
.scn-tyrant-most-miserable .chain-left { position:absolute; top:15%; left:25%; width:4px; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 0 6px rgba(90,74,58,.3); transform-origin: top center; animation: tmm-sway-l 5s ease-in-out infinite; }
.scn-tyrant-most-miserable .chain-right { position:absolute; top:15%; right:25%; width:4px; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 0 6px rgba(90,74,58,.3); transform-origin: top center; animation: tmm-sway-r 5.3s ease-in-out infinite; }
.scn-tyrant-most-miserable .figure-sick { position:absolute; bottom:18%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: tmm-cower 8s ease-in-out infinite; }
.scn-tyrant-most-miserable .crown-fallen { position:absolute; bottom:18%; left:42%; width:20px; height:8px; background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform:rotate(-15deg); box-shadow: 0 0 8px rgba(122,106,58,.3); animation: tmm-crown 9s ease-in-out infinite; }
.scn-tyrant-most-miserable .light-shaft { position:absolute; top:8%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, rgba(180,140,80,.25) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: tmm-shaft 10s ease-in-out infinite alternate; }
@keyframes tmm-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tmm-sway-l { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1.5deg) } 100% { transform: rotate(0deg) } }
@keyframes tmm-sway-r { 0% { transform: rotate(0deg) } 25% { transform: rotate(-1.5deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes tmm-cower { 0% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-48%) scale(0.98) rotate(-1deg) } 50% { transform: translateX(-52%) scale(1.02) rotate(1deg) } 75% { transform: translateX(-49%) scale(0.99) rotate(-0.5deg) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes tmm-crown { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes tmm-shaft { 0% { opacity:.15; transform: scaleX(.95) } 50% { opacity:.35; transform: scaleX(1.05) } 100% { opacity:.2; transform: scaleX(.98) } }

.scn-three-pleasures { background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b0 30%, #d4bc94 60%, #c0a87c 100%), radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%); }
.scn-three-pleasures .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b0 50%, #d4bc94 100%); animation: tp-glide 20s ease-in-out infinite alternate; }
.scn-three-pleasures .pedestal-left { position:absolute; bottom:20%; left:18%; width:40px; height:70px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-three-pleasures .pedestal-center { position:absolute; bottom:15%; left:50%; width:45px; height:80px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:8% 8% 4% 4%; transform:translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-three-pleasures .pedestal-right { position:absolute; bottom:22%; right:18%; width:35px; height:65px; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-three-pleasures .flame-reason { position:absolute; bottom:42%; left:20%; width:14px; height:40px; background: radial-gradient(ellipse 50% 80%, #e8c060 0%, #c8a040 60%, transparent 100%); border-radius:50%; filter:blur(2px); animation: tp-flame-reason 4s ease-in-out infinite alternate; }
.scn-three-pleasures .flame-passion { position:absolute; bottom:44%; left:50%; width:16px; height:36px; transform:translateX(-50%); background: radial-gradient(ellipse 50% 80%, #d08040 0%, #b06030 60%, transparent 100%); border-radius:50%; filter:blur(2px); animation: tp-flame-passion 4.5s ease-in-out infinite alternate; }
.scn-three-pleasures .flame-desire { position:absolute; bottom:40%; right:22%; width:12px; height:32px; background: radial-gradient(ellipse 50% 80%, #b8a060 0%, #988040 60%, transparent 100%); border-radius:50%; filter:blur(2px); animation: tp-flame-desire 5s ease-in-out infinite alternate; }
.scn-three-pleasures .window-arch { position:absolute; top:8%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,.6) 0%, transparent 70%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.08); }
.scn-three-pleasures .light-ray { position:absolute; top:6%; left:40%; width:20%; height:20%; background: linear-gradient(180deg, rgba(255,240,200,.35) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: tp-ray 10s ease-in-out infinite alternate; }
@keyframes tp-glide { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes tp-flame-reason { 0% { transform: scaleY(1) translateX(0); opacity:.8 } 50% { transform: scaleY(1.15) translateX(2px); opacity:1 } 100% { transform: scaleY(0.95) translateX(-1px); opacity:.85 } }
@keyframes tp-flame-passion { 0% { transform: scaleY(1) translateX(0); opacity:.8 } 50% { transform: scaleY(1.25) translateX(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateX(1px); opacity:.85 } }
@keyframes tp-flame-desire { 0% { transform: scaleY(1) translateX(0); opacity:.75 } 50% { transform: scaleY(1.1) translateX(3px); opacity:.95 } 100% { transform: scaleY(0.85) translateX(-2px); opacity:.8 } }
@keyframes tp-ray { 0% { opacity:.3; transform: scaleX(.95) } 50% { opacity:.5; transform: scaleX(1.05) } 100% { opacity:.35; transform: scaleX(.98) } }

.scn-pure-pleasures { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b498 80%, #b09c80 100%), radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 60%); }
.scn-pure-pleasures .bg-pure { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #d0c0a8 100%); animation: pp-breathe 15s ease-in-out infinite alternate; }
.scn-pure-pleasures .column-base { position:absolute; bottom:15%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:10% 10% 6% 6%; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.scn-pure-pleasures .column-shaft { position:absolute; bottom:20%; left:50%; width:12px; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #a89878 100%); border-radius:4px; box-shadow: 2px 0 6px rgba(0,0,0,.08), -2px 0 6px rgba(0,0,0,.05); }
.scn-pure-pleasures .figure-wise { position:absolute; bottom:28%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; box-shadow: 0 6px 16px rgba(0,0,0,.15); animation: pp-ascend 8s ease-in-out infinite; }
.scn-pure-pleasures .figure-shadow { position:absolute; bottom:15%; left:44%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.15) 0%, transparent 100%); border-radius:50%; animation: pp-shadow 8s ease-in-out infinite; }
.scn-pure-pleasures .crown-light { position:absolute; top:12%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.5) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation: pp-crown 6s ease-in-out infinite alternate; }
.scn-pure-pleasures .orb-ascend { position:absolute; width:10px; height:10px; border-radius:50%; background: radial-gradient(circle, rgba(240,220,180,.8) 0%, transparent 100%); filter:blur(1px); }
.scn-pure-pleasures .orb-1 { bottom:40%; left:30%; animation: pp-orb-up 12s linear infinite; }
.scn-pure-pleasures .orb-2 { bottom:45%; right:28%; animation: pp-orb-up 15s linear infinite 3s; }
@keyframes pp-breathe { 0% { opacity:.92 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes pp-ascend { 0% { transform: translateX(-50%) translateY(0) scale(1) } 25% { transform: translateX(-48%) translateY(-3px) scale(1.02) } 50% { transform: translateX(-52%) translateY(-6px) scale(0.98) } 75% { transform: translateX(-49%) translateY(-2px) scale(1.01) } 100% { transform: translateX(-50%) translateY(0) scale(1) } }
@keyframes pp-shadow { 0% { transform: scaleX(1); opacity:.5 } 25% { transform: scaleX(1.1); opacity:.6 } 50% { transform: scaleX(0.9); opacity:.4 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes pp-crown { 0% { opacity:.4; transform: translateX(-50%) scale(.95) } 50% { opacity:.7; transform: translateX(-50%) scale(1.08) } 100% { opacity:.5; transform: translateX(-50%) scale(.98) } }
@keyframes pp-orb-up { 0% { transform: translateY(0) scale(.8); opacity:.6 } 25% { transform: translateY(-30px) scale(1); opacity:1 } 50% { transform: translateY(-60px) scale(1.2); opacity:.8 } 75% { transform: translateY(-90px) scale(.9); opacity:.5 } 100% { transform: translateY(-120px) scale(.7); opacity:0 } }

.scn-pleasures-of-ambition { background: linear-gradient(180deg, #f0e0c8 0%, #dcc4a4 40%, #c4a884 70%, #a88c6c 100%), radial-gradient(ellipse at 50% 20%, #fff0d8 0%, transparent 50%); }
.scn-pleasures-of-ambition .bg-ambient { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #dcc4a4 50%, #c4a884 100%); animation: pa-shift 18s ease-in-out infinite alternate; }
.scn-pleasures-of-ambition .stair-1 { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #d0b898 0%, #b8a080 100%); border-radius:4px 4px 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,.1); }
.scn-pleasures-of-ambition .stair-2 { position:absolute; bottom:22%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #c8b090 0%, #b09878 100%); border-radius:4px 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.08); }
.scn-pleasures-of-ambition .stair-3 { position:absolute; bottom:32%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #c0a888 0%, #a89070 100%); border-radius:4px 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.06); }
.scn-pleasures-of-ambition .figure-climb { position:absolute; bottom:16%; left:50%; width:44px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #b09878 0%, #887058 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: pa-climb 6s ease-in-out infinite; }
.scn-pleasures-of-ambition .arm-reach { position:absolute; width:8px; height:30px; background: linear-gradient(180deg, #b09878 0%, #887058 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-pleasures-of-ambition .arm-a { bottom:30%; left:38%; transform:rotate(-30deg); animation: pa-reach-a 5s ease-in-out infinite; }
.scn-pleasures-of-ambition .arm-b { bottom:30%; left:50%; transform:translateX(-50%) rotate(0deg); animation: pa-reach-b 5.5s ease-in-out infinite; }
.scn-pleasures-of-ambition .arm-c { bottom:30%; right:36%; transform:rotate(30deg); animation: pa-reach-c 6s ease-in-out infinite; }
.scn-pleasures-of-ambition .crown-distant { position:absolute; top:10%; left:50%; width:50px; height:24px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,.5) 0%, transparent 80%); border-radius:50%; filter:blur(6px); animation: pa-distant 7s ease-in-out infinite alternate; }
@keyframes pa-shift { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.93 } }
@keyframes pa-climb { 0% { transform: translateX(-50%) translateY(0) scale(1) } 25% { transform: translateX(-48%) translateY(-4px) scale(1.03) } 50% { transform: translateX(-52%) translateY(-8px) scale(0.97) } 75% { transform: translateX(-49%) translateY(-3px) scale(1.01) } 100% { transform: translateX(-50%) translateY(0) scale(1) } }
@keyframes pa-reach-a { 0% { transform: rotate(-30deg) } 25% { transform: rotate(-20deg) } 50% { transform: rotate(-40deg) } 75% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes pa-reach-b { 0% { transform: rotate(0deg) translateX(-50%) } 25% { transform: rotate(10deg) translateX(-48%) } 50% { transform: rotate(-5deg) translateX(-52%) } 75% { transform: rotate(8deg) translateX(-49%) } 100% { transform: rotate(0deg) translateX(-50%) } }
@keyframes pa-reach-c { 0% { transform: rotate(30deg) } 25% { transform: rotate(40deg) } 50% { transform: rotate(20deg) } 75% { transform: rotate(35deg) } 100% { transform: rotate(30deg) } }
@keyframes pa-distant { 0% { opacity:.3; transform: translateX(-50%) scale(.9) } 50% { opacity:.6; transform: translateX(-50%) scale(1.1) } 100% { opacity:.35; transform: translateX(-50%) scale(.95) } }

.scn-feeling-and-thought {
  background: linear-gradient(180deg, #2c241a 0%, #1f1912 50%, #12100a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2e1e 0%, transparent 60%);
}
.scn-feeling-and-thought .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a3020 0%, #1f1912 100%);
}
.scn-feeling-and-thought .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a3020 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-feeling-and-thought .lamp {
  position: absolute; bottom: 23%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #e8c878 0%, #b89050 70%, #5a3a1a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.3);
  animation: ft-lamp 6s ease-in-out infinite alternate;
}
.scn-feeling-and-thought .figure {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2010 0%, #1a140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-figure 5s ease-in-out infinite alternate;
}
.scn-feeling-and-thought .book {
  position: absolute; bottom: 23%; left: 50%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-feeling-and-thought .curtain {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a2010 100%);
  border-radius: 0 0 40% 0 / 0 0 60% 0;
  filter: blur(3px); opacity: 0.8;
  animation: ft-curtain 8s ease-in-out infinite alternate;
}
.scn-feeling-and-thought .dust-a,
.scn-feeling-and-thought .dust-b {
  position: absolute; width: 6px; height: 6px;
  background: rgba(230,200,150,0.15); border-radius: 50%;
  filter: blur(2px);
}
.scn-feeling-and-thought .dust-a { top: 35%; left: 25%; animation: ft-dust 12s linear infinite; }
.scn-feeling-and-thought .dust-b { top: 40%; left: 60%; animation: ft-dust 15s linear infinite 2s; }

@keyframes ft-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 15px 4px #b89050; }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #d8b060, 0 0 50px 16px rgba(216,176,96,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 18px 5px #c09040; }
}
@keyframes ft-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ft-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8px); }
  100% { transform: translateX(0); }
}
@keyframes ft-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.2; }
  100% { transform: translate(30px, -50px) scale(0.5); opacity: 0; }
}

/* ---- */
.scn-platos-complaint {
  background: linear-gradient(180deg, #0a0a12 0%, #12121a 40%, #1a1a26 100%),
              radial-gradient(ellipse at 50% 30%, #1a1a28 0%, transparent 70%);
}
.scn-platos-complaint .cell-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12121a 0%, #0a0a12 100%);
}
.scn-platos-complaint .bars {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 85%;
  border: 4px solid #3a3a4e; border-width: 4px 8px;
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  background: repeating-linear-gradient(0deg, transparent, transparent 14%, #2a2a3e 14%, #2a2a3e 17%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-platos-complaint .figure {
  position: absolute; bottom: 10%; left: 40%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 7s ease-in-out infinite alternate;
}
.scn-platos-complaint .light-shaft {
  position: absolute; top: 0; left: 30%; width: 25%; height: 100%;
  background: linear-gradient(180deg, rgba(180,160,200,0.08) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: pc-shaft 9s ease-in-out infinite alternate;
}
.scn-platos-complaint .shadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%);
  opacity: 0.6;
  animation: pc-shadow 6s ease-in-out infinite alternate;
}
.scn-platos-complaint .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a26 100%);
}
.scn-platos-complaint .mote-a,
.scn-platos-complaint .mote-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,220,0.2); border-radius: 50%; filter: blur(1px);
}
.scn-platos-complaint .mote-a { top: 40%; left: 35%; animation: pc-mote 14s linear infinite; }
.scn-platos-complaint .mote-b { top: 50%; left: 45%; animation: pc-mote 17s linear infinite 3s; }

@keyframes pc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pc-shaft {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(0.9); }
  100% { opacity: 0.4; transform: scaleX(1.05); }
}
@keyframes pc-shadow {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(2px); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes pc-mote {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  10% { opacity: 0.4; }
  90% { opacity: 0.3; }
  100% { transform: translate(20px, -40px) scale(0.6); opacity: 0; }
}

/* ---- */
.scn-ideal-poetry-future {
  background: linear-gradient(180deg, #f5d6a0 0%, #e8b878 25%, #c89850 60%, #8a6a3a 100%),
              radial-gradient(ellipse at 50% 0, #f5d6a0 0%, transparent 50%);
}
.scn-ideal-poetry-future .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f5c878 40%, #c89850 100%);
  animation: ipf-sky 15s ease-in-out infinite alternate;
}
.scn-ideal-poetry-future .sun {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #ffe8a0 0%, #f0c060 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f0c060, 0 0 160px 60px rgba(240,192,96,0.4);
  transform: translateX(-50%);
  animation: ipf-sun 20s ease-in-out infinite alternate;
}
.scn-ideal-poetry-future .cloud-a,
.scn-ideal-poetry-future .cloud-b {
  position: absolute; background: linear-gradient(180deg, rgba(255,240,210,0.6) 0%, rgba(255,240,210,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-ideal-poetry-future .cloud-a { top: 15%; left: 10%; width: 120px; height: 30px; animation: ipf-cloud 40s linear infinite; }
.scn-ideal-poetry-future .cloud-b { top: 25%; right: 20%; width: 90px; height: 24px; animation: ipf-cloud 55s linear infinite reverse; }
.scn-ideal-poetry-future .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: ipf-hills 12s ease-in-out infinite alternate;
}
.scn-ideal-poetry-future .figure {
  position: absolute; bottom: 28%; left: 50%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a2010 0%, #1a140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ipf-figure 4s ease-in-out infinite alternate;
}
.scn-ideal-poetry-future .rays {
  position: absolute; top: 0; left: 20%; right: 20%; height: 100%;
  background: repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(255,230,180,0.03) 8%, rgba(255,230,180,0.03) 10%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ipf-rays 8s ease-in-out infinite alternate;
}

@keyframes ipf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ipf-sun {
  0% { transform: translateX(-50%) translateY(0) scale(0.95); }
  50% { transform: translateX(-50%) translateY(-4px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes ipf-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(120vw); }
}
@keyframes ipf-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ipf-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ipf-rays {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.3; }
}

/* ---- */
.scn-ideal-poetry-continued {
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 40%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-ideal-poetry-continued .window-frame {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  border: 6px solid #5a4a3a; border-width: 8px 12px;
  background: linear-gradient(180deg, #e8c888 0%, #c8a870 100%);
  border-radius: 10% 10% 40% 40% / 10% 10% 60% 60%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-ideal-poetry-continued .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}
.scn-ideal-poetry-continued .paper {
  position: absolute; bottom: 16%; left: 35%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8d8c0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: ipc-paper 6s ease-in-out infinite alternate;
}
.scn-ideal-poetry-continued .ink {
  position: absolute; bottom: 14%; left: 55%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ipc-ink 4s ease-in-out infinite alternate;
}
.scn-ideal-poetry-continued .hand {
  position: absolute; bottom: 12%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ipc-hand 5s ease-in-out infinite alternate;
}
.scn-ideal-poetry-continued .light-stream {
  position: absolute; top: 0; left: 20%; right: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.1) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: ipc-light 12s ease-in-out infinite alternate;
}
.scn-ideal-poetry-continued .flower {
  position: absolute; bottom: 12%; right: 22%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #b87878 0%, #8a5a5a 100%);
  border-radius: 50%; filter: blur(1px);
  box-shadow: 0 0 6px 2px rgba(184,120,120,0.3);
  animation: ipc-flower 7s ease-in-out infinite alternate;
}

@keyframes ipc-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ipc-ink {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ipc-hand {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes ipc-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes ipc-flower {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}

.scn-cephalus-welcomes-socrates {
  background: 
    radial-gradient(ellipse at 30% 40%, #d97a38 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, #1f1a14 0%, transparent 70%),
    linear-gradient(180deg, #2c2012 0%, #1a130c 60%, #0f0b08 100%);
}
.scn-cephalus-welcomes-socrates .fire-glow {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 80%, #f5a623 0%, #e07a1f 30%, transparent 70%);
  animation: cws-fire 2s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-cephalus-welcomes-socrates .wall-left {
  position: absolute; left: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-right: 2px solid #2a1f12;
}
.scn-cephalus-welcomes-socrates .wall-right {
  position: absolute; right: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-left: 2px solid #2a1f12;
}
.scn-cephalus-welcomes-socrates .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-top: 2px solid #2a1f12;
}
.scn-cephalus-welcomes-socrates .chair-cephalus {
  position: absolute; bottom: 25%; left: 28%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #5a4028 0%, #3a281a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
}
.scn-cephalus-welcomes-socrates .figure-cephalus {
  position: absolute; bottom: 30%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cws-figure-sit 6s ease-in-out infinite;
}
.scn-cephalus-welcomes-socrates .chair-socrates {
  position: absolute; bottom: 25%; right: 30%; width: 45px; height: 55px;
  background: linear-gradient(135deg, #5a4028 0%, #3a281a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cephalus-welcomes-socrates .figure-socrates {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cws-figure-sit 8s ease-in-out infinite reverse;
}
.scn-cephalus-welcomes-socrates .other-chairs {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(135deg, #4a3828 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cws-chairs 14s ease-in-out infinite;
  opacity: 0.6;
}
@keyframes cws-fire {
  0% { transform: scale(1) translate(0, 0); opacity: 0.6; }
  50% { transform: scale(1.02) translate(1px, -1px); opacity: 0.8; }
  100% { transform: scale(0.98) translate(-1px, 1px); opacity: 0.5; }
}
@keyframes cws-figure-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cws-chairs {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(0.95); }
}

.scn-cephalus-complaint {
  background: 
    radial-gradient(ellipse at 20% 30%, #cc6a2e 0%, transparent 40%),
    radial-gradient(ellipse at 80% 50%, #0f0b08 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0e 0%, #140e0a 100%);
}
.scn-cephalus-complaint .fire-depth {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 50%;
  background: radial-gradient(ellipse at 50% 70%, #d97a38 0%, #a0522d 40%, transparent 70%);
  animation: cc-fire-depth 4s ease-in-out infinite alternate;
}
.scn-cephalus-complaint .fire-core {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, #f5a623 0%, #e07a1f 30%, transparent 60%);
  animation: cc-fire-core 2s ease-in-out infinite alternate;
}
.scn-cephalus-complaint .wall-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
.scn-cephalus-complaint .table {
  position: absolute; bottom: 25%; left: 35%; width: 40%; height: 8px;
  background: linear-gradient(90deg, #4a3020 0%, #2a1a10 50%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-cephalus-complaint .chair-cephalus {
  position: absolute; bottom: 22%; left: 28%; width: 55px; height: 70px;
  background: linear-gradient(135deg, #5a4028 0%, #3a281a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-cephalus-complaint .figure-speaking {
  position: absolute; bottom: 28%; left: 28%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-speak 7s ease-in-out infinite;
}
.scn-cephalus-complaint .cane {
  position: absolute; bottom: 22%; left: 40%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: cc-cane 5s ease-in-out infinite;
}
.scn-cephalus-complaint .shadow-figure {
  position: absolute; bottom: 22%; right: 20%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: cc-shadow 10s ease-in-out infinite alternate;
}
@keyframes cc-fire-depth {
  0% { transform: scale(1) translate(0,0); opacity: 0.6; }
  50% { transform: scale(1.03) translate(2px,-1px); opacity: 0.8; }
  100% { transform: scale(0.97) translate(-1px,1px); opacity: 0.5; }
}
@keyframes cc-fire-core {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scale(1.05) rotate(0deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(2deg); opacity: 0.8; }
}
@keyframes cc-speak {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-1px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cc-cane {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(18deg); }
  100% { transform: rotate(13deg); }
}
@keyframes cc-shadow {
  0% { transform: scaleX(0.8) scaleY(1); opacity: 0.3; }
  100% { transform: scaleX(1) scaleY(1.05); opacity: 0.6; }
}

.scn-socrates-ask-about-age {
  background: 
    radial-gradient(ellipse at 40% 30%, #c85a1a 0%, transparent 45%),
    radial-gradient(ellipse at 60% 50%, #1a120a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0e 0%, #140e0a 100%);
}
.scn-socrates-ask-about-age .warm-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 10%, rgba(200,90,26,0.15) 0%, transparent 70%);
  animation: saq-bg 12s ease-in-out infinite alternate;
}
.scn-socrates-ask-about-age .fire-coals {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #d97a38 0%, #8b4513 50%, transparent 70%);
  border-radius: 50%;
  animation: saq-coals 3s ease-in-out infinite alternate;
}
.scn-socrates-ask-about-age .pillar-left {
  position: absolute; left: 5%; top: 5%; width: 8%; height: 85%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-socrates-ask-about-age .pillar-right {
  position: absolute; right: 5%; top: 5%; width: 8%; height: 85%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-socrates-ask-about-age .seat-socrates {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 50px;
  background: linear-gradient(135deg, #5a4028 0%, #3a281a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
}
.scn-socrates-ask-about-age .figure-socrates {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saq-fig-s 5s ease-in-out infinite;
}
.scn-socrates-ask-about-age .seat-cephalus {
  position: absolute; bottom: 22%; right: 30%; width: 50px; height: 50px;
  background: linear-gradient(135deg, #5a4028 0%, #3a281a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(2deg);
}
.scn-socrates-ask-about-age .figure-cephalus {
  position: absolute; bottom: 28%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saq-fig-c 7s ease-in-out infinite reverse;
}
@keyframes saq-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes saq-coals {
  0% { transform: scale(1) translate(0,0); opacity: 0.7; }
  50% { transform: scale(1.08) translate(2px, -1px); opacity: 1; }
  100% { transform: scale(0.92) translate(-1px, 1px); opacity: 0.6; }
}
@keyframes saq-fig-s {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(2deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes saq-fig-c {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-1px) rotate(-2deg); }
  66% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-cephalus-on-old-age {
  background: 
    radial-gradient(ellipse at 50% 20%, #d97a38 0%, transparent 50%),
    radial-gradient(ellipse at 50% 80%, #0f0b08 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0e 0%, #140e0a 100%);
}
.scn-cephalus-on-old-age .hearth-glow {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #c85a1a 0%, transparent 60%);
  animation: coo-hearth 3s ease-in-out infinite alternate;
  opacity: 0.6;
}
.scn-cephalus-on-old-age .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,20,10,0.8) 0%, rgba(10,8,5,0.4) 100%);
}
.scn-cephalus-on-old-age .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #2a1a10 0px, #1a120a 2px, #2a1a10 4px);
  border-top: 2px solid #3a2a1a;
}
.scn-cephalus-on-old-age .bench {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(90deg, #4a3020 0%, #2a1a10 50%, #4a3020 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cephalus-on-old-age .old-man-1 {
  position: absolute; bottom: 20%; left: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coo-old1 8s ease-in-out infinite;
}
.scn-cephalus-on-old-age .old-man-2 {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coo-old2 9s ease-in-out infinite reverse;
}
.scn-cephalus-on-old-age .old-man-3 {
  position: absolute; bottom: 20%; left: 58%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coo-old3 7s ease-in-out infinite alternate;
}
.scn-cephalus-on-old-age .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: coo-shadow 12s ease-in-out infinite alternate;
}
@keyframes coo-hearth {
  0% { transform: scale(1) translate(0,0); opacity: 0.6; }
  50% { transform: scale(1.05) translate(2px, -1px); opacity: 0.9; }
  100% { transform: scale(0.95) translate(-1px, 1px); opacity: 0.5; }
}
@keyframes coo-old1 {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes coo-old2 {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes coo-old3 {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-1px) rotate(-2deg); }
  66% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes coo-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

.scn-courage-in-state { background: linear-gradient(180deg, #f5e6c8 0%, #d4b68a 50%, #b89b74 100%), radial-gradient(ellipse at 30% 50%, #fef9e7 0%, transparent 60%); }
.scn-courage-in-state .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c9b99a 0%, #e0d0b0 40%, #c9b99a 100%); }
.scn-courage-in-state .column { position:absolute; left:15%; bottom:30%; width:18px; height:70%; background: linear-gradient(90deg, #b89b74 0%, #d4b68a 40%, #b89b74 100%); border-radius:4px; box-shadow: 4px 0 12px rgba(0,0,0,0.2); animation: cs-column 14s ease-in-out infinite alternate; }
.scn-courage-in-state .light-beam { position:absolute; top:20%; left:40%; width:60%; height:50%; background: linear-gradient(135deg, rgba(255,245,200,0.6) 0%, transparent 80%); animation: cs-beam 8s ease-in-out infinite; }
.scn-courage-in-state .soldier { position:absolute; bottom:30%; left:42%; width:24px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-soldier 5s ease-in-out infinite; }
.scn-courage-in-state .shield { position:absolute; bottom:38%; left:46%; width:20px; height:26px; background: radial-gradient(circle at 50% 50%, #b08040 0%, #806030 100%); border-radius:50% 50% 40% 40%; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: cs-shield 6s ease-in-out infinite alternate; }
.scn-courage-in-state .spear { position:absolute; bottom:40%; left:52%; width:4px; height:45px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:2px; transform-origin: bottom left; animation: cs-spear 4s ease-in-out infinite; }
.scn-courage-in-state .dust-mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 6px rgba(255,255,200,0.8); animation: cs-dust 15s linear infinite; }
@keyframes cs-column { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(1) translateX(-1px); } }
@keyframes cs-beam { 0% { opacity: 0.5; transform: rotate(-2deg); } 50% { opacity: 0.8; transform: rotate(1deg); } 100% { opacity: 0.6; transform: rotate(0deg); } }
@keyframes cs-soldier { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cs-shield { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px,-1px) rotate(5deg); } 100% { transform: translate(-2px,1px) rotate(-3deg); } }
@keyframes cs-spear { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(3deg) translate(1px,-1px); } 100% { transform: rotate(-2deg) translate(0,1px); } }
@keyframes cs-dust { 0% { opacity:0; transform: translate(0,0); } 20% { opacity:0.8; } 80% { opacity:0.6; } 100% { opacity:0; transform: translate(30px,-40px); } }

.scn-temperance-and-justice { background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 40%, #b8a88c 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 70%); }
.scn-temperance-and-justice .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4c4a8 0%, #c8b898 80%); }
.scn-temperance-and-justice .table { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #a08868 0%, #705840 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-temperance-and-justice .scale { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #b89870 0%, #806040 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: tj-scale 8s ease-in-out infinite alternate; }
.scn-temperance-and-justice .book-left { position:absolute; bottom:22%; left:30%; width:24px; height:16px; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: tj-book-l 12s ease-in-out infinite; }
.scn-temperance-and-justice .book-right { position:absolute; bottom:22%; right:30%; width:28px; height:14px; background: linear-gradient(225deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: -2px 2px 4px rgba(0,0,0,0.3); animation: tj-book-r 14s ease-in-out infinite; }
.scn-temperance-and-justice .figure-seated { position:absolute; bottom:20%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 60% 60% / 40% 40% 60% 60%; transform-origin: bottom center; animation: tj-figure 9s ease-in-out infinite; }
.scn-temperance-and-justice .candle { position:absolute; bottom:24%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 100%); border-radius:4px 4px 2px 2px; animation: tj-candle 6s ease-in-out infinite alternate; }
.scn-temperance-and-justice .candle-glow { position:absolute; bottom:36%; left:48%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #f0b860 50%, transparent 80%); border-radius:50%; transform:translate(-6px, -10px); animation: tj-glow 4s ease-in-out infinite alternate; }
@keyframes tj-scale { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes tj-book-l { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(-1px,0) rotate(-1deg); } }
@keyframes tj-book-r { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px,1px) rotate(-3deg); } 100% { transform: translate(1px,-1px) rotate(2deg); } }
@keyframes tj-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes tj-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes tj-glow { 0% { opacity:0.6; transform: translate(-6px,-10px) scale(1); } 50% { opacity:0.9; transform: translate(-6px,-12px) scale(1.2); } 100% { opacity:0.7; transform: translate(-6px,-8px) scale(0.9); } }

.scn-justice-found { background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a08868 100%), radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 70%); }
.scn-justice-found .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%); }
.scn-justice-found .window { position:absolute; top:10%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #fff4d0 0%, #e0d0a0 80%); border:4px solid #8a7a5a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,245,200,0.5); animation: jf-window 12s ease-in-out infinite alternate; }
.scn-justice-found .thicket-books { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #7a6040 0%, #4a3a2a 100%); border-radius:20% 20% 4px 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: jf-thicket 18s ease-in-out infinite; }
.scn-justice-found .reaching-figure { position:absolute; bottom:20%; left:40%; width:32px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jf-figure 7s ease-in-out infinite; }
.scn-justice-found .hand { position:absolute; bottom:40%; left:52%; width:14px; height:10px; background: radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30%; transform-origin: left center; animation: jf-hand 5s ease-in-out infinite alternate; }
.scn-justice-found .light-ray { position:absolute; top:10%; left:30%; width:60%; height:80%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 90%); animation: jf-ray 10s ease-in-out infinite; }
.scn-justice-found .dust-particles { position:absolute; top:30%; left:20%; width:6px; height:6px; background:#fff; border-radius:50%; box-shadow: 0 0 8px rgba(255,255,220,0.6); animation: jf-dust 20s linear infinite; }
.scn-justice-found .shadow { position:absolute; bottom:20%; left:30%; width:40px; height:20px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(4px); animation: jf-shadow 8s ease-in-out infinite alternate; }
@keyframes jf-window { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes jf-thicket { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes jf-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(10px) translateY(-1px) rotate(2deg); } 75% { transform: translateX(5px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes jf-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(1px); } }
@keyframes jf-ray { 0% { opacity:0.3; transform: rotate(-5deg); } 50% { opacity:0.6; transform: rotate(2deg); } 100% { opacity:0.4; transform: rotate(0deg); } }
@keyframes jf-dust { 0% { opacity:0; transform: translate(0,0); } 20% { opacity:0.8; } 80% { opacity:0.5; } 100% { opacity:0; transform: translate(-20px, -30px); } }
@keyframes jf-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.8); opacity:0.2; } }

.scn-justice-as-residue { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%), radial-gradient(ellipse at 50% 70%, #3a3a5a 0%, transparent 80%); }
.scn-justice-as-residue .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-justice-as-residue .table { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-justice-as-residue .lamp { position:absolute; bottom:24%; left:30%; width:12px; height:30px; background: linear-gradient(180deg, #c8a860 0%, #887040 100%); border-radius:6px 6px 2px 2px; box-shadow: 0 0 20px rgba(200,168,96,0.3); animation: jr-lamp 9s ease-in-out infinite alternate; }
.scn-justice-as-residue .lamp-glow { position:absolute; bottom:24%; left:30%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 60%, rgba(200,168,96,0.4) 0%, transparent 70%); transform:translate(-19px, 10px); animation: jr-glow 6s ease-in-out infinite alternate; }
.scn-justice-as-residue .residue-pile { position:absolute; bottom:23%; left:45%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, #3a3a4a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: jr-pile 14s ease-in-out infinite; }
.scn-justice-as-residue .figure-bent { position:absolute; bottom:20%; left:40%; width:26px; height:45px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 60% 60% / 30% 30% 60% 60%; transform-origin: bottom left; animation: jr-figure 10s ease-in-out infinite; }
.scn-justice-as-residue .shadow-arc { position:absolute; bottom:20%; left:35%; width:50px; height:20px; background: rgba(0,0,0,0.3); border-radius:50% 50% 30% 30%; filter: blur(6px); animation: jr-shadow 12s ease-in-out infinite alternate; }
@keyframes jr-lamp { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.03); } 100% { transform: rotate(-1deg) scaleY(0.97); } }
@keyframes jr-glow { 0% { opacity:0.4; transform: translate(-19px,10px) scale(1); } 50% { opacity:0.7; transform: translate(-19px,8px) scale(1.1); } 100% { opacity:0.5; transform: translate(-19px,12px) scale(0.9); } }
@keyframes jr-pile { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.05); } 100% { transform: translateY(1px) scaleX(0.95); } }
@keyframes jr-figure { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-5deg) translateX(-2px); } 60% { transform: rotate(3deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes jr-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.3); opacity:0.5; } 100% { transform: scaleX(0.7); opacity:0.2; } }

/* Scene: imaginary-date-question (dim interior, calm) */
.scn-imaginary-date-question {
  background: linear-gradient(180deg, #1c1b2a 0%, #2a263e 40%, #3a3450 100%), 
              radial-gradient(ellipse at 50% 20%, #3a3450 0%, #141322 80%);
}
.scn-imaginary-date-question .wall {
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #2c2740 0%, #1f1c30 100%);
}
.scn-imaginary-date-question .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #241f32 0%, #161220 100%);
  border-radius: 20% 20% 0 0;
}
.scn-imaginary-date-question .table {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 6%;
  background: linear-gradient(90deg, #4a3e30, #3a2e20, #4a3e30);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-imaginary-date-question .scroll {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 4%;
  background: #b8a080; border-radius: 30%; opacity: 0.7;
  animation: siq-scroll 6s ease-in-out infinite alternate;
}
.scn-imaginary-date-question .candle {
  position: absolute; bottom: 24%; left: 40%; width: 2%; height: 8%;
  background: #e8d0b0; border-radius: 2px; box-shadow: inset 0 0 4px #8a6a3a;
}
.scn-imaginary-date-question .flame {
  position: absolute; bottom: 31%; left: 40.5%; width: 1.2%; height: 3%;
  background: radial-gradient(circle at 50% 100%, #ffcc66 0%, #ff8822 40%, transparent 70%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 16px 6px #ffaa44, 0 0 30px 12px rgba(255,170,68,0.3);
  animation: siq-flame 0.8s ease-in-out infinite alternate;
}
.scn-imaginary-date-question .figure-seated {
  position: absolute; bottom: 10%; left: 32%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #1f1c2a 0%, #12101a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: siq-breath 4s ease-in-out infinite;
}
.scn-imaginary-date-question .shadow-shape {
  position: absolute; bottom: 0; left: 25%; width: 35%; height: 18%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: siq-shadow-sway 8s ease-in-out infinite alternate;
}
@keyframes siq-scroll { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(-1px); opacity: 0.8; } 100% { transform: translateY(0); opacity: 0.7; } }
@keyframes siq-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.1) scaleX(0.85); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.85; } }
@keyframes siq-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes siq-shadow-sway { 0% { transform: translateX(-2px); opacity: 0.5; } 50% { transform: translateX(2px); opacity: 0.7; } 100% { transform: translateX(-2px); opacity: 0.5; } }

/* Scene: principal-characters-intro (dim interior, calm) */
.scn-principal-characters-intro {
  background: linear-gradient(180deg, #1f1c30 0%, #2e2842 30%, #231e34 70%, #14101e 100%),
              radial-gradient(ellipse at 60% 10%, #2e2842 0%, #14101e 80%);
}
.scn-principal-characters-intro .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2c263f 0%, #1f1a2e 100%);
}
.scn-principal-characters-intro .bg-column {
  position: absolute; bottom: 0; left: 20%; width: 4%; height: 75%;
  background: linear-gradient(90deg, #3a3250, #2a2440, #3a3250);
  border-radius: 6px; box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-principal-characters-intro .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-conic-gradient(#25203a 0% 25%, transparent 0% 50%) 50% / 20px 20px;
  background-blend-mode: overlay; opacity: 0.6;
  animation: pci-floor 20s linear infinite;
}
.scn-principal-characters-intro .bench {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 5%;
  background: linear-gradient(90deg, #4a3e30, #3a2e20, #4a3e30);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-principal-characters-intro .figures-group {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(180deg, #1c1828 0%, #0f0c1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pci-group 6s ease-in-out infinite;
}
.scn-principal-characters-intro .speaker {
  position: absolute; bottom: 14%; left: 58%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #232030 0%, #100e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pci-speak 3s ease-in-out infinite alternate;
}
.scn-principal-characters-intro .window-glow {
  position: absolute; top: 15%; right: 8%; width: 10%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #f0e8c0 0%, #d0c090 40%, transparent 70%);
  border-radius: 10%; opacity: 0.5; box-shadow: 0 0 20px 10px rgba(200,180,120,0.2);
  animation: pci-glow 8s ease-in-out infinite alternate;
}
@keyframes pci-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes pci-group { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pci-speak { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pci-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

/* Scene: cephalus-portrait (firelit, warm) */
.scn-cephalus-portrait {
  background: linear-gradient(180deg, #1a1008 0%, #2d1a0e 30%, #4a2b18 60%, #22100a 100%),
              radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 70%);
}
.scn-cephalus-portrait .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2d1f14 0%, #1a0f0a 100%);
}
.scn-cephalus-portrait .hearth-stone {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #4a3520, #2a1a0e);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-cephalus-portrait .fire-core {
  position: absolute; bottom: 28%; left: 44%; width: 12%; height: 12%;
  background: radial-gradient(circle at 50% 60%, #ff8822 0%, #cc5500 40%, #661100 100%);
  border-radius: 50% 50% 30% 30%;
  animation: cep-fire 0.5s ease-in-out infinite alternate;
}
.scn-cephalus-portrait .fire-glow {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(circle at 50% 80%, #ffaa44 0%, #cc6600 40%, transparent 70%);
  opacity: 0.6; border-radius: 50%;
  animation: cep-glow 1.2s ease-in-out infinite alternate;
}
.scn-cephalus-portrait .smoke {
  position: absolute; bottom: 36%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(ellipse, rgba(180,140,100,0.3) 0%, transparent 70%);
  filter: blur(8px); border-radius: 50%;
  animation: cep-smoke 6s ease-in-out infinite alternate;
}
.scn-cephalus-portrait .altar {
  position: absolute; bottom: 12%; left: 38%; width: 24%; height: 8%;
  background: linear-gradient(90deg, #5a3a20, #3a2210);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-cephalus-portrait .old-man {
  position: absolute; bottom: 16%; left: 44%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #2a1a10 0%, #140a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cep-bow 8s ease-in-out infinite;
}
.scn-cephalus-portrait .offering-bowl {
  position: absolute; bottom: 18%; left: 46%; width: 4%; height: 3%;
  background: #a06030; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px 2px #cc8833; animation: cep-bowl 4s ease-in-out infinite alternate;
}
@keyframes cep-fire { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.15) scaleX(0.85); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; } }
@keyframes cep-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes cep-smoke { 0% { transform: translateY(0) scaleX(1); opacity: 0.2; } 50% { transform: translateY(-6px) scaleX(1.2); opacity: 0.4; } 100% { transform: translateY(0) scaleX(1); opacity: 0.2; } }
@keyframes cep-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes cep-bowl { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* Scene: polemarchus-youth (bright interior, calm) */
.scn-polemarchus-youth {
  background: linear-gradient(180deg, #e8dcc8 0%, #f0e8d4 40%, #d8ccb8 70%, #c0b4a0 100%),
              radial-gradient(ellipse at 70% 20%, #f8f0e0 0%, #c0b4a0 80%);
}
.scn-polemarchus-youth .bright-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ece4d0 0%, #d4c8b0 100%);
}
.scn-polemarchus-youth .door-frame {
  position: absolute; bottom: 0; left: 65%; width: 6%; height: 80%;
  background: linear-gradient(90deg, #8a7a62, #6a5a42, #8a7a62);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.1);
}
.scn-polemarchus-youth .window-light {
  position: absolute; top: 10%; left: 10%; width: 15%; height: 25%;
  background: radial-gradient(circle, #fef8e8 0%, #e8dcc8 60%, transparent 100%);
  border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,248,232,0.3);
  animation: ply-light 6s ease-in-out infinite alternate;
}
.scn-polemarchus-youth .floor-checks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #b8aa90 0px 2px, #c8bca0 2px 20px);
  opacity: 0.5;
}
.scn-polemarchus-youth .polemarchus {
  position: absolute; bottom: 12%; left: 40%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #3a3228 0%, #1e1810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ply-grab 4s ease-in-out infinite;
}
.scn-polemarchus-youth .socrates-silhouette {
  position: absolute; bottom: 10%; left: 52%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #2a2218 0%, #120e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ply-stand 5s ease-in-out infinite alternate;
}
.scn-polemarchus-youth .dust-mote {
  position: absolute; top: 30%; left: 30%; width: 2%; height: 2%;
  background: #e0d8c0; border-radius: 50%; filter: blur(1px);
  animation: ply-dust 12s linear infinite;
}
@keyframes ply-light { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ply-grab { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ply-stand { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes ply-dust { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.6; } 100% { transform: translate(-20px, -40px); opacity: 0; } }

.scn-homeric-heroes-lament {
  background: linear-gradient(180deg, #1a1814 0%, #2d2418 40%, #3d2e1a 70%, #1f1a12 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a20 0%, transparent 60%);
}
.scn-homeric-heroes-lament .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1e1810 100%);
  animation: hhl-wall 12s ease-in-out infinite alternate;
}
.scn-homeric-heroes-lament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1e14 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: hhl-floor 8s ease-in-out infinite;
}
.scn-homeric-heroes-lament .couch {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: hhl-couch 6s ease-in-out infinite alternate;
}
.scn-homeric-heroes-lament .achilles {
  position: absolute; bottom: 28%; left: 38%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hhl-figure 5s ease-in-out infinite;
}
.scn-homeric-heroes-lament .arm {
  position: absolute; bottom: 38%; left: 36%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: 50% 10%;
  animation: hhl-arm 4s ease-in-out infinite;
}
.scn-homeric-heroes-lament .lantern-glow {
  position: absolute; bottom: 40%; left: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e8b060 0%, #c08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #c08030, 0 0 80px 40px rgba(192,128,48,0.3);
  animation: hhl-lantern 3s ease-in-out infinite alternate;
}
.scn-homeric-heroes-lament .tear {
  position: absolute; width: 4px; height: 6px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(0.5px);
  animation: hhl-tear-fall 2s ease-in infinite;
}
.scn-homeric-heroes-lament .tear-1 {
  left: 42%; top: 18%;
  animation-delay: 0s;
}
.scn-homeric-heroes-lament .tear-2 {
  left: 48%; top: 15%;
  animation-delay: 1s;
}
@keyframes hhl-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hhl-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hhl-couch { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hhl-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) } }
@keyframes hhl-arm { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-20deg) translateY(2px) } }
@keyframes hhl-lantern { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes hhl-tear-fall { 0% { transform: translateY(0) rotate(0deg); opacity: 1 } 50% { transform: translateY(30px) rotate(10deg); opacity: 0.8 } 100% { transform: translateY(60px) rotate(20deg); opacity: 0 } }

.scn-laughter-restrained {
  background: linear-gradient(180deg, #1e1a18 0%, #2d261c 40%, #3d3420 70%, #1f1a14 100%),
              radial-gradient(ellipse at 60% 20%, #5a4a28 0%, transparent 60%);
}
.scn-laughter-restrained .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a241e 0%, #1e1a14 100%);
  animation: lr-wall 10s ease-in-out infinite alternate;
}
.scn-laughter-restrained .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1c1814 0%, #2a2018 100%);
  border-radius: 40% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-laughter-restrained .hephaestus-down {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 30px;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-fall 2s ease-in-out infinite;
}
.scn-laughter-restrained .god-god-1,
.scn-laughter-restrained .god-god-2,
.scn-laughter-restrained .god-god-3 {
  position: absolute; bottom: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a38 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: lr-laugh 1.5s ease-in-out infinite;
}
.scn-laughter-restrained .god-god-1 { left: 50%; animation-delay: 0s; }
.scn-laughter-restrained .god-god-2 { left: 60%; animation-delay: 0.3s; }
.scn-laughter-restrained .god-god-3 { left: 70%; animation-delay: 0.6s; }
.scn-laughter-restrained .lamp-swing {
  position: absolute; top: 15%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8a860 0%, #8a6a30 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: lr-swing 3s ease-in-out infinite;
}
.scn-laughter-restrained .shadow-shake {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: lr-shake 1.5s ease-in-out infinite;
}
@keyframes lr-wall { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes lr-fall { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(-15deg); } }
@keyframes lr-laugh { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(8deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-1px) rotate(6deg); } }
@keyframes lr-swing { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(12deg); } 100% { transform: rotate(0deg); } }
@keyframes lr-shake { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

.scn-truth-honoured {
  background: linear-gradient(180deg, #1e1c1a 0%, #2a2420 40%, #3a3028 70%, #1f1a16 100%),
              radial-gradient(ellipse at 50% 40%, #5a4a38 0%, transparent 50%);
}
.scn-truth-honoured .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2420 0%, #1e1a16 100%);
  animation: th-bg 20s ease-in-out infinite alternate;
}
.scn-truth-honoured .pillar-left,
.scn-truth-honoured .pillar-right {
  position: absolute; bottom: 0; width: 12px; height: 80%;
  background: linear-gradient(90deg, #5a4a38 0%, #3a2e22 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-truth-honoured .pillar-left { left: 20%; }
.scn-truth-honoured .pillar-right { right: 20%; }
.scn-truth-honoured .figure-truth {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a48 0%, #3a2e20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: th-figure 8s ease-in-out infinite;
}
.scn-truth-honoured .torch-flame {
  position: absolute; bottom: 54%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #f0c080 0%, #c08030 50%, transparent 80%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,0.3);
  animation: th-flame 3s ease-in-out infinite alternate;
}
.scn-truth-honoured .light-rays {
  position: absolute; top: 20%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,192,128,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: th-rays 6s ease-in-out infinite alternate;
}
.scn-truth-honoured .scroll {
  position: absolute; bottom: 25%; left: 44%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a38 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: th-scroll 10s ease-in-out infinite;
}
@keyframes th-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes th-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes th-flame { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.15); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.85; } }
@keyframes th-rays { 0% { opacity: 0.3; transform: scale(1) rotate(0deg); } 50% { opacity: 0.6; transform: scale(1.05) rotate(3deg); } 100% { opacity: 0.4; transform: scale(0.95) rotate(-2deg); } }
@keyframes th-scroll { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-temperance-lessons {
  background: linear-gradient(180deg, #1c1a18 0%, #2a2420 40%, #3a3028 70%, #1f1a16 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 50%);
}
.scn-temperance-lessons .bg-subtle {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2420 0%, #1e1a16 100%);
  animation: tl-bg 18s ease-in-out infinite alternate;
}
.scn-temperance-lessons .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c1814 0%, #2a2018 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-temperance-lessons .leader {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #6a5a48 0%, #3a2e20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-walk 5s ease-in-out infinite;
}
.scn-temperance-lessons .follower-1,
.scn-temperance-lessons .follower-2 {
  position: absolute; bottom: 25%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #5a4a38 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-walk 5s ease-in-out infinite;
}
.scn-temperance-lessons .follower-1 { left: 45%; animation-delay: 0.2s; }
.scn-temperance-lessons .follower-2 { left: 60%; animation-delay: 0.5s; }
.scn-temperance-lessons .standard-bearer {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a38 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: tl-pole 5s ease-in-out infinite;
}
.scn-temperance-lessons .banner {
  position: absolute; bottom: 60%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #705840 100%);
  border-radius: 0 6px 6px 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 10% 50%);
  animation: tl-banner 6s ease-in-out infinite alternate;
}
@keyframes tl-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes tl-walk { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(9px) rotate(-2deg); } }
@keyframes tl-pole { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes tl-banner { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-2px) rotate(3deg); opacity: 1; } 100% { transform: translateY(0) rotate(-2deg); opacity: 0.9; } }

.scn-socrates-praises-sons { background: linear-gradient(180deg, #f5e6c8 0%, #d4b88c 40%, #b89a6a 100%), radial-gradient(ellipse at 40% 60%, #f0d8a8 0%, transparent 60%); }
.scn-socrates-praises-sons .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0d8b0 0%, #d4b88c 100%); }
.scn-socrates-praises-sons .table   { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: soc-table 12s ease-in-out infinite; }
.scn-socrates-praises-sons .socrates{ position:absolute; bottom:28%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc-figure 6s ease-in-out infinite; }
.scn-socrates-praises-sons .son-left{ position:absolute; bottom:28%; left:40%; width:28px; height:46px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc-figure 6s ease-in-out infinite reverse; }
.scn-socrates-praises-sons .son-right{ position:absolute; bottom:28%; left:55%; width:28px; height:46px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc-figure 7s ease-in-out infinite alternate; }
.scn-socrates-praises-sons .window { position:absolute; top:10%; left:65%; width:60px; height:80px; background: radial-gradient(ellipse at center, #ffe0a0 0%, #e0c080 60%, #c0a060 100%); border: 4px solid #8a6a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,224,160,.3); animation: soc-glow 4s ease-in-out infinite alternate; }
.scn-socrates-praises-sons .sunbeam{ position:absolute; top:15%; left:68%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,224,160,.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: soc-sunbeam 8s ease-in-out infinite alternate; }
@keyframes soc-table   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes soc-figure  { 0% { transform: translateX(0) rotate(-2deg) } 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 soc-glow    { 0% { box-shadow: inset 0 0 20px rgba(255,224,160,.2), 0 0 10px rgba(255,224,160,.1); } 50% { box-shadow: inset 0 0 30px rgba(255,224,160,.5), 0 0 20px rgba(255,224,160,.3); } 100% { box-shadow: inset 0 0 15px rgba(255,224,160,.3), 0 0 8px rgba(255,224,160,.15); } }
@keyframes soc-sunbeam { 0% { opacity: .3; transform: scaleY(1) translateX(0) } 50% { opacity: .8; transform: scaleY(1.1) translateX(5px) } 100% { opacity: .4; transform: scaleY(0.95) translateX(-3px) } }

.scn-origin-of-society { background: linear-gradient(180deg, #c8d8c0 0%, #a0b898 40%, #7a9a7a 100%), radial-gradient(ellipse at 50% 100%, #8aaa7a 0%, transparent 70%); }
.scn-origin-of-society .horizon  { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #b0c8a0 0%, #8aaa70 100%); animation: ori-horizon 20s ease-in-out infinite alternate; }
.scn-origin-of-society .ground   { position:absolute; bottom:0; left:0; right:0; top:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); }
.scn-origin-of-society .hut      { position:absolute; bottom:30%; left:20%; width:80px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 20% 20% 4% 4%; box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: ori-hut 15s ease-in-out infinite; }
.scn-origin-of-society .trader1  { position:absolute; bottom:25%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ori-figure 8s ease-in-out infinite; }
.scn-origin-of-society .trader2  { position:absolute; bottom:25%; left:55%; width:25px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ori-figure 9s ease-in-out infinite reverse; }
.scn-origin-of-society .basket   { position:absolute; bottom:30%; left:50%; width:30px; height:20px; background: radial-gradient(ellipse at center, #c0a060 0%, #a08040 100%); border-radius: 30% 30% 20% 20%; animation: ori-basket 6s ease-in-out infinite alternate; }
.scn-origin-of-society .fire     { position:absolute; bottom:32%; left:70%; width:20px; height:30px; background: radial-gradient(ellipse at center bottom, #e08040 0%, #c04020 30%, #8a2a0a 60%, transparent 100%); border-radius: 50%; animation: ori-fire 3s ease-in-out infinite alternate; }
@keyframes ori-horizon { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ori-hut     { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ori-figure  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(2px) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ori-basket  { 0% { transform: scale(1) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(.95) translateY(0) } }
@keyframes ori-fire    { 0% { transform: scaleY(1) opacity(.8) } 50% { transform: scaleY(1.2) opacity(1) } 100% { transform: scaleY(0.9) opacity(.7) } }

.scn-growth-of-city { background: linear-gradient(180deg, #b0c0b0 0%, #809080 40%, #506060 100%), radial-gradient(ellipse at 30% 50%, #c0d0b0 0%, transparent 60%); }
.scn-growth-of-city .skyline   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0d0c0 0%, #a0b0a0 100%); animation: gro-sky 25s ease-in-out infinite alternate; }
.scn-growth-of-city .building1{ position:absolute; bottom:30%; left:10%; width:60px; height:100px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,.3); animation: gro-build 20s ease-in-out infinite; }
.scn-growth-of-city .building2{ position:absolute; bottom:30%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 2px; animation: gro-build 25s ease-in-out infinite reverse; }
.scn-growth-of-city .merchant { position:absolute; bottom:25%; left:55%; width:22px; height:35px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gro-figure 7s ease-in-out infinite; }
.scn-growth-of-city .cart     { position:absolute; bottom:28%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20%; animation: gro-cart 12s ease-in-out infinite alternate; }
.scn-growth-of-city .goods    { position:absolute; bottom:30%; left:32%; width:20px; height:15px; background: radial-gradient(ellipse at center, #c0a060 0%, #a08040 100%); border-radius: 30%; animation: gro-goods 8s ease-in-out infinite; }
.scn-growth-of-city .road     { position:absolute; bottom:0; left:0; right:0; top:55%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
@keyframes gro-sky   { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes gro-build { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes gro-figure{ 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(3px) rotate(0deg) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gro-cart  { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes gro-goods { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(.95) } }

.scn-city-of-pigs { background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 40%, #b0a080 100%), radial-gradient(ellipse at 30% 60%, #e0d8b0 0%, transparent 60%); }
.scn-city-of-pigs .sky           { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0ddc8 0%, #c0baa0 100%); animation: cit-sky 20s ease-in-out infinite alternate; }
.scn-city-of-pigs .field         { position:absolute; bottom:0; left:0; right:0; top:40%; background: linear-gradient(180deg, #8aaa6a 0%, #6a8a4a 100%); }
.scn-city-of-pigs .table-cloth   { position:absolute; bottom:30%; left:25%; right:25%; top:45%; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: cit-cloth 10s ease-in-out infinite alternate; }
.scn-city-of-pigs .food-pile     { position:absolute; bottom:32%; left:35%; width:50px; height:30px; background: radial-gradient(ellipse at center, #d0b060 0%, #b09040 100%); border-radius: 40% 40% 30% 30%; animation: cit-food 6s ease-in-out infinite; }
.scn-city-of-pigs .chestnut-fire { position:absolute; bottom:35%; left:60%; width:25px; height:35px; background: radial-gradient(ellipse at center bottom, #e08040 0%, #c06030 30%, #a04020 60%, transparent 100%); border-radius: 50%; animation: cit-fire 3s ease-in-out infinite alternate; }
.scn-city-of-pigs .figures       { position:absolute; bottom:28%; left:40%; width:30px; height:35px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cit-recline 12s ease-in-out infinite; }
.scn-city-of-pigs .tree          { position:absolute; bottom:35%; left:75%; width:40px; height:60px; background: radial-gradient(ellipse at center, #4a6a3a 0%, #2a4a1a 100%); border-radius: 40% 40% 20% 20%; animation: cit-tree 15s ease-in-out infinite; }
@keyframes cit-sky    { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cit-cloth  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cit-food   { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(.95) } }
@keyframes cit-fire   { 0% { transform: scaleY(1) opacity(.8) } 50% { transform: scaleY(1.2) opacity(1) } 100% { transform: scaleY(0.9) opacity(.7) } }
@keyframes cit-recline{ 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(8deg) } 75% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cit-tree   { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }

/* Scene 1: philosopher-statesman-in-history */
.scn-psh1 {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1411 40%, #0f0b09 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a22 0%, transparent 70%);
}
.scn-psh1 .wall   { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,45,35,.6) 0%, transparent 100%); animation: psh1-wall 8s ease-in-out infinite alternate; }
.scn-psh1 .desk   { position:absolute; bottom:10%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a352a 0%, #2c1f18 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); animation: psh1-desk 10s ease-in-out infinite; }
.scn-psh1 .book   { position:absolute; bottom:16%; left:30%; width:18%; height:8%; background: linear-gradient(135deg, #6a5040 0%, #4a3528 50%, #3a2518 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: psh1-book 6s ease-in-out infinite alternate; }
.scn-psh1 .candle { position:absolute; bottom:22%; left:48%; width:4px; height:12%; background: linear-gradient(90deg, #5a4030 0%, #7a6050 40%, #5a4030 100%); border-radius: 40%; box-shadow: 0 0 16px 6px #b08040; animation: psh1-candle 3s ease-in-out infinite alternate; }
.scn-psh1 .figure { position:absolute; bottom:12%; left:25%; width:20%; height:45%; background: linear-gradient(180deg, #1e1814 0%, #0f0b09 50%, #050303 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -8px 0 12px rgba(0,0,0,.8); animation: psh1-figure 7s ease-in-out infinite; }
.scn-psh1 .glow   { position:absolute; bottom:18%; left:46%; width:8%; height:16%; background: radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 70%); animation: psh1-glow 3s ease-in-out infinite alternate; }
.scn-psh1 .scroll { position:absolute; bottom:16%; right:34%; width:12%; height:4%; background: linear-gradient(90deg, #8a7050 0%, #b09070 50%, #8a7050 100%); border-radius: 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: psh1-scroll 12s ease-in-out infinite; }

@keyframes psh1-wall    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes psh1-desk    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes psh1-book    { 0% { transform: rotate(-2deg); opacity:.9 } 50% { transform: rotate(2deg); opacity:1 } 100% { transform: rotate(-1deg); opacity:.95 } }
@keyframes psh1-candle  { 0% { transform: scaleY(.95); opacity:.85 } 50% { box-shadow: 0 0 20px 8px #d09050; opacity:1 } 100% { transform: scaleY(1); opacity:.9 } }
@keyframes psh1-figure  { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) scale(1.01) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) scale(.99) } 100% { transform: translateX(0) rotate(0) } }
@keyframes psh1-glow    { 0% { opacity:.5; transform: scale(.8) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(1) } }
@keyframes psh1-scroll  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }

/* Scene 2: unpopularity-of-philosopher-statesman */
.scn-psh2 {
  background:
    linear-gradient(180deg, #1f1b18 0%, #14110e 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 80%, #2a1f18 0%, transparent 60%);
}
.scn-psh2 .floor    { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1e1812 0%, #0b0704 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-psh2 .shadow-bg{ position:absolute; inset:0; background: radial-gradient(ellipse at 60% 60%, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 100%); animation: psh2-shadow 15s ease-in-out infinite alternate; }
.scn-psh2 .figure   { position:absolute; bottom:15%; left:38%; width:18%; height:50%; background: linear-gradient(180deg, #0f0c0a 0%, #040202 50%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: -10px 0 15px rgba(0,0,0,.8); animation: psh2-figure 5s ease-in-out infinite; }
.scn-psh2 .murmur-1 { position:absolute; bottom:25%; left:10%; width:10%; height:5%; background: radial-gradient(circle, rgba(180,160,140,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: psh2-murmur-1 4s ease-in-out infinite alternate; }
.scn-psh2 .murmur-2 { position:absolute; bottom:30%; left:72%; width:8%; height:4%; background: radial-gradient(circle, rgba(180,160,140,.12) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: psh2-murmur-2 5s ease-in-out infinite alternate; animation-delay: -2s; }
.scn-psh2 .murmur-3 { position:absolute; bottom:20%; left:85%; width:6%; height:3%; background: radial-gradient(circle, rgba(180,160,140,.1) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: psh2-murmur-3 6s ease-in-out infinite alternate; animation-delay: -4s; }
.scn-psh2 .doubt    { position:absolute; bottom:55%; left:42%; width:2%; height:4%; background: radial-gradient(circle, #8a7050 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(138,112,80,.3); animation: psh2-doubt 7s ease-in-out infinite; }

@keyframes psh2-shadow     { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes psh2-figure     { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(4px) rotate(1deg) } 66% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes psh2-murmur-1   { 0% { opacity:.2; transform: scale(.5) } 50% { opacity:.5; transform: scale(1.3) } 100% { opacity:.3; transform: scale(.8) } }
@keyframes psh2-murmur-2   { 0% { opacity:.15; transform: translateY(0) } 50% { opacity:.4; transform: translateY(-5px) } 100% { opacity:.2; transform: translateY(2px) } }
@keyframes psh2-murmur-3   { 0% { opacity:.1; transform: scale(.4) } 50% { opacity:.3; transform: scale(1.5) } 100% { opacity:.15; transform: scale(.6) } }
@keyframes psh2-doubt      { 0% { opacity:.6; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.9) } }

/* Scene 3: other-corruptions */
.scn-psh3 {
  background:
    linear-gradient(180deg, #1a1410 0%, #100c08 50%, #050302 100%),
    radial-gradient(ellipse at 30% 50%, #2a1f18 0%, transparent 70%);
}
.scn-psh3 .backdrop  { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,20,15,.5) 0%, transparent 100%); animation: psh3-backdrop 10s ease-in-out infinite alternate; }
.scn-psh3 .pedestal  { position:absolute; bottom:10%; left:50%; width:30%; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-psh3 .corrupt-1 { position:absolute; bottom:25%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #2c201a 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: psh3-corrupt-1 4s ease-in-out infinite; }
.scn-psh3 .corrupt-2 { position:absolute; bottom:25%; left:55%; width:8%; height:18%; background: linear-gradient(180deg, #2c201a 0%, #0f0a06 100%); border-radius: 50% 50% 30% 40% / 60% 50% 30% 30%; transform-origin: bottom center; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: psh3-corrupt-2 5s ease-in-out infinite; animation-delay: -1s; }
.scn-psh3 .corrupt-3 { position:absolute; bottom:25%; left:50%; width:6%; height:22%; background: linear-gradient(180deg, #2c201a 0%, #0f0a06 100%); border-radius: 40% 60% 40% 50% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: psh3-corrupt-3 6s ease-in-out infinite; animation-delay: -2s; }
.scn-psh3 .corrupt-4 { position:absolute; bottom:25%; left:52%; width:7%; height:17%; background: linear-gradient(90deg, #2c201a 0%, #0f0a06 50%, #2c201a 100%); border-radius: 50% 50% 40% 40% / 60% 40% 30% 30%; transform-origin: bottom center; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: psh3-corrupt-4 7s ease-in-out infinite; animation-delay: -3s; }
.scn-psh3 .fog      { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(100,80,60,.08) 0%, transparent 50%); filter: blur(20px); animation: psh3-fog 12s ease-in-out infinite alternate; }

@keyframes psh3-backdrop   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes psh3-corrupt-1  { 0% { transform: translateY(0) rotate(0) scale(1) } 33% { transform: translateY(-3px) rotate(5deg) scale(1.05) } 66% { transform: translateY(2px) rotate(-4deg) scale(.95) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes psh3-corrupt-2  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-6deg) } 100% { transform: translateY(2px) rotate(3deg) } }
@keyframes psh3-corrupt-3  { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(8deg) } 100% { transform: scale(.95) rotate(-4deg) } }
@keyframes psh3-corrupt-4  { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(5px) rotate(-3deg) } 66% { transform: translateX(-5px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes psh3-fog        { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(.95) } }

/* Scene 4: bad-imitations */
.scn-psh4 {
  background:
    linear-gradient(180deg, #1c1713 0%, #12100c 40%, #080604 100%),
    radial-gradient(ellipse at 70% 50%, #2a1f1a 0%, transparent 60%);
}
.scn-psh4 .stage       { position:absolute; bottom:8%; left:5%; width:90%; height:20%; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-psh4 .curtain-left{ position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #4a3528 0%, #2c1f14 50%, #1a0f08 100%); border-radius: 0 30% 30% 0; transform-origin: top left; animation: psh4-curtain-l 12s ease-in-out infinite alternate; }
.scn-psh4 .curtain-right{ position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #4a3528 0%, #2c1f14 50%, #1a0f08 100%); border-radius: 30% 0 0 30%; transform-origin: top right; animation: psh4-curtain-r 12s ease-in-out infinite alternate; }
.scn-psh4 .imitation-1 { position:absolute; bottom:18%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #2a1f18 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: -6px 0 12px rgba(0,0,0,.7); animation: psh4-imit-1 5s ease-in-out infinite; }
.scn-psh4 .imitation-2 { position:absolute; bottom:18%; left:48%; width:10%; height:32%; background: linear-gradient(180deg, #2a1f18 0%, #0f0a06 100%); border-radius: 50% 50% 30% 40% / 60% 50% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 10px rgba(0,0,0,.7); animation: psh4-imit-2 6s ease-in-out infinite; animation-delay: -2s; }
.scn-psh4 .imitation-3 { position:absolute; bottom:18%; left:62%; width:8%; height:28%; background: linear-gradient(180deg, #2a1f18 0%, #0f0a06 100%); border-radius: 40% 60% 30% 50% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.7); animation: psh4-imit-3 7s ease-in-out infinite; animation-delay: -4s; }
.scn-psh4 .sign       { position:absolute; bottom:26%; left:35%; width:30%; height:4%; background: linear-gradient(90deg, #4a3020 0%, #6a5038 50%, #4a3020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: psh4-sign 9s ease-in-out infinite; }

@keyframes psh4-curtain-l { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes psh4-curtain-r { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes psh4-imit-1    { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(4deg) } 66% { transform: translateY(2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psh4-imit-2    { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(1px) scale(.98) } }
@keyframes psh4-imit-3    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-5deg) } 100% { transform: translateX(-3px) rotate(2deg) } }
@keyframes psh4-sign      { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }

.scn-spartan-encouragement {
  background: linear-gradient(180deg, #2c1e16 0%, #3d2b1e 40%, #4a3728 70%, #5c4532 100%),
              radial-gradient(ellipse at 50% 100%, #664c35 0%, transparent 60%);
}
.scn-spartan-encouragement .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1c 0%, #2c1e14 100%); }
.scn-spartan-encouragement .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5c4532 0%, #3d2b1e 100%); border-top:2px solid #664c35; }
.scn-spartan-encouragement .window { position:absolute; top:8%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 60%, #4a4a7e 100%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 20px #0a0a2e; }
.scn-spartan-encouragement .lamp { position:absolute; bottom:40%; left:8%; width:8px; height:12px; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c08030, 0 0 40px 16px rgba(192,128,48,.4); animation: sp-en-lamp 4s ease-in-out infinite alternate; }
.scn-spartan-encouragement .figure-a { position:absolute; bottom:20%; left:25%; 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: sp-en-figure1 6s ease-in-out infinite; }
.scn-spartan-encouragement .figure-b { position:absolute; bottom:20%; left:45%; 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: sp-en-figure2 6s ease-in-out infinite; }
.scn-spartan-encouragement .shadow { position:absolute; bottom:18%; left:20%; width:50%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(3px); }
.scn-spartan-encouragement .curtain { position:absolute; top:0; right:0; width:12%; height:60%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 0 20% 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); animation: sp-en-curtain 12s ease-in-out infinite alternate; transform-origin: top right; }
@keyframes sp-en-lamp { 0% { opacity:.7; box-shadow: 0 0 15px 5px #c08030; } 50% { opacity:1; box-shadow: 0 0 30px 12px #f0c060, 0 0 50px 20px rgba(240,192,96,.5); } 100% { opacity:.8; box-shadow: 0 0 20px 8px #c08030; } }
@keyframes sp-en-figure1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes sp-en-figure2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sp-en-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9) translateY(2px); } 100% { transform: scaleX(1); } }

.scn-spartan-reaction {
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 40%, #2a2a3e 70%, #1e1e2e 100%),
              radial-gradient(ellipse at 60% 20%, #30304a 0%, transparent 70%);
}
.scn-spartan-reaction .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 100%); }
.scn-spartan-reaction .table { position:absolute; bottom:20%; left:10%; right:10%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-spartan-reaction .goldpile { position:absolute; bottom:22%; left:38%; width:24%; height:8%; background: radial-gradient(ellipse, #f0d080 0%, #c0a050 60%, #806030 100%); border-radius:50%; box-shadow: 0 0 12px 6px #d0a060; animation: sp-re-gold 8s ease-in-out infinite; }
.scn-spartan-reaction .figure { position:absolute; bottom:20%; right:18%; 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: sp-re-figure 5s ease-in-out infinite; }
.scn-spartan-reaction .hand { position:absolute; bottom:30%; right:28%; width:14px; height:4px; background: #1a1a2a; border-radius:50% 20% 20% 50%; transform-origin: right center; animation: sp-re-hand 7s ease-in-out infinite alternate; }
.scn-spartan-reaction .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(3px); }
.scn-spartan-reaction .lamp { position:absolute; top:8%; left:10%; width:10px; height:14px; background: radial-gradient(circle, #f0c060 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,.3); animation: sp-re-lamp 3s ease-in-out infinite alternate; }
@keyframes sp-re-gold { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 18px 8px #e0b060; } 100% { transform: scale(0.98); opacity:.85; } }
@keyframes sp-re-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sp-re-hand { 0% { transform: rotate(-10deg) translateX(0); } 100% { transform: rotate(20deg) translateX(4px); } }
@keyframes sp-re-lamp { 0% { opacity:.6; box-shadow: 0 0 15px 5px #a06020; } 50% { opacity:1; box-shadow: 0 0 40px 15px #f0c060, 0 0 80px 30px rgba(240,192,96,.4); } 100% { opacity:.7; box-shadow: 0 0 20px 8px #a06020; } }

.scn-spartan-marriage-education {
  background: linear-gradient(180deg, #2a1f15 0%, #3a2a1c 40%, #4a3524 70%, #5c4532 100%),
              radial-gradient(ellipse at 50% 100%, #664c35 0%, transparent 60%);
}
.scn-spartan-marriage-education .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5c4532 0%, #3d2b1e 100%); }
.scn-spartan-marriage-education .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1c 0%, #2a1f15 100%); }
.scn-spartan-marriage-education .figure-m { position:absolute; bottom:25%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-ma-dance-m 6s ease-in-out infinite; }
.scn-spartan-marriage-education .figure-w { position:absolute; bottom:25%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-ma-dance-w 6s ease-in-out infinite; }
.scn-spartan-marriage-education .lyre { position:absolute; bottom:28%; left:55%; width:12px; height:16px; background: radial-gradient(ellipse, #d0a060 0%, #a07030 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 6px 2px #b08040; animation: sp-ma-lyre 8s ease-in-out infinite; }
.scn-spartan-marriage-education .lamp { position:absolute; top:10%; right:15%; width:8px; height:10px; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c08030, 0 0 40px 16px rgba(192,128,48,.3); animation: sp-ma-lamp 4s ease-in-out infinite alternate; }
.scn-spartan-marriage-education .shadow { position:absolute; bottom:23%; left:25%; width:50%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); }
.scn-spartan-marriage-education .flower { position:absolute; bottom:20%; left:60%; width:6px; height:6px; background: radial-gradient(circle, #d0a070 0%, #a07050 100%); border-radius:50%; box-shadow: 0 0 4px 2px #b08060; animation: sp-ma-flower 10s ease-in-out infinite; }
@keyframes sp-ma-dance-m { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sp-ma-dance-w { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sp-ma-lyre { 0% { transform: rotate(0); } 33% { transform: rotate(8deg); } 66% { transform: rotate(-4deg); } 100% { transform: rotate(0); } }
@keyframes sp-ma-lamp { 0% { opacity:.6; box-shadow: 0 0 12px 4px #c08030; } 50% { opacity:1; box-shadow: 0 0 30px 12px #f0c060, 0 0 50px 20px rgba(240,192,96,.5); } 100% { opacity:.7; box-shadow: 0 0 18px 6px #c08030; } }
@keyframes sp-ma-flower { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.4); opacity:1; } 100% { transform: scale(1); opacity:.8; } }

.scn-spartan-love-of-poetry {
  background: linear-gradient(180deg, #2a1f15 0%, #3a2a1c 40%, #4a3524 70%, #5c4532 100%),
              radial-gradient(ellipse at 50% 80%, #664c35 0%, transparent 70%);
}
.scn-spartan-love-of-poetry .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1c 0%, #2a1f15 100%); }
.scn-spartan-love-of-poetry .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5c4532 0%, #3d2b1e 100%); }
.scn-spartan-love-of-poetry .couch { position:absolute; bottom:18%; left:10%; width:35%; height:14%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-spartan-love-of-poetry .poet { position:absolute; bottom:22%; left:55%; 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: sp-lo-poet 8s ease-in-out infinite; }
.scn-spartan-love-of-poetry .listener { position:absolute; bottom:20%; left:20%; width:22px; 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: sp-lo-listener 6s ease-in-out infinite; }
.scn-spartan-love-of-poetry .scroll { position:absolute; bottom:28%; left:60%; width:16px; height:4px; background: linear-gradient(180deg, #d0b080 0%, #b09060 100%); border-radius:2px; transform-origin: left center; animation: sp-lo-scroll 12s ease-in-out infinite alternate; }
.scn-spartan-love-of-poetry .lamp { position:absolute; top:8%; right:10%; width:8px; height:12px; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c08030, 0 0 40px 16px rgba(192,128,48,.3); animation: sp-lo-lamp 4s ease-in-out infinite alternate; }
.scn-spartan-love-of-poetry .shadow { position:absolute; bottom:16%; left:15%; width:70%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); }
.scn-spartan-love-of-poetry .curtain { position:absolute; top:0; left:0; width:10%; height:50%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 0 30% 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.5); animation: sp-lo-curtain 15s ease-in-out infinite alternate; transform-origin: top left; }
@keyframes sp-lo-poet { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(5deg); } 66% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sp-lo-listener { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sp-lo-scroll { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(-1deg); } }
@keyframes sp-lo-lamp { 0% { opacity:.6; box-shadow: 0 0 12px 4px #c08030; } 50% { opacity:1; box-shadow: 0 0 30px 12px #f0c060, 0 0 50px 20px rgba(240,192,96,.5); } 100% { opacity:.7; box-shadow: 0 0 18px 6px #c08030; } }
@keyframes sp-lo-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9) translateX(-2px); } 100% { transform: scaleX(1); } }

/* cause-of-all-this */
.scn-cause-of-all-this {
  background:
    radial-gradient(ellipse at 50% 30%, #3e2e1e 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2a1e14 40%, #1e1610 100%);
}
.scn-cause-of-all-this .room-walls {
  position:absolute; inset:0; background:linear-gradient(135deg, rgba(60,40,20,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  animation: ci-shift 12s ease-in-out infinite alternate;
}
.scn-cause-of-all-this .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:30%; background:linear-gradient(180deg, #4a3520 0%, #2a1e10 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-cause-of-all-this .lamp {
  position:absolute; bottom:35%; left:50%; width:30px; height:40px; transform:translateX(-50%);
  background:linear-gradient(180deg, #b08040 0%, #7a5830 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b08040;
  animation: ci-lamp-flicker 1.5s steps(2) infinite;
}
.scn-cause-of-all-this .glow {
  position:absolute; bottom:30%; left:44%; width:12%; height:20%; background:radial-gradient(ellipse, rgba(200,160,80,0.5) 0%, transparent 70%);
  animation: ci-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-cause-of-all-this .figure {
  position:absolute; bottom:15%; left:38%; 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: ci-figure-twitch 3s ease-in-out infinite;
}
.scn-cause-of-all-this .shadow-books {
  position:absolute; bottom:12%; left:15%; width:40%; height:8%; background:linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ci-book-slide 15s linear infinite;
}
.scn-cause-of-all-this .paper {
  position:absolute; bottom:22%; left:45%; width:20%; height:6%;
  background:linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: ci-paper-flutter 5s ease-in-out infinite;
}
@keyframes ci-shift { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes ci-lamp-flicker { 0% { opacity:0.9 } 50% { opacity:0.6 } 100% { opacity:1 } }
@keyframes ci-glow-pulse { 0% { transform:scale(0.95); opacity:0.7 } 100% { transform:scale(1.05); opacity:1 } }
@keyframes ci-figure-twitch { 0% { transform:translateX(0) rotate(-2deg) } 30% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(-1px) rotate(-1deg) } 80% { transform:translateX(1px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ci-book-slide { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(0) } }
@keyframes ci-paper-flutter { 0% { transform:rotate(3deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-2px) } 100% { transform:rotate(5deg) translateY(0) } }

/* had-this-been-strain */
.scn-had-this-been-strain {
  background:
    radial-gradient(circle at 40% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #12100e 0%, #1e1812 60%, #0e0c0a 100%);
}
.scn-had-this-been-strain .room-walls {
  position:absolute; inset:0; background:linear-gradient(135deg, rgba(30,20,10,0.4) 0%, transparent 80%);
  animation: hb-wall-drift 20s ease-in-out infinite alternate;
}
.scn-had-this-been-strain .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-had-this-been-strain .figure {
  position:absolute; bottom:12%; left:38%; width:22px; height:55px;
  background:linear-gradient(180deg, #14101a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  animation: hb-strain-figure 4s ease-in-out infinite;
}
.scn-had-this-been-strain .chain-shadows {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background:repeating-linear-gradient(90deg, rgba(0,0,0,0.3) 0px, transparent 4px, rgba(0,0,0,0.1) 8px, transparent 12px);
  animation: hb-chains 6s linear infinite;
}
.scn-had-this-been-strain .light-source {
  position:absolute; top:20%; left:50%; width:20px; height:20px; transform:translateX(-50%);
  background:radial-gradient(circle, #d0a060 0%, #a07840 100%);
  border-radius:50%; box-shadow: 0 0 30px 10px #a07840, 0 0 60px 20px rgba(160,120,64,0.3);
  animation: hb-light-gaze 2s ease-in-out infinite alternate;
}
.scn-had-this-been-strain .light-rays {
  position:absolute; top:20%; left:38%; width:24%; height:40%; background:linear-gradient(135deg, rgba(200,160,80,0.15) 0%, transparent 100%);
  transform-origin: top left; transform: rotate(10deg);
  animation: hb-rays-sway 8s ease-in-out infinite alternate;
}
.scn-had-this-been-strain .dust-motes {
  position:absolute; top:10%; left:20%; width:60%; height:60%;
  background:radial-gradient(circle at 30% 50%, rgba(180,140,80,0.08) 0%, transparent 60%);
  animation: hb-dust 15s linear infinite;
}
@keyframes hb-wall-drift { 0% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes hb-strain-figure { 0% { transform: translateX(0) rotate(-3deg) translateY(0) } 25% { transform: translateX(3px) rotate(2deg) translateY(-2px) } 50% { transform: translateX(-2px) rotate(-1deg) translateY(1px) } 75% { transform: translateX(1px) rotate(3deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) translateY(0) } }
@keyframes hb-chains { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes hb-light-gaze { 0% { opacity:0.8; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.1) } 100% { opacity:0.85; transform:translateX(-50%) scale(0.95) } }
@keyframes hb-rays-sway { 0% { transform:rotate(10deg) scaleX(1) } 100% { transform:rotate(15deg) scaleX(1.1) } }
@keyframes hb-dust { 0% { transform:translateY(0) rotate(0) } 33% { transform:translateY(-10px) rotate(5deg) } 66% { transform:translateY(5px) rotate(-3deg) } 100% { transform:translateY(0) rotate(0) } }

/* i-want-opposite-side */
.scn-i-want-opposite-side {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3820 0%, transparent 70%),
    linear-gradient(180deg, #1e1810 0%, #2a1e12 50%, #1a140e 100%);
}
.scn-i-want-opposite-side .room-walls {
  position:absolute; inset:0; background:linear-gradient(135deg, rgba(40,30,15,0.3) 0%, transparent 60%, rgba(0,0,0,0.4) 100%);
  animation: os-room 10s ease-in-out infinite alternate;
}
.scn-i-want-opposite-side .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #302418 0%, #1e140e 100%);
}
.scn-i-want-opposite-side .table {
  position:absolute; bottom:18%; left:30%; right:30%; height:14%; background:linear-gradient(180deg, #5a3e28 0%, #3a2818 100%);
  border-radius: 6px; box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
.scn-i-want-opposite-side .lamp-center {
  position:absolute; bottom:30%; left:50%; width:24px; height:30px; transform:translateX(-50%);
  background:linear-gradient(180deg, #c09050 0%, #906830 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 18px 4px #b08040;
  animation: os-lamp-flicker 1.2s steps(2) infinite;
}
.scn-i-want-opposite-side .figure-left {
  position:absolute; bottom:12%; left:25%; width:20px; height:48px;
  background:linear-gradient(180deg, #1a1618 0%, #0a0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: os-figure-left 3.5s ease-in-out infinite;
}
.scn-i-want-opposite-side .figure-right {
  position:absolute; bottom:12%; right:25%; width:20px; height:48px;
  background:linear-gradient(180deg, #1a1618 0%, #0a0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: os-figure-right 4s ease-in-out infinite;
}
.scn-i-want-opposite-side .glow-pool {
  position:absolute; bottom:18%; left:35%; right:35%; height:12%;
  background:radial-gradient(ellipse, rgba(200,160,80,0.3) 0%, transparent 70%);
  animation: os-pool 3s ease-in-out infinite alternate;
}
.scn-i-want-opposite-side .shadow-stripes {
  position:absolute; top:10%; left:0; right:0; height:40%;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,0.2) 0px, transparent 8px, rgba(0,0,0,0.1) 16px);
  animation: os-stripes 8s linear infinite;
}
@keyframes os-room { 0% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes os-lamp-flicker { 0% { opacity:0.9 } 50% { opacity:0.6 } 100% { opacity:1 } }
@keyframes os-figure-left { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-3px) rotate(3deg) } 60% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes os-figure-right { 0% { transform: translateX(0) rotate(2deg) } 40% { transform: translateX(4px) rotate(-2deg) } 70% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes os-pool { 0% { transform:scaleY(1); opacity:0.6 } 100% { transform:scaleY(1.2); opacity:1 } }
@keyframes os-stripes { 0% { background-position:0 0 } 100% { background-position:0 40px } }

/* justice-highest-good */
.scn-justice-highest-good {
  background:
    radial-gradient(ellipse at 30% 20%, #5a4030 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%);
}
.scn-justice-highest-good .room-walls {
  position:absolute; inset:0; background:linear-gradient(135deg, rgba(50,30,20,0.2) 0%, transparent 80%);
  animation: jh-walls 15s ease-in-out infinite alternate;
}
.scn-justice-highest-good .pedestal {
  position:absolute; bottom:15%; left:38%; right:38%; height:18%; background:linear-gradient(180deg, #4a3420 0%, #2a1e12 100%);
  border-radius: 6px 6px 10px 10px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-justice-highest-good .book {
  position:absolute; bottom:28%; left:45%; width:10%; height:8%; background:linear-gradient(135deg, #c0a870 0%, #a08850 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.4);
  transform: rotate(-5deg); 
  animation: jh-book-lift 6s ease-in-out infinite;
}
.scn-justice-highest-good .light-beam {
  position:absolute; top:0; left:45%; width:10%; height:60%;
  background:linear-gradient(180deg, rgba(220,180,100,0.2) 0%, transparent 90%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: jh-beam 8s ease-in-out infinite alternate;
}
.scn-justice-highest-good .figure {
  position:absolute; bottom:18%; left:48%; width:18px; height:40px; transform:translateX(-50%);
  background:linear-gradient(180deg, #1a1620 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jh-figure-reach 4.5s ease-in-out infinite;
}
.scn-justice-highest-good .orb-glow {
  position:absolute; top:10%; left:48%; width:4%; height:4%; transform:translateX(-50%);
  background:radial-gradient(circle, #e0c080 0%, #b09050 60%);
  border-radius:50%; box-shadow: 0 0 40px 12px rgba(200,160,80,0.5);
  animation: jh-orb-pulse 2.5s ease-in-out infinite alternate;
}
.scn-justice-highest-good .wisps {
  position:absolute; top:15%; left:40%; width:20%; height:30%;
  background:radial-gradient(ellipse at 50% 0%, rgba(200,180,120,0.1) 0%, transparent 70%);
  animation: jh-wisps 12s linear infinite;
}
.scn-justice-highest-good .shadow-shape {
  position:absolute; bottom:0; left:20%; right:20%; height:30%;
  background:linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: jh-shadow 10s ease-in-out infinite alternate;
}
@keyframes jh-walls { 0% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes jh-book-lift { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes jh-beam { 0% { opacity:0.5; transform:scaleX(1) } 100% { opacity:0.8; transform:scaleX(1.2) } }
@keyframes jh-figure-reach { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 30% { transform:translateX(-50%) translateY(-3px) rotate(2deg) } 60% { transform:translateX(-50%) translateY(1px) rotate(-1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }
@keyframes jh-orb-pulse { 0% { opacity:0.7; transform:translateX(-50%) scale(0.95) } 100% { opacity:1; transform:translateX(-50%) scale(1.05) } }
@keyframes jh-wisps { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-10px) rotate(5deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes jh-shadow { 0% { opacity:0.3 } 100% { opacity:0.6 } }

.scn-ideal-truth-in-art {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #4a2a1a 40%, #3a1e10 100%),
    radial-gradient(ellipse at 50% 20%, #6b3a20 0%, transparent 60%);
}
.scn-ideal-truth-in-art .wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2515 0%, #4a2e1a 50%, #3a2010 100%); }
.scn-ideal-truth-in-art .easel { position:absolute; bottom:15%; left:30%; width:6px; height:150px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); transform:translateX(-50%) rotate(2deg); border-radius:2px; }
.scn-ideal-truth-in-art .canvas { position:absolute; bottom:22%; left:30%; width:100px; height:120px; background: linear-gradient(135deg, #c8a878 0%, #a07850 50%, #806040 100%); transform:translateX(-50%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: tia-canvas 10s ease-in-out infinite alternate; }
.scn-ideal-truth-in-art .palette { position:absolute; bottom:12%; left:40%; width:40px; height:24px; background: radial-gradient(circle at 20% 30%, #6a4a2a 0%, #4a2a1a 60%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 50% 50% 60%; transform:rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: tia-palette 6s ease-in-out infinite; }
.scn-ideal-truth-in-art .artist { position:absolute; bottom:8%; left:24%; width:20px; height:50px; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tia-artist 4s ease-in-out infinite alternate; }
.scn-ideal-truth-in-art .lantern-glow { position:absolute; top:20%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffb060 0%, #c08030 40%, transparent 70%); filter: blur(8px); animation: tia-lantern-glow 3s ease-in-out infinite alternate; }
.scn-ideal-truth-in-art .lantern-body { position:absolute; top:18%; right:25%; width:16px; height:24px; background: linear-gradient(180deg, #a06848 0%, #704030 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 4px #c08030; transform:translateX(50%); }
.scn-ideal-truth-in-art .brush { position:absolute; bottom:14%; left:36%; width:3px; height:18px; background: #5a3a20; border-radius:1px; transform:rotate(-30deg); transform-origin: bottom; animation: tia-brush 6s ease-in-out infinite; }

@keyframes tia-canvas { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) } 100% { transform:translateX(-50%) scale(0.98) } }
@keyframes tia-palette { 0%,100% { transform:rotate(-15deg) translateY(0) } 50% { transform:rotate(-15deg) translateY(-2px) } }
@keyframes tia-artist { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes tia-lantern-glow { 0% { opacity:.7; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(1) } }
@keyframes tia-brush { 0%,100% { transform:rotate(-30deg) } 50% { transform:rotate(-20deg) translateY(-2px) } }

.scn-future-of-poetry {
  background: 
    linear-gradient(180deg, #1e1a2e 0%, #2a2038 40%, #1c1828 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e3a 0%, transparent 60%);
}
.scn-future-of-poetry .wall-shelf { position:absolute; top:5%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2e44 0%, #2a1e34 100%); border-radius:4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-future-of-poetry .desk { position:absolute; bottom:15%; left:15%; right:15%; height:40px; background: linear-gradient(180deg, #4a3e4e 0%, #2a1e2e 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-future-of-poetry .open-book { position:absolute; bottom:25%; left:30%; width:70px; height:40px; background: linear-gradient(135deg, #a89878 0%, #786848 50%, #584838 100%); border-radius:2px; transform:rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fop-book 12s ease-in-out infinite alternate; }
.scn-future-of-poetry .lamp-glow { position:absolute; top:12%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e0c050 0%, #a08030 40%, transparent 70%); filter: blur(10px); animation: fop-lamp-glow 5s ease-in-out infinite alternate; }
.scn-future-of-poetry .lamp-base { position:absolute; top:10%; right:20%; width:12px; height:28px; background: linear-gradient(180deg, #b09040 0%, #706028 100%); border-radius:20% 20% 10% 10%; transform:translateX(50%); }
.scn-future-of-poetry .quill { position:absolute; bottom:28%; left:25%; width:3px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); transform:rotate(15deg); transform-origin: bottom; animation: fop-quill 8s ease-in-out infinite; }
.scn-future-of-poetry .inkwell { position:absolute; bottom:22%; left:22%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-future-of-poetry .chair { position:absolute; bottom:8%; left:40%; width:18px; height:48px; background: linear-gradient(180deg, #3a2e3a 0%, #1a121a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fop-chair 15s ease-in-out infinite alternate; }

@keyframes fop-book { 0% { transform:rotate(-2deg) scale(1) } 50% { transform:rotate(0deg) scale(1.02) } 100% { transform:rotate(-3deg) scale(0.98) } }
@keyframes fop-lamp-glow { 0% { opacity:.6; transform:scale(.9) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:.7; transform:scale(1) } }
@keyframes fop-quill { 0%,100% { transform:rotate(15deg) } 50% { transform:rotate(25deg) translateY(-2px) } }
@keyframes fop-chair { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }

.scn-milton-and-epic {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #162032 40%, #10141e 100%),
    radial-gradient(ellipse at 50% 30%, #1e2a3a 0%, transparent 60%);
}
.scn-milton-and-epic .bg-panel { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e30 0%, #141420 100%); }
.scn-milton-and-epic .desk-large { position:absolute; bottom:12%; left:10%; right:10%; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:4px; box-shadow: 0 6px 14px rgba(0,0,0,.6); }
.scn-milton-and-epic .scroll { position:absolute; bottom:20%; left:30%; width:80px; height:50px; background: linear-gradient(135deg, #c8b888 0%, #a08868 50%, #786848 100%); border-radius:4px; transform:rotate(-3deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: mae-scroll 14s ease-in-out infinite alternate; }
.scn-milton-and-epic .inkwell-set { position:absolute; bottom:15%; left:22%; width:12px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 20% 20%; }
.scn-milton-and-epic .milton-figure { position:absolute; bottom:8%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #1a1218 0%, #0e0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mae-milton 4s ease-in-out infinite alternate; }
.scn-milton-and-epic .window-frame { position:absolute; top:8%; right:5%; width:80px; height:100px; border:3px solid #2a2a3a; background: linear-gradient(180deg, #0e1220 0%, #1a1e30 100%); border-radius:4px; box-shadow: 0 0 20px rgba(0,0,30,.5); }
.scn-milton-and-epic .moon-glow { position:absolute; top:10%; right:12%; width:50px; height:50px; background: radial-gradient(circle, #c0d0e8 0%, #8090b0 40%, transparent 70%); filter: blur(8px); animation: mae-moon 6s ease-in-out infinite alternate; }
.scn-milton-and-epic .quill-dark { position:absolute; bottom:25%; left:38%; width:3px; height:28px; background: linear-gradient(180deg, #c0a880 0%, #a08868 100%); transform:rotate(-20deg); transform-origin: bottom; animation: mae-quill 5s ease-in-out infinite; }

@keyframes mae-scroll { 0% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-3px) } 100% { transform:rotate(-4deg) translateY(0) } }
@keyframes mae-milton { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes mae-moon { 0% { opacity:.6; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }
@keyframes mae-quill { 0%,100% { transform:rotate(-20deg) } 50% { transform:rotate(-10deg) translateY(-2px) } }

.scn-love-and-poetry {
  background: 
    linear-gradient(180deg, #1e1212 0%, #2a1a1a 40%, #1a0e0e 100%),
    radial-gradient(ellipse at 50% 50%, #3a1e1e 0%, transparent 60%);
}
.scn-love-and-poetry .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); }
.scn-love-and-poetry .candle-holder { position:absolute; bottom:20%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #704828 0%, #402818 100%); transform:translateX(-50%); border-radius:2px; }
.scn-love-and-poetry .candle-flame { position:absolute; bottom:30%; left:50%; width:12px; height:18px; background: radial-gradient(circle at 50% 80%, #ffb060 0%, #ff7030 40%, transparent 70%); transform:translateX(-50%); filter: blur(4px); animation: lap-flame 3s ease-in-out infinite alternate; }
.scn-love-and-poetry .figure-left { position:absolute; bottom:8%; left:35%; width:18px; height:48px; background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); transform-origin: bottom; animation: lap-figures 7s ease-in-out infinite alternate; }
.scn-love-and-poetry .figure-right { position:absolute; bottom:8%; right:35%; width:18px; height:48px; background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); transform-origin: bottom; animation: lap-figures 7s ease-in-out infinite alternate-reverse; }
.scn-love-and-poetry .rose-petal { position:absolute; bottom:18%; left:30%; width:10px; height:6px; background: radial-gradient(ellipse, #b87878 0%, #884848 100%); border-radius:50% 50% 40% 40% / 80% 80% 40% 40%; filter: blur(1px); animation: lap-petal 9s ease-in-out infinite; }
.scn-love-and-poetry .window-love { position:absolute; top:10%; right:10%; width:70px; height:90px; border:2px solid #3a2a2a; background: linear-gradient(180deg, #0e0e1a 0%, #12102a 100%); border-radius:4px; }
.scn-love-and-poetry .heart-glow { position:absolute; top:22%; right:22%; width:30px; height:30px; background: radial-gradient(circle, #c84848 0%, #882828 50%, transparent 80%); filter: blur(8px); animation: lap-heart 5s ease-in-out infinite alternate; }

@keyframes lap-flame { 0% { transform:translateX(-50%) scale(1) rotate(-5deg) } 50% { transform:translateX(-50%) scale(1.15) rotate(5deg) } 100% { transform:translateX(-50%) scale(0.95) rotate(-2deg) } }
@keyframes lap-figures { 0% { transform:translateY(0) rotate(5deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(5deg) } }
@keyframes lap-petal { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-5px) rotate(20deg) } }
@keyframes lap-heart { 0% { opacity:.5; transform:scale(.8) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:.6; transform:scale(.9) } }

.scn-image-of-the-soul { background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1f1410 100%), linear-gradient(180deg, #2d1f16 0%, #1a110e 80%, #0d0a08 100%); }
.scn-image-of-the-soul .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3525 0%, #2d1f16 100%); animation: iots-wall 20s ease-in-out infinite alternate; }
.scn-image-of-the-soul .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%); transform-origin: bottom; animation: iots-floor 15s ease-in-out infinite alternate; }
.scn-image-of-the-soul .window { position:absolute; top:12%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(135deg, rgba(180, 140, 80, 0.3) 0%, rgba(100, 70, 40, 0.1) 100%); border: 4px solid #4a3525; border-radius: 8px; box-shadow: inset 0 0 30px rgba(200, 160, 100, 0.2); animation: iots-window 25s ease-in-out infinite; }
.scn-image-of-the-soul .figure { position:absolute; bottom:32%; left:50%; width:40px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1008 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iots-figure 8s ease-in-out infinite alternate; }
.scn-image-of-the-soul .soul-core { position:absolute; bottom:38%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffcc80 0%, #e6a84d 40%, #a06d2a 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #e6a84d, 0 0 40px 20px rgba(230,168,77,0.4); animation: iots-core 4s ease-in-out infinite alternate; }
.scn-image-of-the-soul .soul-glow { position:absolute; bottom:36%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,204,128,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: iots-glow 6s ease-in-out infinite alternate; }
.scn-image-of-the-soul .shadow { position:absolute; bottom:30%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: iots-shadow 8s ease-in-out infinite alternate; }
@keyframes iots-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes iots-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes iots-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes iots-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes iots-core { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes iots-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(1) } }
@keyframes iots-shadow { 0% { width:80px; opacity:0.5 } 50% { width:90px; opacity:0.7 } 100% { width:80px; opacity:0.5 } }

.scn-reason-urged { background: linear-gradient(180deg, #2a1c12 0%, #1f130c 50%, #140c08 100%), radial-gradient(ellipse at 50% 80%, #1f130c 0%, transparent 70%); }
.scn-reason-urged .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3525 0%, #2a1c12 100%); animation: ru-wall 18s ease-in-out infinite alternate; }
.scn-reason-urged .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%); animation: ru-floor 22s ease-in-out infinite alternate; }
.scn-reason-urged .table { position:absolute; bottom:25%; left:50%; width:120px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a20 0%, #3a2410 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: ru-table 10s ease-in-out infinite alternate; }
.scn-reason-urged .man { position:absolute; bottom:28%; left:38%; width:30px; height:140px; background: linear-gradient(180deg, #1a1008 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ru-man 6s ease-in-out infinite alternate; }
.scn-reason-urged .beast { position:absolute; bottom:28%; right:38%; width:50px; height:90px; background: linear-gradient(180deg, #1a1008 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ru-beast 7s ease-in-out infinite alternate; }
.scn-reason-urged .candle { position:absolute; bottom:20%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e6a84d 0%, #a06d2a 100%); border-radius: 2px; box-shadow: 0 0 10px 4px #e6a84d; animation: ru-candle 3s ease-in-out infinite alternate; }
.scn-reason-urged .candle-glow { position:absolute; bottom:18%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(230,168,77,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: ru-glow 4s ease-in-out infinite alternate; }
@keyframes ru-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ru-floor { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes ru-table { 0% { height:15px } 50% { height:16px } 100% { height:15px } }
@keyframes ru-man { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ru-beast { 0% { transform: translateX(0) translateY(0) rotate(2deg) scale(1) } 50% { transform: translateX(2px) translateY(-1px) rotate(-1deg) scale(1.02) } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1) } }
@keyframes ru-candle { 0% { height:20px; opacity:0.8 } 50% { height:22px; opacity:1 } 100% { height:20px; opacity:0.9 } }
@keyframes ru-glow { 0% { transform: translateX(-50%) scale(0.9); opacity:0.5 } 50% { transform: translateX(-50%) scale(1.1); opacity:0.8 } 100% { transform: translateX(-50%) scale(1); opacity:0.6 } }

.scn-profit-question { background: radial-gradient(ellipse at 40% 60%, #2a1e12 0%, #140e08 100%), linear-gradient(180deg, #1f140e 0%, #0f0a06 100%); }
.scn-profit-question .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); animation: pq-wall 16s ease-in-out infinite alternate; }
.scn-profit-question .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%); animation: pq-floor 20s ease-in-out infinite alternate; }
.scn-profit-question .figure { position:absolute; bottom:30%; left:30%; width:40px; height:160px; background: linear-gradient(180deg, #1a1008 0%, #0f0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pq-figure 9s ease-in-out infinite alternate; }
.scn-profit-question .gold-pile { position:absolute; bottom:20%; left:60%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, #d4a84d 0%, #a06d2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.5); animation: pq-gold 12s ease-in-out infinite alternate; }
.scn-profit-question .gold-glow { position:absolute; bottom:18%; left:60%; width:100px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(212,168,77,0.3) 0%, transparent 60%); filter: blur(10px); animation: pq-goldglow 8s ease-in-out infinite alternate; }
.scn-profit-question .window { position:absolute; top:10%; right:15%; width:100px; height:140px; background: linear-gradient(135deg, rgba(180, 140, 80, 0.2) 0%, rgba(100, 70, 40, 0.05) 100%); border: 3px solid #4a3525; border-radius: 6px; animation: pq-window 30s ease-in-out infinite; }
.scn-profit-question .moonlight { position:absolute; top:8%; right:10%; width:120px; height:200px; background: linear-gradient(180deg, rgba(200, 180, 160, 0.1) 0%, transparent 100%); transform: rotate(-20deg); animation: pq-moonlight 25s ease-in-out infinite alternate; }
@keyframes pq-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pq-floor { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes pq-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pq-gold { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes pq-goldglow { 0% { transform: translateX(-50%) scale(0.9) opacity:0.4 } 50% { transform: translateX(-50%) scale(1.1) opacity:0.7 } 100% { transform: translateX(-50%) scale(1) opacity:0.5 } }
@keyframes pq-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pq-moonlight { 0% { transform: rotate(-20deg) translateX(0) opacity:0.3 } 50% { transform: rotate(-18deg) translateX(5px) opacity:0.6 } 100% { transform: rotate(-20deg) translateX(0) opacity:0.4 } }

.scn-ninth-book-summary { background: radial-gradient(ellipse at 50% 50%, #1a1e2a 0%, #0a0e14 100%), linear-gradient(180deg, #141922 0%, #080c12 100%); }
.scn-ninth-book-summary .room-frame { position:absolute; inset:5% 5% 5% 5%; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border: 6px solid #3a2a1a; border-radius: 12px; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); animation: nbs-frame 30s ease-in-out infinite alternate; }
.scn-ninth-book-summary .sky { position:absolute; top:10%; left:10%; right:10%; bottom:30%; background: linear-gradient(180deg, #0a1220 0%, #141c30 50%, #1a2640 100%); border-radius: 8px; animation: nbs-sky 20s ease-in-out infinite alternate; }
.scn-ninth-book-summary .star-pattern { position:absolute; top:12%; left:12%; right:12%; bottom:32%; background: radial-gradient(circle at 30% 40%, #c0d0e0 0%, transparent 2%), radial-gradient(circle at 60% 20%, #c0d0e0 0%, transparent 2%), radial-gradient(circle at 80% 60%, #c0d0e0 0%, transparent 2%), radial-gradient(circle at 45% 70%, #c0d0e0 0%, transparent 2%), radial-gradient(circle at 70% 30%, #c0d0e0 0%, transparent 2%); animation: nbs-stars 40s linear infinite; }
.scn-ninth-book-summary .star-bright { position:absolute; top:30%; left:50%; width:10px; height:10px; transform:translate(-50%, -50%); background: radial-gradient(circle, #e0e8f0 0%, #80a0c0 80%); border-radius: 50%; box-shadow: 0 0 20px 6px #80a0c0, 0 0 40px 12px rgba(128,160,192,0.4); animation: nbs-bright 5s ease-in-out infinite alternate; }
.scn-ninth-book-summary .horizon { position:absolute; bottom:30%; left:10%; right:10%; height:4px; background: linear-gradient(90deg, transparent 0%, #4a5a6a 50%, transparent 100%); animation: nbs-horizon 15s ease-in-out infinite alternate; }
.scn-ninth-book-summary .pillar-left { position:absolute; top:5%; left:5%; width:20px; bottom:5%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.5); animation: nbs-pillar 12s ease-in-out infinite alternate; }
.scn-ninth-book-summary .pillar-right { position:absolute; top:5%; right:5%; width:20px; bottom:5%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.5); animation: nbs-pillar 12s ease-in-out infinite alternate-reverse; }
@keyframes nbs-frame { 0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.8) } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.8) } }
@keyframes nbs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nbs-stars { 0% { background-position: 0 0 } 100% { background-position: 100% 100% } }
@keyframes nbs-bright { 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 } }
@keyframes nbs-horizon { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes nbs-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }

.scn-life-of-unjust-better {
  background: 
    linear-gradient(180deg, #2b2b1a 0%, #3a3a24 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
  filter: brightness(0.85) contrast(1.1);
}
.scn-life-of-unjust-better .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: si1-wall 12s ease-in-out infinite alternate;
}
.scn-life-of-unjust-better .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0f0a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-life-of-unjust-better .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.7);
  animation: si1-table 9s ease-in-out infinite alternate;
}
.scn-life-of-unjust-better .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
}
.scn-life-of-unjust-better .flame {
  position: absolute; bottom: 48%; left: 50%; width: 6px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffc080 0%, #ff8030 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #ff8030, 0 0 40px 12px rgba(255,128,48,0.5);
  animation: si1-flame 0.8s ease-in-out infinite alternate;
}
.scn-life-of-unjust-better .figure {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-figure 6s ease-in-out infinite;
}
.scn-life-of-unjust-better .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: si1-shadow 6s ease-in-out infinite;
}
@keyframes si1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si1-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si1-flame { 0% { transform: translateX(-50%) scale(1,1) rotate(-3deg); } 50% { transform: translateX(-50%) scale(1.05,1.2) rotate(0deg); } 100% { transform: translateX(-50%) scale(0.95,0.9) rotate(3deg); } }
@keyframes si1-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes si1-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.2); } 100% { transform: translateX(0) scale(1); } }

.scn-adeimantus-adds {
  background: 
    linear-gradient(135deg, #2a2a1e 0%, #3a2e22 40%, #1e1410 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-adeimantus-adds .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e0a 100%);
  animation: si2-wall 10s ease-in-out infinite alternate;
}
.scn-adeimantus-adds .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #140a06 0%, #1e120a 100%);
  border-radius: 30% 20% 0 0;
}
.scn-adeimantus-adds .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.6);
  animation: si2-table 7s ease-in-out infinite alternate;
}
.scn-adeimantus-adds .lamp {
  position: absolute; bottom: 30%; left: 35%; width: 10px; height: 18px;
  background: linear-gradient(0deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
}
.scn-adeimantus-adds .lamp::after {
  content: ''; position: absolute; bottom: 100%; left: 50%; width: 8px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffb060 0%, #ff6020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 24px 6px #ff6020, 0 0 50px 15px rgba(255,96,32,0.4);
  animation: si2-lamp 1.2s ease-in-out infinite alternate;
}
.scn-adeimantus-adds .figure-a {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1e1210 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-fig-a 5s ease-in-out infinite;
}
.scn-adeimantus-adds .figure-b {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1e1210 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-fig-b 5s ease-in-out infinite alternate;
}
.scn-adeimantus-adds .shadow-a {
  position: absolute; bottom: 20%; left: 25%; width: 25px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(2px);
  animation: si2-shad-a 5s ease-in-out infinite;
}
.scn-adeimantus-adds .shadow-b {
  position: absolute; bottom: 20%; left: 55%; width: 25px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(2px);
  animation: si2-shad-b 5s ease-in-out infinite alternate;
}
@keyframes si2-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes si2-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes si2-lamp { 0% { transform: translateX(-50%) scale(1,1); } 50% { transform: translateX(-50%) scale(1.05,1.3); } 100% { transform: translateX(-50%) scale(0.95,0.9); } }
@keyframes si2-fig-a { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes si2-fig-b { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-4px) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes si2-shad-a { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(1.2); } 100% { transform: translateX(0) scale(1); } }
@keyframes si2-shad-b { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-4px) scale(1.2); } 100% { transform: translateX(0) scale(1); } }

.scn-appearance-and-gods {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1e2a 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%);
}
.scn-appearance-and-gods .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  animation: si3-wall 15s ease-in-out infinite alternate;
}
.scn-appearance-and-gods .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0508 0%, #140e0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-appearance-and-gods .figure-c {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1214 0%, #080405 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si3-fig 8s ease-in-out infinite;
}
.scn-appearance-and-gods .window {
  position: absolute; top: 5%; left: 45%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #1a2a3a 0%, #0a0a1a 100%);
  border: 2px solid #3a2a1a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.1);
  animation: si3-window 12s ease-in-out infinite alternate;
}
.scn-appearance-and-gods .light-beam {
  position: absolute; top: 8%; left: 48%; width: 4px; height: 120px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  transform: rotate(5deg);
  transform-origin: top center;
  filter: blur(4px);
  animation: si3-beam 9s ease-in-out infinite alternate;
}
.scn-appearance-and-gods .dust {
  position: absolute; top: 10%; left: 30%; width: 100%; height: 80%;
  background: repeating-linear-gradient(0deg, rgba(255,220,120,0.05) 0px, transparent 20px);
  animation: si3-dust 20s linear infinite;
}
@keyframes si3-wall { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes si3-fig { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes si3-window { 0% { box-shadow: inset 0 0 20px rgba(255,200,100,0.05); } 50% { box-shadow: inset 0 0 40px rgba(255,200,100,0.15); } 100% { box-shadow: inset 0 0 20px rgba(255,200,100,0.05); } }
@keyframes si3-beam { 0% { opacity: 0.2; transform: rotate(3deg) scaleY(1); } 50% { opacity: 0.5; transform: rotate(7deg) scaleY(1.1); } 100% { opacity: 0.2; transform: rotate(3deg) scaleY(1); } }
@keyframes si3-dust { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }

.scn-homer-on-just-king {
  background: 
    linear-gradient(135deg, #1a1a1a 0%, #2a2018 40%, #0e0a0a 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-homer-on-just-king .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0a0606 100%);
  animation: si4-wall 14s ease-in-out infinite alternate;
}
.scn-homer-on-just-king .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0604 0%, #120e0a 100%);
  border-radius: 15% 15% 0 0;
}
.scn-homer-on-just-king .frame {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 35%;
  border: 3px solid #3a2a1a;
  border-radius: 4% 4% 2% 2%;
  background: linear-gradient(135deg, #1e1e1e 0%, #0a0a0a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  overflow: hidden;
  animation: si4-frame 10s ease-in-out infinite alternate;
}
.scn-homer-on-just-king .king-silhouette {
  position: absolute; bottom: 30%; left: 18%; width: 30px; height: 50px;
  background: #0a0606;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-king 6s ease-in-out infinite;
}
.scn-homer-on-just-king .tree {
  position: absolute; bottom: 28%; left: 50%; width: 4px; height: 40px;
  background: #0a0606;
  border-radius: 20%;
}
.scn-homer-on-just-king .tree::before {
  content: ''; position: absolute; top: -16px; left: -10px; width: 24px; height: 20px;
  background: #0a0606;
  border-radius: 50% 50% 40% 40%;
}
.scn-homer-on-just-king .sheep {
  position: absolute; bottom: 20%; left: 55%; width: 12px; height: 8px;
  background: #0a0606;
  border-radius: 50% 50% 40% 40%;
  animation: si4-sheep 9s ease-in-out infinite;
}
.scn-homer-on-just-king .sea {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #0a0606 0%, #1a1210 50%, #0a0606 100%);
  border-radius: 30% 30% 0 0;
  animation: si4-sea 15s linear infinite;
}
@keyframes si4-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.75; } }
@keyframes si4-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes si4-king { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si4-sheep { 0% { transform: translateX(0); } 33% { transform: translateX(5px); } 66% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes si4-sea { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* ===== Scene: prejudices-of-physicians (calm, dim interior) ===== */
.scn-prejudices-of-physicians {
  background: linear-gradient(180deg, #2b241c 0%, #3d3228 40%, #4a3c30 100%), radial-gradient(ellipse at 30% 60%, #4a3c30 0%, transparent 70%);
}
.scn-prejudices-of-physicians .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3c30 0%, #3d3228 100%);
  animation: php-wall 20s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .bookshelf {
  position:absolute; bottom:30%; left:10%; width:30%; height:35%; background: linear-gradient(180deg, #5e4c3e 0%, #3d3026 100%);
  border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: php-shelf 12s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .desk {
  position:absolute; bottom:12%; left:40%; width:55%; height:18%;
  background: linear-gradient(135deg, #6b5542 0%, #4a3c2e 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: php-desk 15s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .book-open {
  position:absolute; bottom:14%; left:55%; width:30px; height:20px;
  background: linear-gradient(180deg, #d4c3a8 0%, #b8a58c 100%);
  border-radius: 2px 12px 12px 2px; transform: rotate(-5deg);
  animation: php-book 8s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .candle {
  position:absolute; bottom:18%; left:58%; width:8px; height:30px;
  background: linear-gradient(180deg, #e8d5b0 0%, #bfa88a 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 10px 4px rgba(232,213,176,0.6);
  animation: php-candle-glow 3s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .figure-profile {
  position:absolute; bottom:16%; left:38%; width:16px; height:32px;
  background: linear-gradient(180deg, #2b241c 0%, #1f1913 100%);
  border-radius: 50% 30% 40% 50% / 60% 40% 40% 50%;
  transform-origin: bottom center;
  animation: php-figure 6s ease-in-out infinite alternate;
}
.scn-prejudices-of-physicians .shadow-long {
  position:absolute; bottom:12%; left:30%; width:60%; height:6px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 100%);
  filter: blur(4px); border-radius: 50%;
  animation: php-shadow 14s ease-in-out infinite alternate;
}
@keyframes php-wall { 0% { opacity:0.85; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:0.9; transform: scaleX(0.98); } }
@keyframes php-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes php-desk { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes php-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes php-candle-glow { 0% { box-shadow: 0 0 8px 2px rgba(232,213,176,0.5); opacity:0.9; } 50% { box-shadow: 0 0 16px 6px rgba(232,213,176,0.8); opacity:1; } 100% { box-shadow: 0 0 10px 3px rgba(232,213,176,0.6); opacity:0.95; } }
@keyframes php-figure { 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 php-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.8; } 100% { transform: scaleX(0.9); opacity:0.4; } }

/* ===== Scene: homer-and-diet (calm, dim interior) ===== */
.scn-homer-and-diet {
  background: linear-gradient(180deg, #1f1913 0%, #2e2620 40%, #3d3026 100%), radial-gradient(ellipse at 50% 80%, #3d3026 0%, transparent 60%);
}
.scn-homer-and-diet .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3d3026 0%, #2a221c 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: had-floor 18s ease-in-out infinite alternate;
}
.scn-homer-and-diet .table {
  position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:50%; height:10%;
  background: linear-gradient(180deg, #5a4534 0%, #3d3026 100%);
  border-radius: 12px 12px 4px 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: had-table 12s ease-in-out infinite alternate;
}
.scn-homer-and-diet .plate {
  position:absolute; bottom:20%; left:35%; width:20px; height:6px;
  background: radial-gradient(ellipse, #b8a58c 0%, #8a7a66 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: had-plate 8s ease-in-out infinite alternate;
}
.scn-homer-and-diet .cup {
  position:absolute; bottom:20%; left:55%; width:10px; height:12px;
  background: linear-gradient(180deg, #bfa88a 0%, #8a7a66 100%);
  border-radius: 2px 2px 6px 6px;
  animation: had-cup 10s ease-in-out infinite alternate;
}
.scn-homer-and-diet .scroll {
  position:absolute; bottom:18%; left:45%; width:16px; height:4px;
  background: #d4c3a8; border-radius: 2px;
  transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: had-scroll 9s ease-in-out infinite alternate;
}
.scn-homer-and-diet .figure-seated {
  position:absolute; bottom:22%; left:30%; width:18px; height:30px;
  background: linear-gradient(180deg, #2b241c 0%, #1f1913 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: had-figure 7s ease-in-out infinite alternate;
}
.scn-homer-and-diet .fireplace-glow {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(232,213,176,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: had-fire 4s ease-in-out infinite alternate;
}
@keyframes had-floor { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes had-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes had-plate { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes had-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes had-scroll { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(2px); } 100% { transform: rotate(-22deg) translateX(0); } }
@keyframes had-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes had-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

/* ===== Scene: physician-should-be-sickly (calm, dim interior) ===== */
.scn-physician-should-be-sickly {
  background: linear-gradient(180deg, #1a1410 0%, #261f1a 40%, #332a24 100%), radial-gradient(ellipse at 50% 30%, #332a24 0%, transparent 70%);
}
.scn-physician-should-be-sickly .wall-dark {
  position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #332a24 0%, #1a1410 100%);
  animation: pbs-wall 20s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .bed {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:70%; height:20%;
  background: linear-gradient(180deg, #4a3c30 0%, #332a24 100%);
  border-radius: 20px 20px 8px 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: pbs-bed 14s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .blanket {
  position:absolute; bottom:23%; left:52%; width:55%; height:14%;
  background: linear-gradient(180deg, #5e4c3e 0%, #4a3c30 100%);
  border-radius: 12px 12px 4px 4px; filter: blur(1px);
  animation: pbs-blanket 10s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .pillow {
  position:absolute; bottom:30%; left:30%; width:20%; height:8%;
  background: linear-gradient(180deg, #8a7a66 0%, #6b5a4a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pbs-pillow 9s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .figure-lying {
  position:absolute; bottom:24%; left:40%; width:16%; height:20%;
  background: linear-gradient(180deg, #261f1a 0%, #1a1410 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pbs-figure 8s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .tablets {
  position:absolute; bottom:22%; left:22%; width:6px; height:4px;
  background: #bfa88a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pbs-tablets 6s ease-in-out infinite alternate;
}
.scn-physician-should-be-sickly .lamp-soft {
  position:absolute; bottom:32%; left:25%; width:14px; height:18px;
  background: linear-gradient(180deg, rgba(232,213,176,0.8) 0%, rgba(200,180,150,0.2) 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(232,213,176,0.4);
  animation: pbs-lamp 4s ease-in-out infinite alternate;
}
@keyframes pbs-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pbs-bed { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes pbs-blanket { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes pbs-pillow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pbs-figure { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(2px) scale(1.01); } 50% { transform: translateX(4px) scale(1); } 75% { transform: translateX(2px) scale(0.99); } 100% { transform: translateX(0) scale(1); } }
@keyframes pbs-tablets { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pbs-lamp { 0% { box-shadow: 0 0 15px 5px rgba(232,213,176,0.3); opacity:0.8; } 50% { box-shadow: 0 0 25px 10px rgba(232,213,176,0.6); opacity:1; } 100% { box-shadow: 0 0 18px 6px rgba(232,213,176,0.4); opacity:0.9; } }

/* ===== Scene: laissez-faire (calm, dim interior) ===== */
.scn-laissez-faire {
  background: linear-gradient(180deg, #1a1410 0%, #2a221c 40%, #3d3228 100%), radial-gradient(ellipse at 50% 40%, #3d3228 0%, transparent 60%);
}
.scn-laissez-faire .pillars {
  position:absolute; bottom:0; left:0; right:0; height:100%;
  background: linear-gradient(90deg, #4a3c30 10%, transparent 20%, transparent 80%, #4a3c30 90%);
  mask: linear-gradient(0deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  -webkit-mask: linear-gradient(0deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
}
.scn-laissez-faire .arch {
  position:absolute; bottom:70%; left:20%; right:20%; height:30%;
  border: 4px solid #5e4c3e; border-radius: 50% 50% 0 0; border-bottom: none;
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: lf-arch 18s ease-in-out infinite alternate;
}
.scn-laissez-faire .throne {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:30%; height:25%;
  background: linear-gradient(180deg, #6b5542 0%, #4a3c30 100%);
  border-radius: 20px 20px 10px 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: lf-throne 14s ease-in-out infinite alternate;
}
.scn-laissez-faire .figure-ruler {
  position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:12%; height:20%;
  background: linear-gradient(180deg, #2b241c 0%, #1f1913 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lf-ruler 9s ease-in-out infinite alternate;
}
.scn-laissez-faire .hydra-head-1 {
  position:absolute; bottom:35%; left:30%; width:10%; height:15%;
  background: linear-gradient(180deg, #5e4c3e 0%, #332a24 100%);
  border-radius: 50% 50% 30% 30%; transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lf-hydra-1 8s ease-in-out infinite alternate;
}
.scn-laissez-faire .hydra-head-2 {
  position:absolute; bottom:35%; right:30%; width:10%; height:15%;
  background: linear-gradient(180deg, #5e4c3e 0%, #332a24 100%);
  border-radius: 50% 50% 30% 30%; transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lf-hydra-2 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-laissez-faire .shadow-vote {
  position:absolute; bottom:10%; left:20%; right:20%; height:5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: lf-shadow 12s ease-in-out infinite alternate;
}
@keyframes lf-arch { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.03); opacity:1; } 100% { transform: scaleY(0.97); opacity:0.85; } }
@keyframes lf-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes lf-ruler { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) scale(1.01); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-2deg) scale(0.99); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes lf-hydra-1 { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-5px); } 100% { transform: rotate(-22deg) translateY(0); } }
@keyframes lf-hydra-2 { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-5px); } 100% { transform: rotate(22deg) translateY(0); } }
@keyframes lf-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(0.9); } }

/* Override: ensure no reds in any scene - palettes use terracotta, rust, etc. */

/* Scene: enemies-also */
.scn-enemies-also {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-enemies-also .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2c1e12 0%, #1c1208 100%); opacity: 0.5;
}
.scn-enemies-also .bg-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, #0a0806 0%, transparent 70%); opacity: 0.7; animation: ea1-shadow 12s ease-in-out infinite alternate;
}
.scn-enemies-also .desk {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-enemies-also .figure {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 40%; background: linear-gradient(180deg, #1c1610 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ea1-figure 6s ease-in-out infinite;
}
.scn-enemies-also .scroll {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 3%; background: linear-gradient(90deg, #c8b088 0%, #e8d4b8 50%, #c8b088 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-enemies-also .candle {
  position: absolute; bottom: 22%; left: 55%; width: 2%; height: 6%; background: linear-gradient(180deg, #d4a058 0%, #a07040 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-enemies-also .candle-glow {
  position: absolute; bottom: 24%; left: 55%; width: 8%; height: 12%; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%); opacity: 0.6; animation: ea1-glow 3s ease-in-out infinite alternate;
}
.scn-enemies-also .mote {
  position: absolute; width: 0.5%; height: 0.5%; background: #d4b48a; border-radius: 50%; filter: blur(1px); opacity: 0.3;
}
.scn-enemies-also .mote-1 {
  top: 30%; left: 20%; animation: ea1-mote 15s linear infinite;
}
.scn-enemies-also .mote-2 {
  top: 50%; left: 60%; animation: ea1-mote 20s linear infinite reverse;
}
@keyframes ea1-shadow {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes ea1-figure {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ea1-glow {
  0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.75; transform: scale(1.05); } 100% { opacity: 0.55; transform: scale(0.98); }
}
@keyframes ea1-mote {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 20% { opacity: 0.4; } 80% { opacity: 0.4; } 100% { transform: translate(40px, -30px) rotate(180deg); opacity: 0; }
}

/* Scene: analogy-with-arts */
.scn-analogy-with-arts {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #1a1612 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-analogy-with-arts .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e14 0%, #1c1008 100%); opacity: 0.4;
}
.scn-analogy-with-arts .bg-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 70%, #0a0806 0%, transparent 60%); opacity: 0.6; animation: aa2-shadow 15s ease-in-out infinite alternate;
}
.scn-analogy-with-arts .easel {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 35%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 4px; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-analogy-with-arts .canvas {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 28%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}
.scn-analogy-with-arts .figure {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 35%; background: linear-gradient(180deg, #1c1610 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aa2-figure 8s ease-in-out infinite;
}
.scn-analogy-with-arts .brush {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 1.5%; background: linear-gradient(90deg, #a08060 0%, #c8a880 100%); border-radius: 1px; transform: rotate(15deg); transform-origin: right center; animation: aa2-brush 4s ease-in-out infinite alternate;
}
.scn-analogy-with-arts .coal-pan {
  position: absolute; bottom: 10%; left: 55%; width: 8%; height: 4%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-analogy-with-arts .glow-pan {
  position: absolute; bottom: 12%; left: 55%; width: 10%; height: 6%; background: radial-gradient(circle, #ff8830 0%, #b05020 50%, transparent 100%); opacity: 0.4; animation: aa2-glow 2.5s ease-in-out infinite alternate;
}
.scn-analogy-with-arts .mote {
  position: absolute; width: 0.4%; height: 0.4%; background: #d4b48a; border-radius: 50%; filter: blur(0.8px); opacity: 0.2;
}
.scn-analogy-with-arts .mote-1 {
  top: 20%; left: 70%; animation: aa2-mote 18s linear infinite;
}
@keyframes aa2-shadow {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}
@keyframes aa2-figure {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes aa2-brush {
  0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); }
}
@keyframes aa2-glow {
  0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.35; transform: scale(0.95); }
}
@keyframes aa2-mote {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 25% { opacity: 0.3; } 75% { opacity: 0.3; } 100% { transform: translate(-30px, 20px) rotate(-180deg); opacity: 0; }
}

/* Scene: friends-and-enemies */
.scn-friends-and-enemies {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-friends-and-enemies .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1e14 0%, #1c1008 50%, #2a1e14 100%); opacity: 0.45;
}
.scn-friends-and-enemies .bg-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #0a0806 0%, transparent 60%); opacity: 0.7; animation: fe3-shadow 14s ease-in-out infinite alternate;
}
.scn-friends-and-enemies .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 6%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-friends-and-enemies .scale {
  position: absolute; bottom: 18%; left: 44%; width: 12%; height: 8%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: fe3-scale 7s ease-in-out infinite;
}
.scn-friends-and-enemies .figure-left {
  position: absolute; bottom: 18%; left: 22%; width: 16%; height: 38%; background: linear-gradient(180deg, #1c1610 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fe3-figure-left 5s ease-in-out infinite;
}
.scn-friends-and-enemies .figure-right {
  position: absolute; bottom: 18%; right: 22%; width: 16%; height: 38%; background: linear-gradient(180deg, #1c1610 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fe3-figure-right 5s ease-in-out infinite reverse;
}
.scn-friends-and-enemies .lamp {
  position: absolute; bottom: 24%; left: 48%; width: 4%; height: 6%; background: linear-gradient(180deg, #d4a058 0%, #a07040 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-friends-and-enemies .lamp-glow {
  position: absolute; bottom: 26%; left: 48%; width: 12%; height: 14%; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%); opacity: 0.5; animation: fe3-glow 3.5s ease-in-out infinite alternate;
}
@keyframes fe3-shadow {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes fe3-scale {
  0% { transform: rotate(0deg); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); }
}
@keyframes fe3-figure-left {
  0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fe3-figure-right {
  0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); }
}
@keyframes fe3-glow {
  0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.65; transform: scale(1.08); } 100% { opacity: 0.45; transform: scale(0.96); }
}

/* Scene: justice-useless-in-peace */
.scn-justice-useless-in-peace {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-justice-useless-in-peace .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2c1e12 0%, #1c1008 100%); opacity: 0.4;
}
.scn-justice-useless-in-peace .bg-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, #0a0806 0%, transparent 70%); opacity: 0.6; animation: jp4-shadow 16s ease-in-out infinite alternate;
}
.scn-justice-useless-in-peace .chair {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 25%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-justice-useless-in-peace .figure-seated {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%; background: linear-gradient(180deg, #1c1610 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jp4-figure 6s ease-in-out infinite;
}
.scn-justice-useless-in-peace .sword-sheathed {
  position: absolute; bottom: 28%; left: 44%; width: 2%; height: 14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 1px 1px 3px 3px; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-justice-useless-in-peace .book {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 5%; background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-justice-useless-in-peace .candle-stub {
  position: absolute; bottom: 23%; left: 55%; width: 1.5%; height: 4%; background: linear-gradient(180deg, #d4a058 0%, #a07040 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-justice-useless-in-peace .candle-glow {
  position: absolute; bottom: 25%; left: 55%; width: 6%; height: 10%; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%); opacity: 0.5; animation: jp4-glow 3.2s ease-in-out infinite alternate;
}
.scn-justice-useless-in-peace .mote {
  position: absolute; width: 0.4%; height: 0.4%; background: #d4b48a; border-radius: 50%; filter: blur(0.8px); opacity: 0.25;
}
.scn-justice-useless-in-peace .mote-1 {
  top: 40%; left: 40%; animation: jp4-mote 22s linear infinite;
}
@keyframes jp4-shadow {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}
@keyframes jp4-figure {
  0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes jp4-glow {
  0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.06); } 100% { opacity: 0.45; transform: scale(0.97); }
}
@keyframes jp4-mote {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 30% { opacity: 0.35; } 70% { opacity: 0.35; } 100% { transform: translate(20px, -40px) rotate(90deg); opacity: 0; }
}

/* scene: education-and-law */
.scn-education-and-law {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 80%, #2c2c44 0%, transparent 70%);
}
.scn-education-and-law .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%);
  animation: ed-wall 12s ease-in-out infinite alternate;
}
.scn-education-and-law .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.6);
  animation: ed-desk 15s ease-in-out infinite alternate;
}
.scn-education-and-law .book-a {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 6% 6% 12% 12%;
  transform: rotate(-8deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,.4);
  animation: ed-book 8s ease-in-out infinite;
}
.scn-education-and-law .book-b {
  position: absolute; bottom: 30%; left: 38%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #4a4a2a 0%, #2a2a0a 100%);
  border-radius: 6% 6% 12% 12%;
  transform: rotate(4deg);
  box-shadow: -1px 3px 6px rgba(0,0,0,.4);
  animation: ed-book 8s ease-in-out infinite -2s;
}
.scn-education-and-law .gavel {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-12deg);
  box-shadow: 2px 6px 10px rgba(0,0,0,.5);
  animation: ed-gavel 6s ease-in-out infinite;
}
.scn-education-and-law .lamp {
  position: absolute; bottom: 40%; left: 70%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 8% 8% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.3);
  animation: ed-lamp 4s ease-in-out infinite alternate;
}
.scn-education-and-law .light {
  position: absolute; bottom: 28%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,100,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: ed-light 5s ease-in-out infinite;
}
.scn-education-and-law .shadow-fig {
  position: absolute; bottom: 22%; left: 15%; 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: ed-fig 9s ease-in-out infinite;
}
@keyframes ed-wall   { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ed-desk   { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ed-book   { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-4deg) translateY(-1px) } }
@keyframes ed-gavel  { 0%,100% { transform: rotate(-12deg) } 50% { transform: rotate(-6deg) translateY(-2px) } }
@keyframes ed-lamp   { 0% { box-shadow: 0 0 15px 4px rgba(200,150,80,.2); } 50% { box-shadow: 0 0 30px 10px rgba(200,150,80,.5); } 100% { box-shadow: 0 0 20px 6px rgba(200,150,80,.3); } }
@keyframes ed-light  { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes ed-fig    { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* scene: true-knowledge-abstractions */
.scn-true-knowledge-abstractions {
  background:
    linear-gradient(180deg, #1e1e30 0%, #12121e 40%, #08080f 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 60%);
}
.scn-true-knowledge-abstractions .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0a0a14 60%);
  animation: tk-chamber 15s ease-in-out infinite alternate;
}
.scn-true-knowledge-abstractions .thinker {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: tk-think 12s ease-in-out infinite;
}
.scn-true-knowledge-abstractions .circle-geo {
  position: absolute; top: 25%; left: 30%; width: 30px; height: 30px;
  border: 2px solid rgba(180,140,200,.3);
  border-radius: 50%;
  animation: tk-spin 20s linear infinite;
}
.scn-true-knowledge-abstractions .triangle-geo {
  position: absolute; top: 35%; right: 25%; width: 0; height: 0;
  border-left: 18px solid transparent; border-right: 18px solid transparent; border-bottom: 30px solid rgba(140,180,200,.2);
  animation: tk-float 25s ease-in-out infinite alternate;
}
.scn-true-knowledge-abstractions .square-geo {
  position: absolute; top: 50%; left: 18%; width: 24px; height: 24px;
  background: rgba(200,160,140,.15);
  transform: rotate(15deg);
  animation: tk-drift 30s ease-in-out infinite;
}
.scn-true-knowledge-abstractions .glow-core {
  position: absolute; top: 40%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,200,180,.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: tk-pulse 6s ease-in-out infinite;
}
.scn-true-knowledge-abstractions .particle-1 {
  position: absolute; top: 20%; left: 70%; width: 4px; height: 4px;
  background: rgba(200,180,160,.4);
  border-radius: 50%;
  animation: tk-part1 9s ease-in-out infinite;
}
.scn-true-knowledge-abstractions .particle-2 {
  position: absolute; top: 55%; left: 80%; width: 3px; height: 3px;
  background: rgba(200,180,160,.3);
  border-radius: 50%;
  animation: tk-part2 11s ease-in-out infinite -3s;
}
@keyframes tk-chamber { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes tk-think   { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes tk-spin    { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes tk-float   { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes tk-drift   { 0% { transform: translateX(0) rotate(15deg) } 50% { transform: translateX(10px) rotate(30deg) } 100% { transform: translateX(0) rotate(15deg) } }
@keyframes tk-pulse   { 0% { opacity:.2; transform: translate(-50%,-50%) scale(1) } 50% { opacity:.6; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.3; transform: translate(-50%,-50%) scale(1) } }
@keyframes tk-part1   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-12px,-6px) scale(1.2) } 100% { transform: translate(0,0) scale(1) } }
@keyframes tk-part2   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(8px,-10px) scale(0.8) } 100% { transform: translate(0,0) scale(1) } }

/* scene: mathematics-in-platos-age */
.scn-mathematics-in-platos-age {
  background:
    linear-gradient(180deg, #1c1a28 0%, #101018 40%, #08060c 100%),
    radial-gradient(ellipse at 50% 50%, #2a2040 0%, transparent 70%);
}
.scn-mathematics-in-platos-age .tablet {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.3);
  animation: ma-tablet 20s ease-in-out infinite alternate;
}
.scn-mathematics-in-platos-age .compass {
  position: absolute; bottom: 38%; left: 40%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: top center;
  box-shadow: 1px 2px 4px rgba(0,0,0,.3);
  animation: ma-compass 7s ease-in-out infinite;
}
.scn-mathematics-in-platos-age .rule {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #7a6a4a 0%, #4a3a1a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ma-rule 14s ease-in-out infinite alternate;
}
.scn-mathematics-in-platos-age .angle-small {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 20px;
  border-right: 2px solid rgba(200,180,140,.3);
  border-bottom: 2px solid rgba(200,180,140,.3);
  animation: ma-angle 8s ease-in-out infinite;
}
.scn-mathematics-in-platos-age .angle-large {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 30px;
  border-right: 2px solid rgba(180,200,140,.2);
  border-bottom: 2px solid rgba(180,200,140,.2);
  animation: ma-angle 8s ease-in-out infinite -2s;
}
.scn-mathematics-in-platos-age .dust-dot.dot-1 {
  position: absolute; top: 30%; left: 30%; width: 4px; height: 4px;
  background: rgba(220,200,180,.15);
  border-radius: 50%;
  animation: ma-dust 25s linear infinite;
}
.scn-mathematics-in-platos-age .dust-dot.dot-2 {
  position: absolute; top: 45%; left: 70%; width: 3px; height: 3px;
  background: rgba(200,180,160,.12);
  border-radius: 50%;
  animation: ma-dust 30s linear infinite -8s;
}
.scn-mathematics-in-platos-age .dust-dot.dot-3 {
  position: absolute; top: 60%; left: 20%; width: 5px; height: 5px;
  background: rgba(180,200,200,.1);
  border-radius: 50%;
  animation: ma-dust 22s linear infinite -15s;
}
@keyframes ma-tablet { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ma-compass { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes ma-rule   { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes ma-angle  { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes ma-dust   { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-10px) translateX(5px) } 50% { transform: translateY(-20px) translateX(-3px) } 75% { transform: translateY(-10px) translateX(8px) } 100% { transform: translateY(0) translateX(0) } }

/* scene: inexhaustible-application */
.scn-inexhaustible-application {
  background:
    linear-gradient(180deg, #1a1a22 0%, #0c0c12 40%, #040408 100%),
    radial-gradient(ellipse at 60% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-inexhaustible-application .workbench {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -6px 15px rgba(0,0,0,.6);
  animation: in-bench 18s ease-in-out infinite alternate;
}
.scn-inexhaustible-application .hands {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 60% 60% / 40% 40% 50% 50%;
  transform: rotate(10deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,.3);
  animation: in-hands 6s ease-in-out infinite;
}
.scn-inexhaustible-application .clay {
  position: absolute; bottom: 22%; left: 52%; width: 45px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: in-clay 9s ease-in-out infinite;
}
.scn-inexhaustible-application .knife {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 36px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 1px 3px 5px rgba(0,0,0,.3);
  animation: in-knife 5s ease-in-out infinite;
}
.scn-inexhaustible-application .spline {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 4px;
  background: rgba(180,160,140,.3);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: in-spline 12s ease-in-out infinite alternate;
}
.scn-inexhaustible-application .spark.gap {
  position: absolute; bottom: 40%; left: 35%; width: 3px; height: 3px;
  background: rgba(200,180,140,.4);
  border-radius: 50%;
  animation: in-spark1 4s ease-in-out infinite;
}
.scn-inexhaustible-application .spark.ember {
  position: absolute; bottom: 42%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,160,120,.3);
  border-radius: 50%;
  animation: in-spark2 6s ease-in-out infinite -1s;
}
@keyframes in-bench   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes in-hands   { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(10deg) } }
@keyframes in-clay    { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) scaleY(0.98) } 100% { transform: scaleX(1) } }
@keyframes in-knife   { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-1px) } }
@keyframes in-spline  { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes in-spark1  { 0% { opacity:.2; transform: translate(0,0) scale(1) } 50% { opacity:.8; transform: translate(2px,-3px) scale(1.3) } 100% { opacity:.2; transform: translate(0,0) scale(1) } }
@keyframes in-spark2  { 0% { opacity:.1; transform: translate(0,0) scale(1) } 50% { opacity:.6; transform: translate(-3px,-5px) scale(1.2) } 100% { opacity:.1; transform: translate(0,0) scale(1) } }

/* ciceros-de-republica */
.scn-ciceros-de-republica {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 40%, #1a0e06 70%, #0a0602 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}

.scn-ciceros-de-republica .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  box-shadow: inset 0 0 30px #1a0e06;
  animation: cdr-wall 12s ease-in-out infinite alternate;
}

.scn-ciceros-de-republica .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 60%, #0a0602 100%);
  border-top: 1px solid #4a3a2a;
  animation: cdr-floor 8s ease-in-out infinite alternate;
}

.scn-ciceros-de-republica .desk {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0e 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
  animation: cdr-desk 10s ease-in-out infinite;
}

.scn-ciceros-de-republica .scroll {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #a08050 0%, #806040 50%, #604020 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cdr-scroll 15s ease-in-out infinite alternate;
}

.scn-ciceros-de-republica .candle {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 60%, #605030 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(200,160,80,0.2);
  animation: cdr-candle 5s ease-in-out infinite alternate;
}

.scn-ciceros-de-republica .flame {
  position: absolute; bottom: 47%; left: 48.5%; width: 3%; height: 6%;
  background: radial-gradient(ellipse, #ffd060 0%, #ffa030 40%, #ff8040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.4);
  animation: cdr-flame 1.2s ease-in-out infinite alternate;
}

.scn-ciceros-de-republica .shadow-figure {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #0a0602 0%, #1a0e06 70%, #2a1a0e 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: 50% 100%;
  animation: cdr-sit 6s ease-in-out infinite;
}

@keyframes cdr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cdr-floor { 0% { background-position: 0 0; } 50% { background-position: 0 2%; } 100% { background-position: 0 0; } }
@keyframes cdr-desk { 0% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(5deg) translateY(0); } }
@keyframes cdr-scroll { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cdr-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cdr-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.05) translateY(-1px); opacity:1; } 100% { transform: scale(0.95) translateY(1px); opacity:0.8; } }
@keyframes cdr-sit { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(0.5deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-0.5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }

/* cicero-and-two-suns */
.scn-cicero-and-two-suns {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 50%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 80%);
}

.scn-cicero-and-two-suns .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  box-shadow: inset 0 20px 30px #1a0e06;
}

.scn-cicero-and-two-suns .window {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 35%;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px #1a0e06, 0 4px 10px rgba(0,0,0,0.5);
  overflow: hidden;
}

.scn-cicero-and-two-suns .sun-a {
  position: absolute; top: 12%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 40%, #ff8040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa030, 0 0 60px 20px rgba(255,160,48,0.3);
  animation: cts-sun 6s ease-in-out infinite alternate;
}

.scn-cicero-and-two-suns .sun-b {
  position: absolute; top: 15%; left: 55%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 40%, #ff8040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 10px rgba(255,160,48,0.3);
  animation: cts-sun 7s ease-in-out infinite alternate reverse;
}

.scn-cicero-and-two-suns .cicero-figure {
  position: absolute; bottom: 22%; left: 25%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 60%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: cts-walk 4s ease-in-out infinite;
}

.scn-cicero-and-two-suns .friend-figure {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 60%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: cts-walk 4.5s ease-in-out infinite reverse;
}

.scn-cicero-and-two-suns .table {
  position: absolute; bottom: 18%; left: 40%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: cts-table 8s ease-in-out infinite;
}

.scn-cicero-and-two-suns .wine-cup {
  position: absolute; bottom: 20%; left: 48%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: cts-cup 3s ease-in-out infinite;
}

@keyframes cts-sun { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-3px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:0.7; } }
@keyframes cts-walk { 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 cts-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cts-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* cicero-natural-superior */
.scn-cicero-natural-superior {
  background:
    linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 40%, #0a1a10 100%),
    radial-gradient(ellipse at 50% 70%, #3a5a4a 0%, transparent 70%);
}

.scn-cicero-natural-superior .bg-columns {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a4a3a 50%, #3a5a4a 100%);
  box-shadow: inset 0 0 40px #0a1a10;
}

.scn-cicero-natural-superior .statue-just {
  position: absolute; bottom: 28%; left: 30%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 50%, #2a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform-origin: 50% 100%;
  animation: cns-statue 10s ease-in-out infinite alternate;
}

.scn-cicero-natural-superior .statue-unjust {
  position: absolute; bottom: 28%; left: 55%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 50%, #1a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform-origin: 50% 100%;
  animation: cns-statue 12s ease-in-out infinite alternate;
}

.scn-cicero-natural-superior .pedestal-left {
  position: absolute; bottom: 24%; left: 28%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.scn-cicero-natural-superior .pedestal-right {
  position: absolute; bottom: 24%; right: 28%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.scn-cicero-natural-superior .orator {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 48%;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a10 60%, #050a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: cns-orator 5s ease-in-out infinite;
}

.scn-cicero-natural-superior .shadow-citizen-a {
  position: absolute; bottom: 16%; left: 20%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #0a1a10 0%, #050a05 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: cns-citizen 7s ease-in-out infinite;
}

.scn-cicero-natural-superior .shadow-citizen-b {
  position: absolute; bottom: 16%; right: 20%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #0a1a10 0%, #050a05 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: cns-citizen 7.5s ease-in-out infinite reverse;
}

@keyframes cns-statue { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cns-orator { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cns-citizen { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }

/* cicero-and-plato */
.scn-cicero-and-plato {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 50%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}

.scn-cicero-and-plato .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  box-shadow: inset 0 0 30px #1a0e06;
}

.scn-cicero-and-plato .book-pile {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 25%;
  background: linear-gradient(0deg, #604020 0%, #806040 30%, #a08050 60%, #806040 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: cap-books 12s ease-in-out infinite alternate;
}

.scn-cicero-and-plato .open-scroll {
  position: absolute; bottom: 30%; left: 35%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 50%, #806040 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: cap-scroll 8s ease-in-out infinite;
}

.scn-cicero-and-plato .ink-pot {
  position: absolute; bottom: 28%; left: 55%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0e 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: cap-ink 5s ease-in-out infinite alternate;
}

.scn-cicero-and-plato .quill {
  position: absolute; bottom: 34%; left: 53%; width: 3%; height: 16%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 60%, #806040 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  transform-origin: 50% 100%;
  animation: cap-quill 4s ease-in-out infinite;
}

.scn-cicero-and-plato .bust-plato {
  position: absolute; bottom: 18%; left: 28%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cap-bust 9s ease-in-out infinite alternate;
}

.scn-cicero-and-plato .bust-cicero {
  position: absolute; bottom: 18%; right: 28%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cap-bust 9.5s ease-in-out infinite alternate reverse;
}

@keyframes cap-books { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cap-scroll { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.01) scaleY(1.02); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cap-ink { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cap-quill { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(18deg) translateY(-1px); } 50% { transform: rotate(15deg) translateY(0); } 75% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cap-bust { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-women-and-children-common {
  background: 
    linear-gradient(180deg, #d9c8a8 0%, #c4b28e 50%, #a88e6a 100%),
    radial-gradient(ellipse at 50% 0%, #f0e4c8 0%, transparent 60%);
}
.scn-women-and-children-common .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  animation: wac-wall 12s ease-in-out infinite alternate;
}
.scn-women-and-children-common .wall-side {
  position: absolute; left:0; top:0; bottom:30%; width:25%;
  background: linear-gradient(90deg, #c4b28e 0%, #d9c8a8 100%);
}
.scn-women-and-children-common .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5c4e36 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-women-and-children-common .window {
  position: absolute; top:8%; right:15%; width:30%; height:40%;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #e8dcc0 80%);
  box-shadow: inset 0 0 20px rgba(255,220,160,0.6), 0 0 40px rgba(255,220,160,0.3);
  border: 4px solid #8a7a5a;
  border-radius: 6px;
  animation: wac-window 6s ease-in-out infinite alternate;
}
.scn-women-and-children-common .figure-adult {
  position: absolute; bottom:28%; left:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wac-adult 4s ease-in-out infinite;
}
.scn-women-and-children-common .figure-child {
  position: absolute; bottom:25%; left:55%; width:28px; height:50px;
  background: linear-gradient(180deg, #c89a6a 0%, #a87a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wac-child 3s ease-in-out infinite;
}
.scn-women-and-children-common .lamp {
  position: absolute; bottom:32%; left:50%; width:12px; height:40px;
  background: linear-gradient(180deg, #b09070 0%, #7a6040 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-women-and-children-common .light-spot {
  position: absolute; bottom:30%; left:46%; width:120px; height:80px;
  background: radial-gradient(ellipse, #ffdba8 0%, rgba(255,200,100,0.2) 100%);
  filter: blur(8px);
  opacity: 0.4;
  animation: wac-spot 5s ease-in-out infinite alternate;
}
@keyframes wac-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wac-window { 0% { box-shadow: inset 0 0 10px rgba(255,220,160,0.3), 0 0 20px rgba(255,220,160,0.15); opacity:0.7 } 50% { box-shadow: inset 0 0 30px rgba(255,220,160,0.8), 0 0 60px rgba(255,220,160,0.4); opacity:1 } 100% { box-shadow: inset 0 0 15px rgba(255,220,160,0.5), 0 0 30px rgba(255,220,160,0.2); opacity:0.8 } }
@keyframes wac-adult { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(4px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes wac-child { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes wac-spot { 0% { transform: scale(0.9); opacity:0.3 } 50% { transform: scale(1.1); opacity:0.5 } 100% { transform: scale(0.95); opacity:0.35 } }

.scn-women-equality {
  background: 
    linear-gradient(180deg, #dfd0b8 0%, #c8b89a 50%, #b09a7a 100%),
    radial-gradient(ellipse at 60% 20%, #f8ecd0 0%, transparent 70%);
}
.scn-women-equality .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b0a080 100%);
  animation: weq-wall 15s ease-in-out infinite alternate;
}
.scn-women-equality .wall-side {
  position: absolute; right:0; top:0; bottom:30%; width:20%;
  background: linear-gradient(90deg, #c8b89a 0%, #dfd0b8 100%);
}
.scn-women-equality .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3e2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-women-equality .window {
  position: absolute; top:10%; left:10%; width:35%; height:45%;
  background: radial-gradient(ellipse at center, #fff0d8 0%, #e8d8b8 80%);
  box-shadow: inset 0 0 15px rgba(255,230,180,0.5), 0 0 30px rgba(255,230,180,0.25);
  border: 4px solid #8a7a5a;
  border-radius: 6px;
  animation: weq-window 7s ease-in-out infinite alternate;
}
.scn-women-equality .figure-left {
  position: absolute; bottom:28%; left:25%; width:45px; height:90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: weq-left 5s ease-in-out infinite;
}
.scn-women-equality .figure-right {
  position: absolute; bottom:28%; right:25%; width:45px; height:90px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: weq-right 5s ease-in-out infinite reverse;
}
.scn-women-equality .book {
  position: absolute; bottom:32%; left:48%; width:30px; height:20px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate( -10deg );
  animation: weq-book 8s ease-in-out infinite alternate;
}
.scn-women-equality .light-spot {
  position: absolute; bottom:30%; left:40%; width:100px; height:70px;
  background: radial-gradient(ellipse, #ffe0b0 0%, rgba(255,200,80,0.15) 100%);
  filter: blur(10px);
  opacity: 0.35;
  animation: weq-spot 6s ease-in-out infinite alternate;
}
@keyframes weq-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes weq-window { 0% { box-shadow: inset 0 0 10px rgba(255,230,180,0.4), 0 0 20px rgba(255,230,180,0.2); opacity:0.75 } 50% { box-shadow: inset 0 0 25px rgba(255,230,180,0.7), 0 0 50px rgba(255,230,180,0.35); opacity:1 } 100% { box-shadow: inset 0 0 15px rgba(255,230,180,0.5), 0 0 30px rgba(255,230,180,0.25); opacity:0.8 } }
@keyframes weq-left { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes weq-right { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes weq-book { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes weq-spot { 0% { transform: scale(0.95); opacity:0.3 } 50% { transform: scale(1.1); opacity:0.45 } 100% { transform: scale(1); opacity:0.35 } }

.scn-first-wave-past {
  background: 
    linear-gradient(180deg, #dcccb0 0%, #c8b898 50%, #b09878 100%),
    radial-gradient(ellipse at 50% 0%, #f4e8cc 0%, transparent 60%);
}
.scn-first-wave-past .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  animation: fwp-wall 14s ease-in-out infinite alternate;
}
.scn-first-wave-past .wall-side {
  position: absolute; left:0; top:0; bottom:30%; width:30%;
  background: linear-gradient(90deg, #c8b898 0%, #dcccb0 100%);
}
.scn-first-wave-past .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3e2a 100%);
  border-radius: 40% 60% 0 0 / 25% 35% 0 0;
}
.scn-first-wave-past .window {
  position: absolute; top:12%; right:15%; width:28%; height:40%;
  background: radial-gradient(ellipse at center, #fff4e0 0%, #e8dcc0 80%);
  box-shadow: inset 0 0 20px rgba(255,230,180,0.6), 0 0 40px rgba(255,230,180,0.3);
  border: 4px solid #8a7a5a;
  border-radius: 6px;
  animation: fwp-window 6s ease-in-out infinite alternate;
}
.scn-first-wave-past .figure-seated {
  position: absolute; bottom:28%; left:30%; width:50px; height:60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-seated 4s ease-in-out infinite;
}
.scn-first-wave-past .figure-standing {
  position: absolute; bottom:30%; right:30%; width:40px; height:85px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-standing 5s ease-in-out infinite reverse;
}
.scn-first-wave-past .wave-shape {
  position: absolute; top:5%; left:50%; transform: translateX(-50%);
  width:200px; height:30px;
  background: linear-gradient(180deg, transparent 0%, rgba(100,150,200,0.3) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fwp-wave 8s ease-in-out infinite alternate;
}
.scn-first-wave-past .light-spot {
  position: absolute; bottom:30%; left:35%; width:110px; height:80px;
  background: radial-gradient(ellipse, #ffdba8 0%, rgba(255,200,100,0.2) 100%);
  filter: blur(8px);
  opacity: 0.35;
  animation: fwp-spot 7s ease-in-out infinite alternate;
}
@keyframes fwp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fwp-window { 0% { box-shadow: inset 0 0 10px rgba(255,230,180,0.3), 0 0 20px rgba(255,230,180,0.15); opacity:0.7 } 50% { box-shadow: inset 0 0 30px rgba(255,230,180,0.8), 0 0 60px rgba(255,230,180,0.4); opacity:1 } 100% { box-shadow: inset 0 0 15px rgba(255,230,180,0.5), 0 0 30px rgba(255,230,180,0.2); opacity:0.8 } }
@keyframes fwp-seated { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes fwp-standing { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes fwp-wave { 0% { transform: translateX(-50%) scaleX(1) translateY(0); opacity:0.3 } 50% { transform: translateX(-50%) scaleX(1.05) translateY(-3px); opacity:0.6 } 100% { transform: translateX(-50%) scaleX(0.95) translateY(0); opacity:0.4 } }
@keyframes fwp-spot { 0% { transform: scale(0.9); opacity:0.3 } 50% { transform: scale(1.1); opacity:0.5 } 100% { transform: scale(0.95); opacity:0.35 } }

.scn-selection-for-marriage {
  background: 
    linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #aa9a7a 100%),
    radial-gradient(ellipse at 40% 10%, #f0e4c8 0%, transparent 70%);
}
.scn-selection-for-marriage .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  animation: sfm-wall 13s ease-in-out infinite alternate;
}
.scn-selection-for-marriage .wall-side {
  position: absolute; right:0; top:0; bottom:30%; width:25%;
  background: linear-gradient(90deg, #c0b090 0%, #d8c8a8 100%);
}
.scn-selection-for-marriage .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3e2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-selection-for-marriage .window {
  position: absolute; top:10%; left:50%; transform: translateX(-50%); width:40%; height:45%;
  background: radial-gradient(ellipse at center, #fff0d8 0%, #e8d8b8 80%);
  box-shadow: inset 0 0 20px rgba(255,230,180,0.6), 0 0 40px rgba(255,230,180,0.3);
  border: 4px solid #8a7a5a;
  border-radius: 6px;
  animation: sfm-window 6s ease-in-out infinite alternate;
}
.scn-selection-for-marriage .figure-ruler {
  position: absolute; bottom:28%; left:20%; width:50px; height:95px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfm-ruler 5s ease-in-out infinite;
}
.scn-selection-for-marriage .figure-woman {
  position: absolute; bottom:28%; left:50%; transform: translateX(-50%); width:45px; height:90px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfm-woman 4s ease-in-out infinite reverse;
}
.scn-selection-for-marriage .figure-man {
  position: absolute; bottom:28%; right:20%; width:50px; height:95px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfm-man 4.5s ease-in-out infinite;
}
.scn-selection-for-marriage .light-spot {
  position: absolute; bottom:30%; left:35%; width:130px; height:90px;
  background: radial-gradient(ellipse, #ffe0b0 0%, rgba(255,200,80,0.15) 100%);
  filter: blur(10px);
  opacity: 0.35;
  animation: sfm-spot 6s ease-in-out infinite alternate;
}
@keyframes sfm-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sfm-window { 0% { box-shadow: inset 0 0 10px rgba(255,230,180,0.3), 0 0 20px rgba(255,230,180,0.15); opacity:0.7 } 50% { box-shadow: inset 0 0 30px rgba(255,230,180,0.8), 0 0 60px rgba(255,230,180,0.4); opacity:1 } 100% { box-shadow: inset 0 0 15px rgba(255,230,180,0.5), 0 0 30px rgba(255,230,180,0.2); opacity:0.8 } }
@keyframes sfm-ruler { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes sfm-woman { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes sfm-man { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes sfm-spot { 0% { transform: scale(0.95); opacity:0.3 } 50% { transform: scale(1.1); opacity:0.45 } 100% { transform: scale(1); opacity:0.35 } }

/* musician-does-not-overreach */
.scn-musician-does-not-overreach {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1f1510 50%, #130c08 100%),
    radial-gradient(ellipse at 50% 100%, #3a281c 0%, transparent 70%);
}
.scn-musician-does-not-overreach .bg {
  position: absolute; inset: 0; opacity: 0.6;
  background: radial-gradient(ellipse at 60% 70%, #4a3824 0%, transparent 70%);
  animation: mu-breathe 12s ease-in-out infinite alternate;
}
.scn-musician-does-not-overreach .window {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #4a6a8a 0%, #2a3a5a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,220,240,0.3);
  animation: mu-window 8s ease-in-out infinite alternate;
}
.scn-musician-does-not-overreach .figure {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mu-figure 6s ease-in-out infinite;
}
.scn-musician-does-not-overreach .lyre {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  animation: mu-lyre 4s ease-in-out infinite alternate;
}
.scn-musician-does-not-overreach .candle {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 16px 6px #d09040, 0 0 32px 12px rgba(208,144,64,0.5);
  animation: mu-candle 3s ease-in-out infinite alternate;
}
.scn-musician-does-not-overreach .glow {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,180,80,0.15) 0%, transparent 70%);
  border-radius: 50%; transform: translate(-50%, 50%);
  animation: mu-glow 5s ease-in-out infinite alternate;
}
@keyframes mu-breathe { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes mu-window { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.02) } 100% { opacity: 0.6; transform: scaleY(1) } }
@keyframes mu-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mu-lyre { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.02) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes mu-candle { 0% { opacity: 0.8; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-2px) } 100% { opacity: 0.8; transform: translateY(0) } }
@keyframes mu-glow { 0% { opacity: 0.6; transform: translate(-50%, 50%) scale(1) } 50% { opacity: 0.8; transform: translate(-50%, 50%) scale(1.05) } 100% { opacity: 0.6; transform: translate(-50%, 50%) scale(1) } }

/* knowledge-and-ignorance */
.scn-knowledge-and-ignorance {
  background:
    linear-gradient(180deg, #1f1712 0%, #16100d 40%, #0d0a08 100%),
    radial-gradient(ellipse at 30% 70%, #2a201c 0%, transparent 70%);
}
.scn-knowledge-and-ignorance .room {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(60,40,30,0.1) 40px, rgba(60,40,30,0.1) 41px);
  animation: kn-pan 20s ease-in-out infinite alternate;
}
.scn-knowledge-and-ignorance .shelf {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: kn-shelf 15s ease-in-out infinite alternate;
}
.scn-knowledge-and-ignorance .figure {
  position: absolute; bottom: 25%; left: 35%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kn-figure 7s ease-in-out infinite;
}
.scn-knowledge-and-ignorance .book {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 35px;
  background: linear-gradient(160deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: kn-book 9s ease-in-out infinite alternate;
}
.scn-knowledge-and-ignorance .lamp {
  position: absolute; bottom: 35%; left: 60%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #b08040 0%, #805020 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px #c09040, 0 0 40px 16px rgba(192,144,64,0.3);
  animation: kn-lamp 4s ease-in-out infinite alternate;
}
.scn-knowledge-and-ignorance .desk {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 2px;
  animation: kn-desk 12s ease-in-out infinite alternate;
}
@keyframes kn-pan { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes kn-shelf { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes kn-figure { 0% { transform: translateY(0) rotate(0deg) translateX(0) } 25% { transform: translateY(-1px) rotate(1deg) translateX(2px) } 50% { transform: translateY(0) rotate(0deg) translateX(0) } 75% { transform: translateY(-1px) rotate(-1deg) translateX(-2px) } 100% { transform: translateY(0) rotate(0deg) translateX(0) } }
@keyframes kn-book { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes kn-lamp { 0% { opacity: 0.7; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-1px) } 100% { opacity: 0.7; transform: translateY(0) } }
@keyframes kn-desk { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

/* conclusion-drawn */
.scn-conclusion-drawn {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1f1510 40%, #130c08 100%),
    radial-gradient(ellipse at 50% 30%, #3a281c 0%, transparent 70%);
}
.scn-conclusion-drawn .room {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, #4a3824 0%, transparent 60%);
  animation: co-ambient 14s ease-in-out infinite alternate;
}
.scn-conclusion-drawn .tablet {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; transform: translateX(-50%) rotate(2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: co-tablet 8s ease-in-out infinite alternate;
}
.scn-conclusion-drawn .line {
  position: absolute; bottom: 42%; left: 50%; width: 50px; height: 2px;
  background: linear-gradient(90deg, #b08040 0%, #d0a060 100%);
  border-radius: 1px; transform-origin: left center;
  animation: co-draw 5s ease-in-out infinite;
}
.scn-conclusion-drawn .hand {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: co-hand 4s ease-in-out infinite alternate;
}
.scn-conclusion-drawn .candle {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 16px 6px #d09040, 0 0 32px 12px rgba(208,144,64,0.5);
  animation: co-candle 3s ease-in-out infinite alternate;
}
.scn-conclusion-drawn .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: co-shadow 6s ease-in-out infinite alternate;
}
@keyframes co-ambient { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes co-tablet { 0% { transform: translateX(-50%) rotate(2deg) scale(1) } 50% { transform: translateX(-50%) rotate(0deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(2deg) scale(1) } }
@keyframes co-draw { 0% { transform: scaleX(0); opacity: 0.3 } 25% { transform: scaleX(0.5); opacity: 0.7 } 50% { transform: scaleX(1); opacity: 1 } 75% { transform: scaleX(0.5); opacity: 0.7 } 100% { transform: scaleX(0); opacity: 0.3 } }
@keyframes co-hand { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes co-candle { 0% { opacity: 0.8; transform: translateY(0) scaleY(1) } 50% { opacity: 1; transform: translateY(-1px) scaleY(1.05) } 100% { opacity: 0.8; transform: translateY(0) scaleY(1) } }
@keyframes co-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.5; transform: scaleX(1) } }

/* injustice-weak */
.scn-injustice-weak {
  background:
    linear-gradient(180deg, #1a1412 0%, #100c0a 50%, #080604 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e1a 0%, transparent 70%);
}
.scn-injustice-weak .room {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(40,30,20,0.15) 30px, rgba(40,30,20,0.15) 31px);
  animation: in-ambient 18s ease-in-out infinite alternate;
}
.scn-injustice-weak .bars {
  position: absolute; top: 0; left: 50%; width: 4px; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: 20px 0 0 #3a2a1a, -20px 0 0 #3a2a1a;
  animation: in-bars 10s ease-in-out infinite alternate;
}
.scn-injustice-weak .figure {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%) rotate(5deg);
  animation: in-figure 7s ease-in-out infinite;
}
.scn-injustice-weak .chain {
  position: absolute; bottom: 20%; left: 45%; width: 25px; height: 8px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px; transform: rotate(-20deg);
  animation: in-chain 4s ease-in-out infinite alternate;
}
.scn-injustice-weak .light {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,200,160,0.1) 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: in-light 9s ease-in-out infinite alternate;
}
.scn-injustice-weak .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: in-shadow 5s ease-in-out infinite alternate;
}
@keyframes in-ambient { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes in-bars { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(0) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes in-figure { 0% { transform: translateX(-50%) rotate(5deg) translateY(0) } 25% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(0) } 75% { transform: translateX(-50%) rotate(3deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(5deg) translateY(0) } }
@keyframes in-chain { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes in-light { 0% { opacity: 0.3; transform: translateX(-50%) scale(1) } 50% { opacity: 0.5; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.3; transform: translateX(-50%) scale(1) } }
@keyframes in-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.5; transform: scaleX(1) } }

/* scene: first-christians */
.scn-first-christians {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%);
}
.scn-first-christians .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #1a0e05 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: fc-wall 12s ease-in-out infinite alternate;
}
.scn-first-christians .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-first-christians .window {
  position: absolute; top: 12%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: fc-window 15s ease-in-out infinite alternate;
}
.scn-first-christians .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a060 50%, #8a6040 100%);
  border-radius: 2px;
  animation: fc-candle 5s ease-in-out infinite;
}
.scn-first-christians .figure {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: fc-figure 8s ease-in-out infinite;
}
.scn-first-christians .halo {
  position: absolute; top: 15%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240,200,80,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: fc-halo 4s ease-in-out infinite alternate;
}
.scn-first-christians .scroll {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 2px 2px 10px 10px;
  transform: rotate(-10deg);
  animation: fc-scroll 6s ease-in-out infinite alternate;
}
@keyframes fc-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes fc-window {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 20px rgba(80,60,40,0.3); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
}
@keyframes fc-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.9; }
  20% { transform: translateY(-2px) scaleY(1.02); opacity: 1; }
  50% { transform: translateY(0) scaleY(0.98); opacity: 0.8; }
  80% { transform: translateY(-1px) scaleY(1.01); opacity: 0.95; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.9; }
}
@keyframes fc-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  60% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes fc-halo {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); }
}
@keyframes fc-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

/* scene: modern-reaction-to-paradoxes */
.scn-modern-reaction-to-paradoxes {
  background:
    linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 30%, #2a1a0a 70%, #1a0e05 100%),
    radial-gradient(circle at 60% 50%, #5a4a3a 0%, transparent 50%);
}
.scn-modern-reaction-to-paradoxes .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #1a0e05 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: mr-wall 10s ease-in-out infinite alternate;
}
.scn-modern-reaction-to-paradoxes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-modern-reaction-to-paradoxes .desk {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mr-desk 12s ease-in-out infinite alternate;
}
.scn-modern-reaction-to-paradoxes .lamp {
  position: absolute; bottom: 35%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #8a6040 100%);
  border-radius: 2px;
}
.scn-modern-reaction-to-paradoxes .lamp::after {
  content: '';
  position: absolute; top: -8px; left: -6px; width: 22px; height: 12px;
  background: radial-gradient(ellipse, #f0e0c0 0%, #c8a060 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,160,96,0.3);
  animation: mr-lamp 5s ease-in-out infinite;
}
.scn-modern-reaction-to-paradoxes .figure {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figure 7s ease-in-out infinite;
}
.scn-modern-reaction-to-paradoxes .books {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: mr-books 15s linear infinite alternate;
}
.scn-modern-reaction-to-paradoxes .paper {
  position: absolute; bottom: 26%; left: 25%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b090 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: mr-paper 8s ease-in-out infinite alternate;
}
@keyframes mr-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; }
}
@keyframes mr-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes mr-lamp {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes mr-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mr-books {
  0% { transform: translateY(0) rotate(3deg); }
  100% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes mr-paper {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

/* scene: serious-errors-with-truth */
.scn-serious-errors-with-truth {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 70%, #4a4a5a 0%, transparent 60%);
}
.scn-serious-errors-with-truth .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, #1a1a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 15% 15%;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.4);
  animation: se-wall 14s ease-in-out infinite alternate;
}
.scn-serious-errors-with-truth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
.scn-serious-errors-with-truth .lectern {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: se-lectern 10s ease-in-out infinite alternate;
}
.scn-serious-errors-with-truth .scroll {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: se-scroll 6s ease-in-out infinite;
}
.scn-serious-errors-with-truth .figure {
  position: absolute; bottom: 20%; left: 30%; width: 20px; 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: se-figure 9s ease-in-out infinite;
}
.scn-serious-errors-with-truth .light-ray {
  position: absolute; top: 5%; left: 35%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  filter: blur(4px);
  animation: se-lightray 20s ease-in-out infinite alternate;
}
@keyframes se-wall {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes se-lectern {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes se-scroll {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(2deg); }
  60% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes se-figure {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  80% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes se-lightray {
  0% { opacity: 0.3; transform: rotate(-10deg) translateX(0); }
  50% { opacity: 0.6; transform: rotate(-8deg) translateX(5px); }
  100% { opacity: 0.4; transform: rotate(-10deg) translateX(0); }
}

/* scene: community-of-goods-paradox */
.scn-community-of-goods-paradox {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-community-of-goods-paradox .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cg-wall 13s ease-in-out infinite alternate;
}
.scn-community-of-goods-paradox .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-community-of-goods-paradox .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cg-table 11s ease-in-out infinite alternate;
}
.scn-community-of-goods-paradox .lamp {
  position: absolute; top: 40%; left: 50%; width: 12px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0b080 0%, #8a6040 100%);
  border-radius: 2px;
}
.scn-community-of-goods-paradox .lamp::after {
  content: '';
  position: absolute; top: -10px; left: -8px; width: 28px; height: 14px;
  background: radial-gradient(ellipse, #f0e0c0 0%, #c8a060 60%);
  border-radius: 50%;
  box-shadow: 0 0 25px 12px rgba(200,160,96,0.4);
  animation: cg-lamp 6s ease-in-out infinite;
}
.scn-community-of-goods-paradox .figure-left {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure-left 8s ease-in-out infinite;
}
.scn-community-of-goods-paradox .figure-right {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure-right 8s ease-in-out infinite 2s; /* delay to break unison */
}
.scn-community-of-goods-paradox .bowl {
  position: absolute; bottom: 24%; left: 48%; width: 24px; height: 12px;
  background: linear-gradient(180deg, #a08060 0%, #8a6040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cg-bowl 7s ease-in-out infinite alternate;
}
@keyframes cg-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; }
}
@keyframes cg-table {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes cg-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes cg-figure-left {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cg-figure-right {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cg-bowl {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.05); }
  100% { transform: translateY(0) scale(0.98); }
}

.scn-myth-of-er {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #2a1e1a 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a32 0%, transparent 70%);
  background-blend-mode: normal;
}
.scn-myth-of-er .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); animation: ero-wall 20s ease-in-out infinite alternate; }
.scn-myth-of-er .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 0 0 20px 20px; }
.scn-myth-of-er .bed { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); transform: scaleX(1.05); }
.scn-myth-of-er .figure { position: absolute; bottom: 18%; left: 50%; width: 14%; height: 20%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(-5deg); animation: ero-figure 12s ease-in-out infinite; }
.scn-myth-of-er .lamp { position: absolute; bottom: 40%; left: 15%; width: 4%; height: 8%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px 2px rgba(200,180,140,0.3); }
.scn-myth-of-er .lamp-glow { position: absolute; bottom: 38%; left: 13%; width: 8%; height: 8%; background: radial-gradient(circle, #d0b080 0%, #b08860 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,100,0.4); animation: ero-glow 4s ease-in-out infinite alternate; }
.scn-myth-of-er .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(10,5,5,0.5) 100%); animation: ero-shadow 8s ease-in-out infinite; }
@keyframes ero-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ero-figure { 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 ero-glow { 0% { box-shadow: 0 0 20px 5px rgba(200,160,100,0.3); transform: scale(0.95); } 50% { box-shadow: 0 0 40px 15px rgba(200,160,100,0.6); transform: scale(1.05); } 100% { box-shadow: 0 0 25px 8px rgba(200,160,100,0.4); transform: scale(0.98); } }
@keyframes ero-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }

.scn-conclusion-of-commentary {
  background: 
    linear-gradient(180deg, #3a2e2a 0%, #2a1e1a 50%, #1a1210 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a32 0%, transparent 60%);
}
.scn-conclusion-of-commentary .wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); animation: com-wall 15s ease-in-out infinite alternate; }
.scn-conclusion-of-commentary .desk { position: absolute; bottom: 20%; left: 10%; width: 80%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-conclusion-of-commentary .book { position: absolute; bottom: 33%; left: 35%; width: 30%; height: 14%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 3px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: com-book 25s ease-in-out infinite; }
.scn-conclusion-of-commentary .candle { position: absolute; bottom: 35%; left: 20%; width: 3%; height: 18%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 8px 2px rgba(200,170,130,0.3); }
.scn-conclusion-of-commentary .candle-glow { position: absolute; bottom: 40%; left: 18%; width: 8%; height: 10%; background: radial-gradient(circle, #ffd080 0%, #d0a060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,200,100,0.5); animation: com-glow 3s ease-in-out infinite alternate; }
.scn-conclusion-of-commentary .chair { position: absolute; bottom: 18%; left: 60%; width: 30%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 30% 30%; transform: skewX(-5deg); }
.scn-conclusion-of-commentary .window { position: absolute; top: 15%; left: 30%; width: 40%; height: 30%; background: linear-gradient(180deg, #2a3a40 0%, #1a2a30 100%); border: 4px solid #3a2a2a; border-radius: 5px; box-shadow: inset 0 0 20px rgba(100,150,180,0.3); animation: com-window 10s ease-in-out infinite alternate; }
.scn-conclusion-of-commentary .curtain { position: absolute; top: 15%; left: 28%; width: 44%; height: 30%; background: linear-gradient(90deg, #5a3a2a 0%, transparent 30%, transparent 70%, #5a3a2a 100%); pointer-events: none; animation: com-curtain 20s ease-in-out infinite; }
@keyframes com-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes com-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes com-glow { 0% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.4); transform: scale(0.95); } 50% { box-shadow: 0 0 60px 20px rgba(255,200,100,0.7); transform: scale(1.05); } 100% { box-shadow: 0 0 40px 12px rgba(255,200,100,0.5); transform: scale(0.98); } }
@keyframes com-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes com-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

.scn-myth-of-er-arrival {
  background: 
    linear-gradient(180deg, #4a5a5a 0%, #6a7a7a 40%, #8a9a9a 70%, #aababa 100%),
    radial-gradient(ellipse at 50% 30%, #b0c0c0 0%, transparent 60%);
}
.scn-myth-of-er-arrival .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #8a9a9a 0%, #aababa 100%); animation: arr-sky 30s ease-in-out infinite alternate; }
.scn-myth-of-er-arrival .clouds { position: absolute; top: 10%; height: 8%; width: 25%; background: linear-gradient(180deg, rgba(200,210,210,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); }
.scn-myth-of-er-arrival .cloud-a { left: 10%; animation: arr-cloud-a 40s linear infinite; }
.scn-myth-of-er-arrival .cloud-b { right: 20%; animation: arr-cloud-b 55s linear infinite reverse; }
.scn-myth-of-er-arrival .rainbow { position: absolute; top: 25%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, transparent 0%, #ff8080 10%, #ffb080 20%, #ffe080 30%, #80ff80 40%, #80c0ff 50%, #8080ff 60%, transparent 100%); opacity: 0.4; border-radius: 50% / 100% 100% 0 0; filter: blur(3px); animation: arr-rainbow 8s ease-in-out infinite alternate; }
.scn-myth-of-er-arrival .column { position: absolute; top: 10%; left: 45%; width: 10%; height: 80%; background: linear-gradient(180deg, #d0e0e0 0%, #f0ffff 50%, #d0e0e0 100%); border-radius: 5px; box-shadow: 0 0 60px 20px rgba(200,240,255,0.5); animation: arr-column 6s ease-in-out infinite; }
.scn-myth-of-er-arrival .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-myth-of-er-arrival .figures { position: absolute; bottom: 15%; width: 6%; height: 15%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-myth-of-er-arrival .figure-left { left: 25%; animation: arr-figure-left 15s ease-in-out infinite; }
.scn-myth-of-er-arrival .figure-right { right: 25%; animation: arr-figure-right 18s ease-in-out infinite; }
@keyframes arr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes arr-cloud-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes arr-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes arr-rainbow { 0% { opacity: 0.3; transform: scaleY(0.95); } 50% { opacity: 0.5; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.98); } }
@keyframes arr-column { 0% { opacity: 0.8; box-shadow: 0 0 40px 15px rgba(200,240,255,0.4); } 50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(200,240,255,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 50px 20px rgba(200,240,255,0.5); } }
@keyframes arr-figure-left { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes arr-figure-right { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }

.scn-item-spindle-of-necessity {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%);
}
.scn-item-spindle-of-necessity .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 0 0; }
.scn-item-spindle-of-necessity .spindle-pole { position: absolute; top: 5%; left: 49%; width: 2%; height: 85%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #7a6a5a 100%); border-radius: 3px; box-shadow: 0 0 10px 2px rgba(100,80,60,0.3); animation: spi-pole 10s ease-in-out infinite alternate; }
.scn-item-spindle-of-necessity .whorl { position: absolute; left: 50%; transform: translateX(-50%); border-radius: 50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: 0 0 20px 5px rgba(200,160,100,0.2); }
.scn-item-spindle-of-necessity .whorl-outer { bottom: 30%; width: 30%; height: 30%; background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); }
.scn-item-spindle-of-necessity .whorl-inner { bottom: 38%; width: 14%; height: 14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); animation: spi-whorl 12s ease-in-out infinite; }
.scn-item-spindle-of-necessity .fire { position: absolute; bottom: 15%; left: 20%; width: 8%; height: 15%; background: radial-gradient(ellipse at 50% 80%, #d08030 0%, #b06020 40%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: spi-fire 2s ease-in-out infinite alternate; }
.scn-item-spindle-of-necessity .fire-glow { position: absolute; bottom: 10%; left: 10%; width: 28%; height: 30%; background: radial-gradient(circle, #d08030 0%, #b06020 30%, transparent 70%); border-radius: 50%; opacity: 0.4; animation: spi-fireglow 3s ease-in-out infinite alternate; }
.scn-item-spindle-of-necessity .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(10,5,5,0.6) 100%); }
@keyframes spi-pole { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes spi-whorl { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(180deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes spi-fire { 0% { transform: scaleY(0.95); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.9; } }
@keyframes spi-fireglow { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.98); } }

.scn-art-as-a-whole {
  background:
    linear-gradient(180deg, #2b1d14 0%, #4a3220 40%, #3a2618 100%),
    radial-gradient(ellipse at 50% 60%, #5c4030 0%, transparent 70%);
}
.scn-art-as-a-whole .bg-wall    { position:absolute; inset:0; background:linear-gradient(90deg, #1f1410 0%, #2b1d14 40%, #1f1410 100%); animation:aw-wall 12s ease-in-out infinite alternate; }
.scn-art-as-a-whole .pedestal   { position:absolute; bottom:22%; left:50%; width:60px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #5a4030 0%, #3a2618 100%); border-radius:4% 4% 8% 8%; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-art-as-a-whole .statue     { position:absolute; bottom:38%; left:50%; width:34px; height:60px; transform:translateX(-50%); background:linear-gradient(180deg, #7a6050 0%, #4a3220 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 8px 16px rgba(0,0,0,.5); animation:aw-breathe 8s ease-in-out infinite; }
.scn-art-as-a-whole .spotlight  { position:absolute; top:0; left:35%; width:30%; height:60%; background:radial-gradient(ellipse at 50% 0%, rgba(220,180,100,.4) 0%, transparent 70%); opacity:.6; animation:aw-glow 6s ease-in-out infinite alternate; }
.scn-art-as-a-whole .shadow     { position:absolute; bottom:18%; left:40%; width:20%; height:8px; background:radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%); animation:aw-fade 12s ease-in-out infinite; }
.scn-art-as-a-whole .mote-1     { position:absolute; top:20%; left:20%; width:4px; height:4px; background:rgba(240,200,120,.5); border-radius:50%; filter:blur(2px); animation:aw-mote 18s linear infinite; }
.scn-art-as-a-whole .mote-2     { position:absolute; top:30%; right:25%; width:3px; height:3px; background:rgba(240,200,120,.4); border-radius:50%; filter:blur(1px); animation:aw-mote2 22s linear infinite; }
@keyframes aw-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes aw-breathe { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes aw-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes aw-fade { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes aw-mote { 0% { transform:translate(0,0) rotate(0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform:translate(-20px,-40px) rotate(360deg) scale(.5); opacity:0; } }
@keyframes aw-mote2 { 0% { transform:translate(0,0) rotate(0) scale(1); opacity:0; } 15% { opacity:1; } 85% { opacity:1; } 100% { transform:translate(30px, -50px) rotate(-360deg) scale(.7); opacity:0; } }

.scn-physician-and-judge {
  background:
    linear-gradient(180deg, #1e1814 0%, #2a1f1a 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 40%, #3d2c24 0%, transparent 60%);
}
.scn-physician-and-judge .bg-panel    { position:absolute; inset:0; background:linear-gradient(90deg, #1a1410 0%, #2a1f1a 50%, #1a1410 100%); animation:pj-panel 15s ease-in-out infinite alternate; }
.scn-physician-and-judge .shelf       { position:absolute; top:15%; left:10%; width:80%; height:4px; background:linear-gradient(90deg, #4a3520 0%, #6a4f38 50%, #4a3520 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); }
.scn-physician-and-judge .figure-phys { position:absolute; bottom:28%; left:30%; width:22px; height:55px; background:linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); animation:pj-sway 5s ease-in-out infinite; }
.scn-physician-and-judge .figure-judge{ position:absolute; bottom:28%; right:30%; width:24px; height:58px; background:linear-gradient(180deg, #3a2a22 0%, #1e1814 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; transform:rotate(2deg); animation:pj-sway 6s ease-in-out infinite reverse; }
.scn-physician-and-judge .lamp-glow   { position:absolute; top:5%; left:50%; width:60px; height:80px; background:radial-gradient(ellipse at 50% 30%, rgba(200,160,80,.35) 0%, transparent 70%); animation:pj-lamp 4s ease-in-out infinite alternate; }
.scn-physician-and-judge .lamp-body   { position:absolute; top:4%; left:50%; width:14px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 12px 4px rgba(200,160,80,.3); }
.scn-physician-and-judge .scroll      { position:absolute; bottom:30%; left:42%; width:30px; height:6px; background:linear-gradient(90deg, #c8a86a 0%, #a08050 100%); border-radius:3px; transform:rotate(-5deg); animation:pj-float 10s ease-in-out infinite; }
@keyframes pj-panel { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pj-sway { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(-3deg) translateY(0); } }
@keyframes pj-lamp { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes pj-float { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-4px); } }

.scn-transposition-of-ranks {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a221e 40%, #1e1814 100%),
    radial-gradient(ellipse at 50% 30%, #3a2e28 0%, transparent 70%);
}
.scn-transposition-of-ranks .bg-depth       { position:absolute; inset:0; background:linear-gradient(180deg, #14100c 0%, #2a221e 50%, #14100c 100%); animation:tr-depth 20s ease-in-out infinite alternate; }
.scn-transposition-of-ranks .staircase      { position:absolute; bottom:10%; left:40%; width:20%; height:60%; background:linear-gradient(180deg, #3a2e28 0%, #1a1612 100%); clip-path:polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation:tr-stair 12s ease-in-out infinite; }
.scn-transposition-of-ranks .figure-up      { position:absolute; bottom:20%; left:44%; width:18px; height:40px; background:linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateY(0); animation:tr-climb 7s ease-in-out infinite; }
.scn-transposition-of-ranks .figure-down    { position:absolute; top:20%; right:44%; width:16px; height:36px; background:linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:tr-descend 9s ease-in-out infinite; }
.scn-transposition-of-ranks .torch-flame    { position:absolute; top:35%; left:38%; width:12px; height:18px; background:radial-gradient(ellipse at 50% 30%, #e8b860 0%, #c08030 40%, transparent 70%); border-radius:50% 50% 30% 30%; box-shadow:0 0 20px 8px rgba(200,140,50,.4); animation:tr-fire 3s ease-in-out infinite alternate; }
.scn-transposition-of-ranks .torch-base     { position:absolute; top:38%; left:37.5%; width:14px; height:20px; background:linear-gradient(180deg, #5a4020 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; }
.scn-transposition-of-ranks .step-1         { position:absolute; bottom:30%; left:40%; width:20%; height:4px; background:#4a3a32; border-radius:2px; animation:tr-step 7s ease-in-out infinite; }
.scn-transposition-of-ranks .step-2         { position:absolute; bottom:40%; left:40%; width:20%; height:4px; background:#3a2e28; border-radius:2px; animation:tr-step 9s ease-in-out infinite reverse; }
@keyframes tr-depth { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tr-stair { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes tr-climb { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-10px) rotate(2deg); } 50% { transform:translateY(-20px) rotate(-1deg); } 75% { transform:translateY(-30px) rotate(1deg); } 100% { transform:translateY(-40px) rotate(0); } }
@keyframes tr-descend { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(10px) rotate(-2deg); } 50% { transform:translateY(20px) rotate(1deg); } 75% { transform:translateY(30px) rotate(-1deg); } 100% { transform:translateY(40px) rotate(0); } }
@keyframes tr-fire { 0% { transform:scaleY(1) rotate(-2deg); opacity:.7; } 50% { transform:scaleY(1.3) rotate(3deg); opacity:1; } 100% { transform:scaleY(1) rotate(-1deg); opacity:.8; } }
@keyframes tr-step { 0%,100% { opacity:.6; } 50% { opacity:.9; } }

.scn-two-paradoxes-music-and-soul {
  background:
    linear-gradient(180deg, #1e141a 0%, #2a1e24 40%, #1a1216 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a30 0%, transparent 60%);
}
.scn-two-paradoxes-music-and-soul .bg-velvet  { position:absolute; inset:0; background:linear-gradient(90deg, #1a1216 0%, #2a1e24 50%, #1a1216 100%); animation:tp-velvet 14s ease-in-out infinite alternate; }
.scn-two-paradoxes-music-and-soul .musician   { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background:linear-gradient(180deg, #4a3a40 0%, #2a1e24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-2deg); animation:tp-bow 8s ease-in-out infinite; }
.scn-two-paradoxes-music-and-soul .lyre       { position:absolute; bottom:25%; right:35%; width:40px; height:60px; background:linear-gradient(180deg, #b08050 0%, #7a5020 100%); clip-path:polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%); border-radius:40% 40% 10% 10%; animation:tp-string 6s ease-in-out infinite; }
.scn-two-paradoxes-music-and-soul .note-1     { position:absolute; top:40%; left:50%; width:10px; height:10px; background:radial-gradient(circle, #d4a870 0%, transparent 70%); border-radius:50%; animation:tp-note1 5s ease-in-out infinite; }
.scn-two-paradoxes-music-and-soul .note-2     { position:absolute; top:35%; right:20%; width:8px; height:8px; background:radial-gradient(circle, #c89860 0%, transparent 70%); border-radius:50%; animation:tp-note2 7s ease-in-out infinite; }
.scn-two-paradoxes-music-and-soul .note-3     { position:absolute; top:50%; left:20%; width:6px; height:6px; background:radial-gradient(circle, #c89050 0%, transparent 70%); border-radius:50%; animation:tp-note3 9s ease-in-out infinite; }
.scn-two-paradoxes-music-and-soul .dust       { position:absolute; inset:0; background:radial-gradient(circle at 30% 40%, rgba(200,160,100,.06) 0%, transparent 60%); animation:tp-dust 20s linear infinite; }
@keyframes tp-velvet { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tp-bow { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-3px); } }
@keyframes tp-string { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.05) translateY(-2px); } }
@keyframes tp-note1 { 0% { transform:translate(0,0) scale(1); opacity:.6; } 50% { transform:translate(8px,-12px) scale(1.3); opacity:1; } 100% { transform:translate(0,0) scale(1); opacity:.6; } }
@keyframes tp-note2 { 0% { transform:translate(0,0) scale(1); opacity:.5; } 50% { transform:translate(-6px,-10px) scale(1.2); opacity:1; } 100% { transform:translate(0,0) scale(1); opacity:.5; } }
@keyframes tp-note3 { 0% { transform:translate(0,0) scale(1); opacity:.4; } 50% { transform:translate(10px,-8px) scale(1.1); opacity:.8; } 100% { transform:translate(0,0) scale(1); opacity:.4; } }
@keyframes tp-dust { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-no-organic-difference {
  background: linear-gradient(180deg, #2d2318 0%, #1f1710 40%, #19120d 100%), radial-gradient(ellipse at 50% 100%, #1a130d 0%, transparent 70%);
}
.scn-no-organic-difference .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2d1f 0%, #2b2015 100%);
}
.scn-no-organic-difference .floor {
  position: absolute; bottom: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #1f1610 0%, #120c08 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-no-organic-difference .window {
  position: absolute; left: 20%; top: 15%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #281f16 0%, #1e1610 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: nod-window 8s ease-in-out infinite alternate;
}
.scn-no-organic-difference .desk {
  position: absolute; bottom: 18%; left: 15%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #4a3625 0%, #322316 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-no-organic-difference .book {
  position: absolute; bottom: 29%; left: 18%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #6a4d32 0%, #3d2c1c 100%);
  border-radius: 1px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: nod-book 10s ease-in-out infinite alternate;
}
.scn-no-organic-difference .candle {
  position: absolute; bottom: 29%; left: 30%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #f0d080, 0 0 24px 8px rgba(240,208,128,0.3);
  animation: nod-candle 3s ease-in-out infinite alternate;
}
.scn-no-organic-difference .shadow-figure {
  position: absolute; bottom: 25%; right: 20%; width: 14%; height: 55%;
  background: radial-gradient(ellipse at 50% 100%, #0f0a08 0%, #1a120c 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nod-figure 6s ease-in-out infinite alternate;
}
.scn-no-organic-difference .no-dust {
  position: absolute; width: 6px; height: 6px;
  background: rgba(220,200,160,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-no-organic-difference .mote-1 {
  top: 20%; left: 40%;
  animation: nod-drift-a 20s linear infinite;
}
.scn-no-organic-difference .mote-2 {
  top: 35%; left: 60%;
  animation: nod-drift-b 28s linear infinite reverse;
}
@keyframes nod-window  { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes nod-book    { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nod-candle  { 0% { box-shadow:0 0 8px 2px #f0d080,0 0 20px 6px rgba(240,208,128,0.2); } 50% { box-shadow:0 0 16px 4px #f0d080,0 0 40px 12px rgba(240,208,128,0.4); } 100% { box-shadow:0 0 10px 3px #f0d080,0 0 24px 8px rgba(240,208,128,0.3); } }
@keyframes nod-figure { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg) translateX(4px); } 100% { transform: skewX(1deg); } }
@keyframes nod-drift-a { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translate(80px,-40px); opacity:0; } }
@keyframes nod-drift-b { 0% { transform: translate(0,0); opacity:0; } 30% { opacity:0.5; } 70% { opacity:0.5; } 100% { transform: translate(-60px,30px); opacity:0; } }

.scn-emancipation-of-women {
  background: linear-gradient(180deg, #2e2319 0%, #1f1812 50%, #16100a 100%), radial-gradient(ellipse at 50% 80%, #1f1812 0%, transparent 60%);
}
.scn-emancipation-of-women .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3b2d20 0%, #2c1f14 100%);
}
.scn-emancipation-of-women .floor {
  position: absolute; bottom: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #1c140e 0%, #110b07 100%);
  box-shadow: inset 0 8px 10px rgba(0,0,0,0.6);
}
.scn-emancipation-of-women .lamp {
  position: absolute; left: 50%; top: 10%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #d4a86a 0%, #a07a4a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 30px 10px #f0c080, 0 0 60px 20px rgba(240,192,128,0.3);
  transform: translateX(-50%);
  animation: eow-lamp 5s ease-in-out infinite alternate;
}
.scn-emancipation-of-women .table {
  position: absolute; bottom: 18%; left: 30%; width: 18%; height: 7%;
  background: linear-gradient(180deg, #503c28 0%, #3a2a1c 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
.scn-emancipation-of-women .scrolled-paper {
  position: absolute; bottom: 25%; left: 34%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a480 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: eow-paper 12s ease-in-out infinite alternate;
}
.scn-emancipation-of-women .woman-figure {
  position: absolute; bottom: 22%; left: 52%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #1f1610 0%, #120c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eow-woman 8s ease-in-out infinite alternate;
}
.scn-emancipation-of-women .eow-glow {
  position: absolute; width: 40%; height: 40%;
  background: radial-gradient(circle, rgba(240,200,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.scn-emancipation-of-women .glow-center {
  top: 8%; left: 43%;
  animation: eow-glow-main 4s ease-in-out infinite alternate;
}
.scn-emancipation-of-women .glow-edge {
  top: 12%; left: 48%;
  background: radial-gradient(circle, rgba(240,200,140,0.15) 0%, transparent 60%);
  animation: eow-glow-edge 6s ease-in-out infinite alternate reverse;
}
@keyframes eow-lamp { 0% { box-shadow:0 0 20px 6px #f0c080,0 0 40px 12px rgba(240,192,128,0.2); } 50% { box-shadow:0 0 40px 14px #f0c080,0 0 80px 25px rgba(240,192,128,0.4); } 100% { box-shadow:0 0 25px 8px #f0c080,0 0 50px 15px rgba(240,192,128,0.3); } }
@keyframes eow-paper { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes eow-woman { 0% { transform: translateX(0); } 50% { transform: translateX(4px) scale(1.01); } 100% { transform: translateX(-2px); } }
@keyframes eow-glow-main { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes eow-glow-edge { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.95); } }

.scn-greek-ideals-of-womanhood {
  background: linear-gradient(180deg, #3a2d20 0%, #2b1f15 40%, #1a130d 100%), radial-gradient(ellipse at 50% 100%, #1a130d 0%, transparent 60%);
}
.scn-greek-ideals-of-womanhood .bg-marble {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,190,170,0.15) 0%, transparent 60%);
}
.scn-greek-ideals-of-womanhood .pillar-left {
  position: absolute; bottom: 0; left: 15%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #7a6a55 0%, #5a4d3c 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.6);
  animation: giw-pillar 16s ease-in-out infinite alternate;
}
.scn-greek-ideals-of-womanhood .pillar-right {
  position: absolute; bottom: 0; right: 15%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #7a6a55 0%, #5a4d3c 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.6);
  animation: giw-pillar 16s ease-in-out infinite alternate-reverse;
}
.scn-greek-ideals-of-womanhood .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 30%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a44 0%, #4a3d2e 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
}
.scn-greek-ideals-of-womanhood .statue {
  position: absolute; bottom: 23%; left: 50%; width: 12%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a44 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: giw-statue 12s ease-in-out infinite alternate;
}
.scn-greek-ideals-of-womanhood .giw-light {
  position: absolute; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(230,210,180,0.2) 0%, transparent 100%);
  pointer-events: none;
}
.scn-greek-ideals-of-womanhood .ray-1 {
  top: 0; left: 20%;
  transform: skewX(-10deg);
  animation: giw-ray 8s ease-in-out infinite alternate;
}
.scn-greek-ideals-of-womanhood .ray-2 {
  top: 0; right: 20%;
  transform: skewX(10deg);
  animation: giw-ray 10s ease-in-out infinite alternate-reverse;
}
.scn-greek-ideals-of-womanhood .giw-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 40%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: giw-shadow 14s ease-in-out infinite alternate;
}
@keyframes giw-pillar { 0% { box-shadow:0 0 8px rgba(0,0,0,0.5); } 50% { box-shadow:0 0 20px rgba(0,0,0,0.7); } 100% { box-shadow:0 0 12px rgba(0,0,0,0.5); } }
@keyframes giw-statue { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes giw-ray { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes giw-shadow { 0% { opacity:0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scaleX(0.9); } }

.scn-thucydides-on-women {
  background: linear-gradient(180deg, #271e15 0%, #1b1410 40%, #120c08 100%), radial-gradient(ellipse at 50% 90%, #1a130d 0%, transparent 70%);
}
.scn-thucydides-on-women .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #33261a 0%, #241b12 100%);
}
.scn-thucydides-on-women .scroll {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #c4ae8c 0%, #a08a6a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tw-scroll 12s ease-in-out infinite alternate;
}
.scn-thucydides-on-women .woman-silhouette {
  position: absolute; bottom: 20%; right: 20%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #1a120c 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-woman 10s ease-in-out infinite alternate;
}
.scn-thucydides-on-women .olive-branch {
  position: absolute; bottom: 25%; left: 42%; width: 8%; height: 5%;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tw-olive 8s ease-in-out infinite alternate;
}
.scn-thucydides-on-women .tw-glow {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(240,220,180,0.2) 0%, transparent 60%);
  pointer-events: none;
}
.scn-thucydides-on-women .halo {
  top: 15%; left: 35%; width: 30%; height: 30%;
  animation: tw-glow-main 6s ease-in-out infinite alternate;
}
.scn-thucydides-on-women .sub-glow {
  top: 20%; left: 40%; width: 20%; height: 20%;
  animation: tw-glow-sub 8s ease-in-out infinite alternate-reverse;
}
.scn-thucydides-on-women .tw-particles {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,140,0.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-thucydides-on-women .particle-1 {
  top: 10%; left: 20%;
  animation: tw-drift 30s linear infinite;
}
.scn-thucydides-on-women .particle-2 {
  top: 20%; left: 60%;
  animation: tw-drift 35s linear infinite reverse;
  animation-delay: -10s;
}
.scn-thucydides-on-women .particle-3 {
  top: 30%; left: 40%;
  animation: tw-drift 40s linear infinite;
  animation-delay: -20s;
}
@keyframes tw-scroll { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg); } }
@keyframes tw-woman { 0% { transform: translateX(0); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(3px) rotate(-1deg); } }
@keyframes tw-olive { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.95); } }
@keyframes tw-glow-main { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes tw-glow-sub { 0% { opacity:0.1; transform: scale(0.8); } 50% { opacity:0.4; transform: scale(1.2); } 100% { opacity:0.2; transform: scale(0.9); } }
@keyframes tw-drift { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.6; } 80% { opacity:0.6; } 100% { transform: translate(50px,-30px); opacity:0; } }

/* life-in-democracy */
.scn-life-in-democracy { background: linear-gradient(180deg, #fdf8ed 0%, #f5e1c0 40%, #e8c890 100%), radial-gradient(ellipse at 80% 20%, #fffbe8 0%, transparent 70%); }
.scn-life-in-democracy .wall { position: absolute; inset: 0; background: linear-gradient(135deg, #f5e1c0 0%, #e8c890 50%, #d6b06a 100%); animation: lid-wall 14s ease-in-out infinite alternate; }
.scn-life-in-democracy .window-pane { position: absolute; top: 10%; left: 50%; width: 100px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #b0d0f0 0%, #d0e8ff 100%); border: 6px solid #a08050; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.5); animation: lid-window 8s ease-in-out infinite; }
.scn-life-in-democracy .table { position: absolute; bottom: 18%; left: 50%; width: 160px; height: 12px; transform: translateX(-50%); background: linear-gradient(180deg, #a08050 0%, #806030 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.2); }
.scn-life-in-democracy .vase { position: absolute; bottom: 30%; left: 40%; width: 16px; height: 40px; background: linear-gradient(180deg, #6a8ab0 0%, #4a6a90 100%); border-radius: 20% 20% 30% 30%; box-shadow: inset -2px 0 4px rgba(0,0,0,0.2); animation: lid-vase 6s ease-in-out infinite; }
.scn-life-in-democracy .flower { position: absolute; bottom: 44%; left: 40%; width: 8px; height: 30px; background: linear-gradient(180deg, #6a8a40 0%, #4a6a20 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: lid-flower 4s ease-in-out infinite alternate; }
.scn-life-in-democracy .chair { position: absolute; bottom: 10%; left: 60%; width: 50px; height: 60px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 10% 10% 20% 20%; box-shadow: 4px 0 8px rgba(0,0,0,0.3); }
.scn-life-in-democracy .cat { position: absolute; bottom: 20%; left: 52%; width: 30px; height: 18px; background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%); border-radius: 50% 50% 40% 40%; animation: lid-cat 3s ease-in-out infinite; }
.scn-life-in-democracy .curtain-left { position: absolute; top: 5%; left: 5%; width: 40px; height: 80%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 0 10px 10px 0; filter: blur(1px); animation: lid-curtain 12s ease-in-out infinite alternate; }
.scn-life-in-democracy .curtain-right { position: absolute; top: 5%; right: 5%; width: 40px; height: 80%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 10px 0 0 10px; filter: blur(1px); animation: lid-curtain 12s ease-in-out infinite alternate-reverse; }
@keyframes lid-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lid-window { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes lid-vase { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes lid-flower { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes lid-cat { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(5px) translateY(-2px); } 66% { transform: translateX(-3px) translateY(0); } 100% { transform: translateX(0); } }
@keyframes lid-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* democratic-man */
.scn-democratic-man { background: linear-gradient(180deg, #ebe3d0 0%, #d6c8a8 50%, #b8a080 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 70%); }
.scn-democratic-man .study-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #d6c8a8 0%, #c0b090 100%); }
.scn-democratic-man .window-study { position: absolute; top: 12%; left: 15%; width: 80px; height: 100px; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 100%); border: 4px solid #908060; border-radius: 3px; box-shadow: inset 0 0 20px rgba(255,255,200,0.4); animation: dman-window 10s ease-in-out infinite alternate; }
.scn-democratic-man .desk { position: absolute; bottom: 20%; left: 20%; width: 140px; height: 8px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-democratic-man .book { position: absolute; bottom: 28%; left: 25%; width: 24px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; transform: rotate(-5deg); animation: dman-book 6s ease-in-out infinite; }
.scn-democratic-man .lamp { position: absolute; bottom: 32%; left: 28%; width: 10px; height: 40px; background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius: 4px 4px 0 0; animation: dman-lamp 8s ease-in-out infinite; }
.scn-democratic-man .lamp::after { content:''; position:absolute; top:-6px; left:-4px; width:18px; height:10px; background: radial-gradient(circle, #ffe080 0%, #c8a040 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,224,128,0.5); }
.scn-democratic-man .chair-study { position: absolute; bottom: 10%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 20% 20%; }
.scn-democratic-man .figure-son { position: absolute; bottom: 16%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dman-figure 5s ease-in-out infinite; }
@keyframes dman-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dman-book { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } }
@keyframes dman-lamp { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dman-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0); } }

/* democratic-man-transition */
.scn-democratic-man-transition { background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 40%, #c0a070 100%), radial-gradient(ellipse at 30% 70%, #fff0d0 0%, transparent 60%); }
.scn-democratic-man-transition .transition-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #e0c8a0 0%, #c0a070 100%); }
.scn-democratic-man-transition .table-t { position: absolute; bottom: 22%; left: 50%; width: 120px; height: 8px; transform: translateX(-50%); background: linear-gradient(180deg, #907050 0%, #705030 100%); border-radius: 4px; }
.scn-democratic-man-transition .honey-pot { position: absolute; bottom: 30%; left: 48%; width: 24px; height: 28px; background: radial-gradient(ellipse at 50% 30%, #c8a050 0%, #a08030 100%); border-radius: 30% 30% 40% 40%; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); animation: dmat-pot 8s ease-in-out infinite alternate; }
.scn-democratic-man-transition .honey-drip { position: absolute; bottom: 18%; left: 48%; width: 4px; height: 12px; background: linear-gradient(180deg, #d8b060 0%, #c09040 100%); border-radius: 0 0 50% 50%; animation: dmat-drip 3s ease-in-out infinite; }
.scn-democratic-man-transition .hand { position: absolute; bottom: 24%; left: 42%; width: 14px; height: 20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform: rotate(20deg); animation: dmat-hand 4s ease-in-out infinite alternate; }
.scn-democratic-man-transition .bee { position: absolute; top: 60%; right: 30%; width: 18px; height: 12px; background: linear-gradient(180deg, #806030 0%, #604010 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 6px rgba(255,200,80,0.3); animation: dmat-bee 5s linear infinite; }
@keyframes dmat-pot { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes dmat-drip { 0% { height: 12px; opacity: 1; } 50% { height: 20px; opacity: 0.8; } 100% { height: 12px; opacity: 1; } }
@keyframes dmat-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg); } }
@keyframes dmat-bee { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-30px) translateY(-10px); } 50% { transform: translateX(-60px) translateY(0); } 75% { transform: translateX(-30px) translateY(10px); } 100% { transform: translateX(0); } }

/* tyranny-from-democracy */
.scn-tyranny-from-democracy { background: linear-gradient(180deg, #1a0a0a 0%, #0a0a1a 30%, #1a1a3a 60%, #0a0a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%); }
.scn-tyranny-from-democracy .dark-bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,26,0.9) 0%, rgba(20,10,10,0.8) 100%); }
.scn-tyranny-from-democracy .tyrant-figure { position: absolute; bottom: 10%; left: 50%; width: 60px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,0.8); animation: tyrd-figure 6s ease-in-out infinite; }
.scn-tyranny-from-democracy .crown { position: absolute; top: 8%; left: 50%; width: 40px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); clip-path: polygon(0% 100%, 20% 0%, 40% 50%, 60% 0%, 80% 50%, 100% 0%, 100% 100%); box-shadow: 0 0 20px rgba(200,160,80,0.5); animation: tyrd-crown 4s ease-in-out infinite alternate; }
.scn-tyranny-from-democracy .chain-left { position: absolute; bottom: 18%; left: 30%; width: 4px; height: 60px; background: repeating-linear-gradient(0deg, #604040 0px, #604040 6px, transparent 6px, transparent 12px); animation: tyrd-chain 3s ease-in-out infinite; }
.scn-tyranny-from-democracy .chain-right { position: absolute; bottom: 18%; right: 30%; width: 4px; height: 60px; background: repeating-linear-gradient(0deg, #604040 0px, #604040 6px, transparent 6px, transparent 12px); animation: tyrd-chain 3s ease-in-out infinite reverse; }
.scn-tyranny-from-democracy .torch { position: absolute; bottom: 5%; left: 50%; width: 10px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #806030 0%, #604010 100%); border-radius: 0 0 30% 30%; }
.scn-tyranny-from-democracy .torch::before { content:''; position:absolute; top:-12px; left:-8px; width:26px; height:16px; background: radial-gradient(ellipse, #e08020 0%, #c06010 50%, transparent 70%); border-radius:50%; animation: tyrd-flame 1.5s ease-in-out infinite alternate; }
.scn-tyranny-from-democracy .crowd-shadow { position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(10,10,10,0.8) 100%); border-radius: 50% 50% 0 0; animation: tyrd-crowd 8s ease-in-out infinite; }
@keyframes tyrd-figure { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes tyrd-crown { 0% { opacity: 0.7; transform: translateX(-50%) translateY(0); } 100% { opacity: 1; transform: translateX(-50%) translateY(-2px); } }
@keyframes tyrd-chain { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes tyrd-flame { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.1) scaleX(0.9); } 100% { transform: scaleY(0.9) scaleX(1.1); } }
@keyframes tyrd-crowd { 0% { height: 30%; } 50% { height: 35%; } 100% { height: 30%; } }

/* scene: ideals-not-realizable (tag: ir) */
.scn-ideals-not-realizable {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1e16 30%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 40%, #4a3528 0%, transparent 80%);
}
.scn-ideals-not-realizable .wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #1e1410 0%, #2a1e16 50%, #1a120e 100%);
  animation: ir-wall 20s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .window {
  position:absolute; top:10%; left:30%; width:90px; height:120px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 6px 6px 30% 30%; box-shadow: inset 0 0 30px #0a1a2a;
  animation: ir-window 8s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .moonlight {
  position:absolute; top:10%; left:30%; width:90px; height:120px;
  background: radial-gradient(ellipse at 50% 20%, rgba(200,220,240,0.15) 0%, transparent 60%);
  animation: ir-moon 12s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .desk {
  position:absolute; bottom:18%; left:15%; right:15%; height:14%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e16 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  animation: ir-desk 9s ease-in-out infinite;
}
.scn-ideals-not-realizable .figure {
  position:absolute; bottom:22%; left:40%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ir-figure 5s ease-in-out infinite;
}
.scn-ideals-not-realizable .book {
  position:absolute; bottom:19%; left:45%; width:40px; height:12px;
  background: linear-gradient(180deg, #6a5440 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: ir-book 7s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .candle {
  position:absolute; bottom:27%; left:55%; width:4px; height:16px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,168,120,0.5);
  animation: ir-candle 3s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .shelf-l {
  position:absolute; top:30%; left:8%; width:50px; height:8px;
  background: #3a2a1e; border-radius: 2px; box-shadow: 0 30px 0 #3a2a1e, 0 60px 0 #3a2a1e;
  animation: ir-shelf 25s ease-in-out infinite alternate;
}
.scn-ideals-not-realizable .shelf-r {
  position:absolute; top:30%; right:8%; width:50px; height:8px;
  background: #2e1e14; border-radius: 2px; box-shadow: 0 30px 0 #2e1e14, 0 60px 0 #2e1e14;
  animation: ir-shelf 25s ease-in-out infinite alternate-reverse;
}
@keyframes ir-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ir-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1.03) } }
@keyframes ir-moon   { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ir-desk   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ir-figure { 0% { transform: translateX(0) rotate(-1deg) } 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 ir-book   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-8deg) } }
@keyframes ir-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.05) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.98) scaleX(1.02); opacity:0.85 } }
@keyframes ir-shelf  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }

/* scene: noble-lie (tag: nl) */
.scn-noble-lie {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a2018 40%, #1e1612 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 70%);
}
.scn-noble-lie .pillar-l {
  position:absolute; bottom:10%; left:10%; width:24px; height:80%;
  background: linear-gradient(90deg, #4a3a2e 0%, #3a2a1e 50%, #2e1e14 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset -4px 0 10px rgba(0,0,0,0.5);
  animation: nl-pillar 15s ease-in-out infinite alternate;
}
.scn-noble-lie .pillar-r {
  position:absolute; bottom:10%; right:10%; width:24px; height:80%;
  background: linear-gradient(90deg, #2e1e14 0%, #3a2a1e 50%, #4a3a2e 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 4px 0 10px rgba(0,0,0,0.5);
  animation: nl-pillar 15s ease-in-out infinite alternate-reverse;
}
.scn-noble-lie .arch {
  position:absolute; top:10%; left:8%; right:8%; height:16%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2e 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: nl-arch 12s ease-in-out infinite alternate;
}
.scn-noble-lie .floor {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%);
  border-radius: 0 0 20% 20%;
}
.scn-noble-lie .figure {
  position:absolute; bottom:12%; left:45%; width:24px; height:42px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-figure 6s ease-in-out infinite;
}
.scn-noble-lie .scroll {
  position:absolute; bottom:14%; left:50%; width:6px; height:18px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top center;
  animation: nl-scroll 8s ease-in-out infinite alternate;
}
.scn-noble-lie .lamp {
  position:absolute; bottom:26%; left:30%; width:8px; height:14px;
  background: radial-gradient(circle, #e0c090 0%, #a08050 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 24px 8px rgba(200,168,80,0.4);
  animation: nl-lamp 4s ease-in-out infinite alternate;
}
.scn-noble-lie .shadow {
  position:absolute; bottom:8%; left:35%; right:35%; height:6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: nl-shadow 6s ease-in-out infinite;
}
@keyframes nl-pillar  { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }
@keyframes nl-arch   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nl-figure { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(4px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nl-scroll { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes nl-lamp   { 0% { opacity:0.8; box-shadow:0 0 16px 4px rgba(200,168,80,0.3) } 50% { opacity:1; box-shadow:0 0 32px 12px rgba(200,168,80,0.6) } 100% { opacity:0.7; box-shadow:0 0 20px 6px rgba(200,168,80,0.4) } }
@keyframes nl-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.6 } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:0.8 } 100% { transform: scaleX(0.9) scaleY(1.1); opacity:0.5 } }

/* scene: niebuhr-question (tag: nq) */
.scn-niebuhr-question {
  background:
    linear-gradient(180deg, #1a1410 0%, #221a14 50%, #18120e 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a20 0%, transparent 60%);
}
.scn-niebuhr-question .bg-dark {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, #1e1612 0%, #0e0a08 100%);
  animation: nq-bg 20s ease-in-out infinite alternate;
}
.scn-niebuhr-question .hand {
  position:absolute; bottom:20%; left:35%; width:34px; height:30px;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nq-hand 5s ease-in-out infinite alternate;
}
.scn-niebuhr-question .quill {
  position:absolute; bottom:30%; left:38%; width:4px; height:40px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: bottom center;
  animation: nq-quill 3s ease-in-out infinite alternate;
}
.scn-niebuhr-question .inkwell {
  position:absolute; bottom:18%; left:50%; width:18px; height:14px;
  background: radial-gradient(ellipse, #2a1e14 0%, #0e0a08 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
  animation: nq-ink 8s ease-in-out infinite;
}
.scn-niebuhr-question .paper {
  position:absolute; bottom:15%; left:42%; width:40px; height:30px;
  background: linear-gradient(135deg, #c8b8a8 0%, #a09080 100%);
  border-radius: 2px; transform: rotate(-8deg);
  animation: nq-paper 12s ease-in-out infinite alternate;
}
.scn-niebuhr-question .blot {
  position:absolute; bottom:22%; left:45%; width:8px; height:6px;
  background: #1a0e08; border-radius: 50%;
  animation: nq-blot 7s ease-in-out infinite;
}
.scn-niebuhr-question .glow {
  position:absolute; bottom:20%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: nq-glow 5s ease-in-out infinite alternate;
}
@keyframes nq-bg   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nq-hand { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes nq-quill{ 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(-6deg) scaleY(0.95) } }
@keyframes nq-ink  { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1.05) } }
@keyframes nq-paper{ 0% { transform: rotate(-8deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-11deg) } }
@keyframes nq-blot { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes nq-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* scene: plato-and-age (tag: pa) */
.scn-plato-and-age {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1e16 40%, #1a120e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 80%);
}
.scn-plato-and-age .desk-top {
  position:absolute; bottom:18%; left:10%; right:10%; height:20%;
  background: linear-gradient(160deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
  animation: pa-desk 15s ease-in-out infinite alternate;
}
.scn-plato-and-age .book-open {
  position:absolute; bottom:22%; left:35%; width:50px; height:30px;
  background: linear-gradient(90deg, #a09080 0%, #c8b8a8 30%, #e0c8b0 50%, #c8b8a8 70%, #a09080 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: pa-book 8s ease-in-out infinite alternate;
}
.scn-plato-and-age .statue {
  position:absolute; bottom:30%; left:60%; width:20px; height:34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-statue 10s ease-in-out infinite;
}
.scn-plato-and-age .lamp {
  position:absolute; bottom:35%; left:25%; width:12px; height:18px;
  background: radial-gradient(circle, #e0c090 0%, #a08050 80%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 28px 10px rgba(200,168,80,0.4);
  animation: pa-lamp 4s ease-in-out infinite alternate;
}
.scn-plato-and-age .shadow-left {
  position:absolute; bottom:14%; left:8%; width:50px; height:12%;
  background: radial-gradient(ellipse at 100% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pa-shadow 12s ease-in-out infinite alternate;
}
.scn-plato-and-age .shadow-right {
  position:absolute; bottom:14%; right:8%; width:50px; height:12%;
  background: radial-gradient(ellipse at 0% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pa-shadow 12s ease-in-out infinite alternate-reverse;
}
.scn-plato-and-age .dust {
  position:absolute; top:20%; left:30%; width:4px; height:4px;
  background: rgba(200,180,160,0.3); border-radius: 50%; filter: blur(2px);
  animation: pa-dust 20s linear infinite;
}
@keyframes pa-desk   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes pa-book   { 0% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }
@keyframes pa-statue { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(2px) rotate(2deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pa-lamp   { 0% { opacity:0.8; box-shadow:0 0 20px 6px rgba(200,168,80,0.3) } 50% { opacity:1; box-shadow:0 0 40px 16px rgba(200,168,80,0.5) } 100% { opacity:0.7; box-shadow:0 0 24px 8px rgba(200,168,80,0.4) } }
@keyframes pa-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes pa-dust   { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:0.5 } 50% { transform: translate(30px, -20px) scale(1.5); opacity:0.3 } 90% { opacity:0 } 100% { transform: translate(60px, -10px) scale(0.5); opacity:0 } }

.scn-platos-influence-unexhausted { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a0e 100%), radial-gradient(ellipse at 60% 70%, #4a3a2a 0%, transparent 60%); }
.scn-platos-influence-unexhausted .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-platos-influence-unexhausted .desk { position:absolute; bottom:15%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4%; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-platos-influence-unexhausted .lamp { position:absolute; bottom:33%; left:28%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius:2px; transform-origin:bottom center; animation: si6-sway 6s ease-in-out infinite; }
.scn-platos-influence-unexhausted .lamp-glow { position:absolute; bottom:38%; left:28%; width:50px; height:50px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd080 0%, #c08840 30%, transparent 70%); border-radius:50%; animation: si6-pulse 4s ease-in-out infinite alternate; }
.scn-platos-influence-unexhausted .book-1 { position:absolute; bottom:22%; left:30%; width:50px; height:8px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform:rotate(-8deg); animation: si6-float-book 10s ease-in-out infinite; }
.scn-platos-influence-unexhausted .book-2 { position:absolute; bottom:24%; left:40%; width:44px; height:7px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform:rotate(4deg); animation: si6-float-book 12s ease-in-out infinite reverse; }
.scn-platos-influence-unexhausted .scroll { position:absolute; bottom:20%; left:50%; width:60px; height:6px; background: linear-gradient(180deg, #c8a86a 0%, #a88848 50%, #c8a86a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform:translateX(-50%); animation: si6-unroll 8s ease-in-out infinite alternate; }
.scn-platos-influence-unexhausted .motes-1 { position:absolute; top:20%; left:25%; width:4px; height:4px; background: radial-gradient(circle, rgba(255,208,128,.6) 0%, transparent 100%); border-radius:50%; animation: si6-drift-up 14s linear infinite; }
.scn-platos-influence-unexhausted .motes-2 { position:absolute; top:40%; left:55%; width:3px; height:3px; background: radial-gradient(circle, rgba(255,208,128,.4) 0%, transparent 100%); border-radius:50%; animation: si6-drift-up 18s linear infinite reverse; }
@keyframes si6-sway { 0%,100% { transform:rotate(-2deg) } 50% { transform:rotate(3deg) } }
@keyframes si6-pulse { 0% { opacity:.7; transform:translate(-50%,50%) scale(.95) } 50% { opacity:1; transform:translate(-50%,50%) scale(1.05) } 100% { opacity:.8; transform:translate(-50%,50%) scale(1) } }
@keyframes si6-float-book { 0%,100% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-2px) } }
@keyframes si6-unroll { 0% { transform:translateX(-50%) scaleX(.6) } 50% { transform:translateX(-50%) scaleX(1.1) } 100% { transform:translateX(-50%) scaleX(.8) } }
@keyframes si6-drift-up { 0% { transform:translateY(0) scale(1); opacity:.6 } 50% { transform:translateY(-30px) scale(1.5); opacity:.3 } 100% { transform:translateY(-60px) scale(.8); opacity:0 } }

.scn-idea-of-good-and-final-cause { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 70%); }
.scn-idea-of-good-and-final-cause .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
.scn-idea-of-good-and-final-cause .arch { position:absolute; top:8%; left:20%; right:20%; bottom:40%; background: radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 70%); border-radius:50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-idea-of-good-and-final-cause .pedestal { position:absolute; bottom:35%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-idea-of-good-and-final-cause .sphere { position:absolute; bottom:48%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 35% 35%, #8ab8d8 0%, #5a8aaa 60%, #3a6a8a 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(90,138,170,.4), 0 0 40px 12px rgba(90,138,170,.2); animation: si7-respire 8s ease-in-out infinite alternate; }
.scn-idea-of-good-and-final-cause .ray-1 { position:absolute; top:5%; left:30%; width:2px; height:50%; background: linear-gradient(180deg, rgba(180,210,230,.5) 0%, transparent 100%); transform:rotate(12deg); transform-origin:top center; animation: si7-ray 6s ease-in-out infinite alternate; }
.scn-idea-of-good-and-final-cause .ray-2 { position:absolute; top:5%; right:30%; width:2px; height:50%; background: linear-gradient(180deg, rgba(180,210,230,.4) 0%, transparent 100%); transform:rotate(-8deg); transform-origin:top center; animation: si7-ray 8s ease-in-out infinite alternate reverse; }
.scn-idea-of-good-and-final-cause .shadow { position:absolute; bottom:33%; left:40%; right:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: si7-shadow-grow 8s ease-in-out infinite alternate; }
.scn-idea-of-good-and-final-cause .motes-3 { position:absolute; top:15%; left:45%; width:3px; height:3px; background: radial-gradient(circle, rgba(200,220,240,.5) 0%, transparent 100%); border-radius:50%; animation: si7-drift 20s linear infinite; }
.scn-idea-of-good-and-final-cause .leaf { position:absolute; bottom:36%; left:60%; width:12px; height:6px; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius:50% 0 50% 0; transform:rotate(30deg); animation: si7-leaf-fall 12s ease-in-out infinite; }
@keyframes si7-respire { 0% { transform:translateX(-50%) scale(.95); box-shadow:0 0 16px 4px rgba(90,138,170,.3) } 50% { transform:translateX(-50%) scale(1.05); box-shadow:0 0 32px 12px rgba(90,138,170,.5) } 100% { transform:translateX(-50%) scale(1); box-shadow:0 0 20px 6px rgba(90,138,170,.4) } }
@keyframes si7-ray { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes si7-shadow-grow { 0% { transform:scaleX(.8); opacity:.5 } 50% { transform:scaleX(1.2); opacity:.3 } 100% { transform:scaleX(1); opacity:.4 } }
@keyframes si7-drift { 0% { transform:translateY(0) translateX(0); opacity:.6 } 50% { transform:translateY(-20px) translateX(10px); opacity:.3 } 100% { transform:translateY(-40px) translateX(0); opacity:0 } }
@keyframes si7-leaf-fall { 0% { transform:rotate(30deg) translateY(0) translateX(0) } 25% { transform:rotate(20deg) translateY(4px) translateX(-3px) } 50% { transform:rotate(35deg) translateY(8px) translateX(2px) } 75% { transform:rotate(25deg) translateY(12px) translateX(-4px) } 100% { transform:rotate(30deg) translateY(18px) translateX(0) } }

.scn-dialectic-division { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 60%); }
.scn-dialectic-division .bg-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); }
.scn-dialectic-division .column-left { position:absolute; top:10%; bottom:15%; left:15%; width:15%; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 50%, #3a3a5a 100%); border-radius:6% 6% 4% 4%; box-shadow: 4px 0 12px rgba(0,0,0,.4); animation: si8-breathe-col 10s ease-in-out infinite alternate; }
.scn-dialectic-division .column-right { position:absolute; top:10%; bottom:15%; right:15%; width:15%; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 50%, #3a3a5a 100%); border-radius:6% 6% 4% 4%; box-shadow: -4px 0 12px rgba(0,0,0,.4); animation: si8-breathe-col 12s ease-in-out infinite alternate reverse; }
.scn-dialectic-division .divider { position:absolute; top:30%; bottom:30%; left:50%; width:2px; transform:translateX(-50%); background: linear-gradient(180deg, transparent 0%, rgba(180,180,220,.5) 50%, transparent 100%); animation: si8-divide-pulse 4s ease-in-out infinite; }
.scn-dialectic-division .glow-center { position:absolute; top:40%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(180,180,220,.4) 0%, transparent 70%); border-radius:50%; animation: si8-center-glow 6s ease-in-out infinite alternate; }
.scn-dialectic-division .part-a { position:absolute; top:35%; left:28%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #8a8aba 0%, #5a5a8a 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(90,90,138,.4); animation: si8-part-a 9s ease-in-out infinite; }
.scn-dialectic-division .part-b { position:absolute; top:50%; right:30%; width:16px; height:16px; background: radial-gradient(circle at 60% 60%, #8a8aba 0%, #5a5a8a 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(90,90,138,.4); animation: si8-part-b 9s ease-in-out infinite reverse; }
.scn-dialectic-division .connector { position:absolute; top:42%; left:45%; right:45%; height:2px; background: linear-gradient(90deg, rgba(138,138,186,.6) 0%, transparent 50%, rgba(138,138,186,.6) 100%); animation: si8-connect 5s ease-in-out infinite alternate; }
@keyframes si8-breathe-col { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.02) translateY(-2px) } 100% { transform:scaleY(.98) translateY(0) } }
@keyframes si8-divide-pulse { 0% { opacity:.3 } 50% { opacity:1 } 100% { opacity:.4 } }
@keyframes si8-center-glow { 0% { transform:translate(-50%,-50%) scale(.9); opacity:.6 } 50% { transform:translate(-50%,-50%) scale(1.2); opacity:1 } 100% { transform:translate(-50%,-50%) scale(1); opacity:.7 } }
@keyframes si8-part-a { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(-5px,3px) scale(.9) } 50% { transform:translate(2px,-4px) scale(1.1) } 75% { transform:translate(-3px,2px) scale(.95) } 100% { transform:translate(0,-2px) scale(1) } }
@keyframes si8-part-b { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(4px,-2px) scale(1.05) } 50% { transform:translate(-3px,3px) scale(.9) } 75% { transform:translate(5px,1px) scale(1) } 100% { transform:translate(2px,0) scale(.95) } }
@keyframes si8-connect { 0% { opacity:.2; transform:scaleX(.6) } 50% { opacity:.8; transform:scaleX(1) } 100% { opacity:.3; transform:scaleX(.7) } }

.scn-dialogues-as-dialectic { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a0e 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%); }
.scn-dialogues-as-dialectic .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-dialogues-as-dialectic .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-dialogues-as-dialectic .figure-left { position:absolute; bottom:25%; left:18%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: si9-gesture-l 7s ease-in-out infinite; }
.scn-dialogues-as-dialectic .figure-right { position:absolute; bottom:25%; right:18%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: si9-gesture-r 9s ease-in-out infinite reverse; }
.scn-dialogues-as-dialectic .table { position:absolute; bottom:28%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:6% 6% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-dialogues-as-dialectic .lamp-table { position:absolute; bottom:38%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius:2px; }
.scn-dialogues-as-dialectic .lamp-table-glow { position:absolute; bottom:40%; left:50%; width:80px; height:80px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffc860 0%, #c08840 30%, transparent 70%); border-radius:50%; animation: si9-lamp-glow 5s ease-in-out infinite alternate; }
.scn-dialogues-as-dialectic .shadow-floor { position:absolute; bottom:28%; left:20%; right:20%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: si9-shadow 8s ease-in-out infinite alternate; }
.scn-dialogues-as-dialectic .orb-1 { position:absolute; top:15%; left:25%; width:8px; height:8px; background: radial-gradient(circle, rgba(255,200,96,.6) 0%, transparent 100%); border-radius:50%; animation: si9-orb-drift 16s linear infinite; }
.scn-dialogues-as-dialectic .orb-2 { position:absolute; top:25%; right:30%; width:6px; height:6px; background: radial-gradient(circle, rgba(255,200,96,.4) 0%, transparent 100%); border-radius:50%; animation: si9-orb-drift 22s linear infinite reverse; }
@keyframes si9-gesture-l { 0% { transform:rotate(-2deg) translateY(0) } 25% { transform:rotate(3deg) translateY(-1px) } 50% { transform:rotate(-1deg) translateY(0) } 75% { transform:rotate(4deg) translateY(-2px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes si9-gesture-r { 0% { transform:rotate(2deg) translateY(0) } 25% { transform:rotate(-3deg) translateY(-1px) } 50% { transform:rotate(1deg) translateY(0) } 75% { transform:rotate(-4deg) translateY(-2px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes si9-lamp-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) } }
@keyframes si9-shadow { 0% { transform:scaleX(.8); opacity:.4 } 50% { transform:scaleX(1.1); opacity:.2 } 100% { transform:scaleX(.9); opacity:.3 } }
@keyframes si9-orb-drift { 0% { transform:translateY(0) translateX(0); opacity:.5 } 50% { transform:translateY(-30px) translateX(10px); opacity:.2 } 100% { transform:translateY(-60px) translateX(-5px); opacity:0 } }

/* Scene: ages-for-marriage */
.scn-ages-for-marriage {
  background: 
    linear-gradient(180deg, #f9e4c8 0%, #e3c9a0 60%, #ceb080 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8d0 0%, transparent 70%);
}
.scn-ages-for-marriage .room-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8d4b0 0%, #dcc4a0 100%);
  animation: agm-wall 12s ease-in-out infinite alternate;
}
.scn-ages-for-marriage .window-frame {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 45%; 
  border: 8px solid #7a5a3a; border-radius: 4px; box-shadow: inset 0 0 0 4px #5a3a1a;
  background: linear-gradient(180deg, #b8d8f0 0%, #c8e8ff 100%);
}
.scn-ages-for-marriage .window-glow {
  position: absolute; top: 10%; left: 37%; width: 26%; height: 41%; 
  background: radial-gradient(ellipse at 50% 50%, #fffbe0 0%, transparent 60%);
  opacity: 0.3; animation: agm-glow 5s ease-in-out infinite alternate;
}
.scn-ages-for-marriage .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 6%; 
  background: linear-gradient(180deg, #8b6b4b 0%, #6b4b2b 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: agm-table 8s ease-in-out infinite;
}
.scn-ages-for-marriage .man-figure {
  position: absolute; bottom: 18%; left: 30%; width: 6%; height: 22%; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: agm-turn 6s ease-in-out infinite alternate;
}
.scn-ages-for-marriage .woman-figure {
  position: absolute; bottom: 18%; right: 30%; width: 5.5%; height: 19%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: agm-turn 6s ease-in-out infinite alternate-reverse;
}
.scn-ages-for-marriage .hourglass {
  position: absolute; bottom: 26%; left: 48%; width: 4%; height: 10%; 
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: agm-sand 4s ease-in-out infinite;
}
.scn-ages-for-marriage .dust {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 40%; 
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.3) 0%, transparent 50%);
  filter: blur(8px); animation: agm-dust 20s linear infinite;
}
@keyframes agm-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes agm-glow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes agm-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes agm-turn { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes agm-sand { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes agm-dust { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-5px) scale(1.1); } 100% { transform: translate(0,0) scale(1); } }

/* Scene: advantages-of-community */
.scn-advantages-of-community {
  background:
    linear-gradient(180deg, #fdf5e6 0%, #f5e6cc 40%, #e6d5b8 100%),
    radial-gradient(ellipse at 50% 30%, #fffbe0 0%, transparent 50%);
}
.scn-advantages-of-community .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #cbb08a 0%, #b89a72 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-advantages-of-community .round-table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 14%; 
  background: linear-gradient(180deg, #a68a6a 0%, #8a6e4e 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  animation: adv-table 10s ease-in-out infinite;
}
.scn-advantages-of-community .shadow-circle {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 14%; 
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%; animation: adv-shadow 12s ease-in-out infinite alternate;
}
.scn-advantages-of-community .figure-1 {
  position: absolute; bottom: 22%; left: 28%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: adv-turn 7s ease-in-out infinite;
}
.scn-advantages-of-community .figure-2 {
  position: absolute; bottom: 22%; left: 40%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: adv-turn 7s ease-in-out infinite 1.5s;
}
.scn-advantages-of-community .figure-3 {
  position: absolute; bottom: 22%; left: 52%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: adv-turn 7s ease-in-out infinite 3s;
}
.scn-advantages-of-community .figure-4 {
  position: absolute; bottom: 22%; left: 64%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: adv-turn 7s ease-in-out infinite 4.5s;
}
.scn-advantages-of-community .light-beam {
  position: absolute; top: 0%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,230,0.4) 0%, transparent 100%);
  transform: rotate(-10deg); animation: adv-beam 15s ease-in-out infinite alternate;
}
@keyframes adv-table { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes adv-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes adv-turn { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes adv-beam { 0% { opacity: 0.2; transform: rotate(-10deg) scaleX(1); } 50% { opacity: 0.5; transform: rotate(-8deg) scaleX(1.05); } 100% { opacity: 0.3; transform: rotate(-12deg) scaleX(0.95); } }

/* Scene: strife-eliminated */
.scn-strife-eliminated {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 50%, #c8b090 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-strife-eliminated .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c4a8 0%, #c8b498 100%);
  animation: str-back 20s ease-in-out infinite alternate;
}
.scn-strife-eliminated .bench {
  position: absolute; bottom: 0%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
  animation: str-bench 8s ease-in-out infinite;
}
.scn-strife-eliminated .gavel {
  position: absolute; bottom: 15%; left: 20%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: bottom left;
  animation: str-gavel 4s ease-in-out infinite alternate;
}
.scn-strife-eliminated .book {
  position: absolute; bottom: 12%; left: 40%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a08 100%);
  border-radius: 4px 4px 1px 1px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: str-book 6s ease-in-out infinite;
}
.scn-strife-eliminated .dove {
  position: absolute; top: 30%; left: 55%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 40% 60%, #ffffff 0%, #d0d0d0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
  animation: str-dove 10s ease-in-out infinite;
}
.scn-strife-eliminated .olive-branch {
  position: absolute; top: 35%; left: 60%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 80% 20% 80% 20% / 60% 40% 60% 40%;
  transform: rotate(30deg); animation: str-olive 8s ease-in-out infinite alternate;
}
.scn-strife-eliminated .window-light {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,248,200,0.4) 0%, transparent 70%);
  animation: str-light 12s ease-in-out infinite alternate;
}
@keyframes str-back { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.93; } }
@keyframes str-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes str-gavel { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes str-book { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes str-dove { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-10px,-5px) scale(1.02); } 100% { transform: translate(0,0) scale(1); } }
@keyframes str-olive { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes str-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.35; } }

/* Scene: possibility-of-community */
.scn-possibility-of-community {
  background:
    linear-gradient(180deg, #d8c0a0 0%, #c0a880 40%, #a08860 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 50%);
}
.scn-possibility-of-community .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a080 0%, #a08868 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: pos-wall 15s ease-in-out infinite alternate;
}
.scn-possibility-of-community .tent-opening {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 70%;
  border: 6px solid #6a5a4a; border-radius: 20% 20% 0 0;
  background: linear-gradient(180deg, #d0b898 0%, #b89870 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-possibility-of-community .parent-figure {
  position: absolute; bottom: 10%; left: 38%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pos-fig 6s ease-in-out infinite;
}
.scn-possibility-of-community .child-figure {
  position: absolute; bottom: 8%; left: 54%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pos-fig 6s ease-in-out infinite 1s;
}
.scn-possibility-of-community .battle-ground {
  position: absolute; bottom: 0%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: pos-ground 20s ease-in-out infinite alternate;
}
.scn-possibility-of-community .flag-left {
  position: absolute; bottom: 25%; right: 65%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%);
  transform: rotate(-15deg); transform-origin: bottom left;
  animation: pos-flag 4s ease-in-out infinite alternate;
}
.scn-possibility-of-community .flag-right {
  position: absolute; bottom: 25%; left: 65%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  transform: rotate(15deg); transform-origin: bottom right;
  animation: pos-flag 4s ease-in-out infinite alternate-reverse;
}
.scn-possibility-of-community .smoke {
  position: absolute; top: 50%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(150,130,110,0.4) 0%, transparent 70%);
  filter: blur(10px); animation: pos-smoke 25s linear infinite;
}
@keyframes pos-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes pos-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pos-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pos-flag { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes pos-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(20px,-10px) scale(1.2); opacity: 0.5; } 100% { transform: translate(0,0) scale(1); opacity: 0.3; } }

/* scene 1: meaning-of-the-passage */
.scn-meaning-of-the-passage {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 70%);
}
.scn-meaning-of-the-passage .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #3a2a1e 0%, #1a1410 100%); 
  opacity: 0.7; 
  animation: scn1-wall 15s ease-in-out infinite alternate;
}
.scn-meaning-of-the-passage .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%; 
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); 
  border-radius: 4px 4px 0 0; 
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-meaning-of-the-passage .book-left {
  position: absolute; bottom: 28%; left: 15%; width: 30%; height: 18%; 
  background: linear-gradient(135deg, #8a6a4a 0%, #5a4028 100%); 
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,.5); 
  transform: rotate(-2deg); 
  animation: scn1-book 6s ease-in-out infinite;
}
.scn-meaning-of-the-passage .book-right {
  position: absolute; bottom: 28%; left: 45%; width: 30%; height: 18%; 
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%); 
  border-radius: 2px; box-shadow: -2px 2px 8px rgba(0,0,0,.5); 
  transform: rotate(2deg); 
  animation: scn1-book 6s ease-in-out infinite reverse;
}
.scn-meaning-of-the-passage .candle {
  position: absolute; bottom: 38%; left: 70%; width: 3%; height: 20%; 
  background: linear-gradient(180deg, #f5e0c0 0%, #d4b88a 100%); 
  border-radius: 3px; box-shadow: 0 0 10px rgba(255,200,100,.3);
}
.scn-meaning-of-the-passage .flame {
  position: absolute; bottom: 57%; left: 70.8%; width: 1.5%; height: 5%; 
  background: radial-gradient(ellipse at 50% 100%, #ffdd66 0%, #ff8822 40%, transparent 70%); 
  border-radius: 50%; 
  animation: scn1-flame 0.8s ease-in-out infinite;
}
.scn-meaning-of-the-passage .hand {
  position: absolute; bottom: 30%; left: 40%; width: 5%; height: 12%; 
  background: linear-gradient(180deg, #c8a880 0%, #8a6a4a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; 
  transform: rotate(10deg); 
  animation: scn1-hand 4s ease-in-out infinite;
}
.scn-meaning-of-the-passage .glow-ring {
  position: absolute; bottom: 38%; left: 68%; width: 8%; height: 8%; 
  border-radius: 50%; 
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: scn1-glow 2s ease-in-out infinite alternate;
}
@keyframes scn1-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes scn1-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } }
@keyframes scn1-flame { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } }
@keyframes scn1-hand { 0%,100% { transform: rotate(8deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 75% { transform: rotate(6deg) translateY(1px); } }
@keyframes scn1-glow { 0% { opacity: 0.3; transform: scale(0.9); } 100% { opacity: 0.7; transform: scale(1.1); } }

/* scene 2: rudiments-of-thought */
.scn-rudiments-of-thought {
  background: 
    linear-gradient(180deg, #1e1a1a 0%, #141010 50%, #0a0808 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e1e 0%, transparent 80%);
}
.scn-rudiments-of-thought .bg-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1410 0%, #0f0a08 100%);
}
.scn-rudiments-of-thought .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%; 
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); 
  border-radius: 6px 6px 0 0; 
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-rudiments-of-thought .lamp-body {
  position: absolute; bottom: 40%; left: 20%; width: 8%; height: 15%; 
  background: linear-gradient(180deg, #8a7050 0%, #5a4028 100%); 
  border-radius: 10% 10% 30% 30%; 
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-rudiments-of-thought .lamp-flame {
  position: absolute; bottom: 54%; left: 21.5%; width: 5%; height: 6%; 
  background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, #ffaa40 40%, transparent 70%); 
  border-radius: 50%; 
  animation: scn2-flame 0.7s ease-in-out infinite;
}
.scn-rudiments-of-thought .paper-left {
  position: absolute; bottom: 18%; left: 40%; width: 14%; height: 10%; 
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a888 100%); 
  transform: rotate(-5deg); 
  animation: scn2-paper 12s ease-in-out infinite;
}
.scn-rudiments-of-thought .paper-right {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 8%; 
  background: linear-gradient(135deg, #c8b898 0%, #a09070 100%); 
  transform: rotate(3deg); 
  animation: scn2-paper 14s ease-in-out infinite reverse;
}
.scn-rudiments-of-thought .quill {
  position: absolute; bottom: 25%; left: 52%; width: 2%; height: 16%; 
  background: linear-gradient(180deg, #f0e0c0 0%, #b09070 100%); 
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; 
  transform: rotate(-15deg); 
  animation: scn2-quill 3s ease-in-out infinite;
}
.scn-rudiments-of-thought .shadow-figure {
  position: absolute; bottom: 10%; right: 10%; width: 25%; height: 40%; 
  background: linear-gradient(180deg, rgba(20,15,12,0.8) 0%, rgba(0,0,0,0.6) 100%); 
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; 
  transform: scaleX(-1); 
  animation: scn2-shadow 8s ease-in-out infinite alternate;
}
@keyframes scn2-flame { 0%,100% { transform: scaleY(1) translateY(0) rotate(0deg); } 50% { transform: scaleY(1.3) translateY(-3px) rotate(2deg); } }
@keyframes scn2-paper { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes scn2-quill { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px) scale(1.02); } }
@keyframes scn2-shadow { 0% { opacity: 0.7; filter: blur(2px); } 50% { opacity: 0.9; filter: blur(4px); } 100% { opacity: 0.6; filter: blur(1px); } }

/* scene 3: method-of-socrates */
.scn-method-of-socrates {
  background: 
    linear-gradient(180deg, #1e1a1a 0%, #141010 50%, #0a0808 100%),
    radial-gradient(ellipse at 50% 20%, #2e1e1a 0%, transparent 70%);
}
.scn-method-of-socrates .bg-shadow {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1410 0%, #0f0a08 100%);
}
.scn-method-of-socrates .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%; 
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); 
  border-radius: 0 0 20% 20%;
}
.scn-method-of-socrates .chair-back {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 40%; 
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); 
  border-radius: 20% 20% 0 0; 
  box-shadow: inset 0 -5px 15px rgba(0,0,0,.5);
}
.scn-method-of-socrates .chair-seat {
  position: absolute; bottom: 10%; left: 8%; width: 24%; height: 12%; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); 
  border-radius: 10% 10% 40% 40%;
}
.scn-method-of-socrates .figure {
  position: absolute; bottom: 20%; left: 12%; width: 16%; height: 50%; 
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; 
  transform: rotate(-5deg); 
  animation: scn3-figure 6s ease-in-out infinite;
}
.scn-method-of-socrates .arm {
  position: absolute; bottom: 35%; left: 25%; width: 8%; height: 14%; 
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); 
  border-radius: 50% 10% 30% 30% / 60% 20% 40% 40%; 
  transform: rotate(-20deg); 
  animation: scn3-arm 4s ease-in-out infinite;
}
.scn-method-of-socrates .table {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 10%; 
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); 
  border-radius: 4px; 
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-method-of-socrates .scroll {
  position: absolute; bottom: 8%; left: 40%; width: 25%; height: 10%; 
  background: linear-gradient(135deg, #c8b898 0%, #a09070 100%); 
  border-radius: 60% 60% 10% 10% / 40% 40% 20% 20%; 
  animation: scn3-scroll 10s ease-in-out infinite;
}
.scn-method-of-socrates .steam {
  position: absolute; bottom: 20%; right: 30%; width: 6%; height: 8%; 
  background: radial-gradient(ellipse, rgba(255,255,255,0.15) 0%, transparent 70%); 
  filter: blur(3px); 
  animation: scn3-steam 5s ease-in-out infinite;
}
@keyframes scn3-figure { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes scn3-arm { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-6px); } }
@keyframes scn3-scroll { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(1deg) scaleX(1.02); } }
@keyframes scn3-steam { 0%,100% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.5; transform: translateY(-10px) scale(1.2); } }

/* scene 4: idea-of-good */
.scn-idea-of-good {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-idea-of-good .bg-hearth {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1410 0%, #0a0808 100%);
}
.scn-idea-of-good .fireplace {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 40%; 
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); 
  border-radius: 10% 10% 4% 4%; 
  box-shadow: inset 0 0 40px rgba(255,150,50,0.3);
}
.scn-idea-of-good .flames {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%; 
  background: 
    radial-gradient(ellipse at 30% 100%, #ffaa33 0%, transparent 50%),
    radial-gradient(ellipse at 70% 100%, #ff6600 0%, transparent 50%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; 
  animation: scn4-flames 1s ease-in-out infinite alternate;
}
.scn-idea-of-good .embers {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 4%; 
  background: radial-gradient(circle, #ff8800 0%, #cc4400 40%, transparent 70%); 
  border-radius: 50%; 
  animation: scn4-embers 3s ease-in-out infinite;
}
.scn-idea-of-good .hand {
  position: absolute; bottom: 38%; left: 42%; width: 6%; height: 12%; 
  background: linear-gradient(180deg, #c8a880 0%, #8a6a4a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(-10deg); 
  animation: scn4-hand 5s ease-in-out infinite;
}
.scn-idea-of-good .chair {
  position: absolute; bottom: 5%; right: 8%; width: 20%; height: 35%; 
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); 
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; 
  box-shadow: 0 -5px 15px rgba(0,0,0,.6);
}
.scn-idea-of-good .light-beam {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 50%; 
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, transparent 100%); 
  filter: blur(10px); 
  animation: scn4-beam 4s ease-in-out infinite alternate;
}
@keyframes scn4-flames { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-5px); } 100% { transform: scaleY(0.9) translateY(2px); } }
@keyframes scn4-embers { 0%,100% { opacity: 0.5; transform: translateY(0) scale(1); } 50% { opacity: 1; transform: translateY(-3px) scale(1.2); } }
@keyframes scn4-hand { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-4px); } }
@keyframes scn4-beam { 0% { opacity: 0.3; transform: scaleY(0.9); } 100% { opacity: 0.7; transform: scaleY(1.1); } }

.scn-companions-of-life {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 40%, #1a1208 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}

.scn-companions-of-life .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  animation: cl-wall 20s ease-in-out infinite alternate;
}

.scn-companions-of-life .bookshelf {
  position: absolute;
  left: 8%;
  right: 60%;
  top: 15%;
  bottom: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: cl-shelf 15s ease-in-out infinite alternate;
}

.scn-companions-of-life .desk {
  position: absolute;
  left: 25%;
  right: 15%;
  bottom: 10%;
  height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cl-desk 12s ease-in-out infinite alternate;
}

.scn-companions-of-life .lamp {
  position: absolute;
  left: 35%;
  bottom: 22%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #b08050 0%, #7a6030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px #c09050;
  animation: cl-lamp 3s ease-in-out infinite alternate;
}

.scn-companions-of-life .glow {
  position: absolute;
  left: 20%;
  right: 20%;
  bottom: 15%;
  height: 50%;
  background: radial-gradient(ellipse at 50% 60%, rgba(192,144,80,.25) 0%, transparent 70%);
  animation: cl-glow 7s ease-in-out infinite alternate;
}

.scn-companions-of-life .figure {
  position: absolute;
  left: 30%;
  bottom: 12%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-figure 6s ease-in-out infinite alternate;
}

.scn-companions-of-life .book {
  position: absolute;
  left: 38%;
  bottom: 16%;
  width: 8px;
  height: 12px;
  background: #8a7050;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(192,144,80,.3);
  animation: cl-book 8s ease-in-out infinite alternate;
}

.scn-companions-of-life .motes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 60%, rgba(255,220,160,.08) 0%, transparent 60%);
  animation: cl-motes 10s ease-in-out infinite;
}

@keyframes cl-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cl-shelf { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes cl-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes cl-lamp { 0% { box-shadow:0 0 15px 4px #b08050; opacity:.9; } 50% { box-shadow:0 0 30px 12px #d0a060; opacity:1; } 100% { box-shadow:0 0 18px 6px #b08050; opacity:.85; } }
@keyframes cl-glow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes cl-figure { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(4px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cl-book { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(8deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cl-motes { 0% { opacity:.4; transform:scale(1); } 50% { opacity:.7; transform:scale(1.02); } 100% { opacity:.5; transform:scale(1); } }

/* ---------- scene 2 ---------- */
.scn-know-limits {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 40%, #12121a 100%),
    radial-gradient(ellipse at 60% 50%, #3a3a4a 0%, transparent 60%);
}

.scn-know-limits .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 50%, #3a3a4a 100%);
  animation: kl-wall 25s ease-in-out infinite alternate;
}

.scn-know-limits .window {
  position: absolute;
  left: 10%;
  right: 60%;
  top: 10%;
  bottom: 50%;
  background: radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, #3a3a4a 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: kl-window 20s ease-in-out infinite alternate;
}

.scn-know-limits .desk {
  position: absolute;
  left: 20%;
  right: 20%;
  bottom: 8%;
  height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: kl-desk 14s ease-in-out infinite alternate;
}

.scn-know-limits .candle {
  position: absolute;
  left: 40%;
  bottom: 22%;
  width: 6px;
  height: 14px;
  background: #8a7a5a;
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #c0a060;
  animation: kl-candle 4s ease-in-out infinite alternate;
}

.scn-know-limits .candle-glow {
  position: absolute;
  left: 32%;
  right: 32%;
  bottom: 18%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(192,160,96,.15) 0%, transparent 70%);
  animation: kl-candle-glow 5s ease-in-out infinite alternate;
}

.scn-know-limits .hourglass {
  position: absolute;
  left: 55%;
  bottom: 12%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 30% 30%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: kl-hourglass 8s ease-in-out infinite alternate;
}

.scn-know-limits .pile-books {
  position: absolute;
  left: 10%;
  bottom: 8%;
  width: 30px;
  height: 25px;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 4px, #8a7a5a 4px, #8a7a5a 8px);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: kl-pile 18s ease-in-out infinite alternate;
}

.scn-know-limits .chair {
  position: absolute;
  left: 30%;
  bottom: 8%;
  width: 30px;
  height: 30px;
  background: #2a2a3a;
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: kl-chair 12s ease-in-out infinite alternate;
}

.scn-know-limits .shadow {
  position: absolute;
  left: 25%;
  right: 25%;
  bottom: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  opacity: .6;
  animation: kl-shadow 15s ease-in-out infinite alternate;
}

@keyframes kl-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes kl-window { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes kl-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes kl-candle { 0% { box-shadow:0 0 6px 1px #c0a060; opacity:.9; } 50% { box-shadow:0 0 14px 4px #d0b070; opacity:1; } 100% { box-shadow:0 0 8px 2px #c0a060; opacity:.85; } }
@keyframes kl-candle-glow { 0% { opacity:.5; } 50% { opacity:.75; } 100% { opacity:.6; } }
@keyframes kl-hourglass { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(0deg); } }
@keyframes kl-pile { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes kl-chair { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes kl-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.6; } }

/* ---------- scene 3 ---------- */
.scn-progress-of-nations {
  background:
    linear-gradient(180deg, #2e2e4e 0%, #1e1e3e 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 30%, #3e3e5e 0%, transparent 60%);
}

.scn-progress-of-nations .column-left {
  position: absolute;
  left: 5%;
  top: 5%;
  bottom: 10%;
  width: 6%;
  background: linear-gradient(90deg, #3e3e5e 0%, #2e2e4e 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: pn-column 20s ease-in-out infinite alternate;
}

.scn-progress-of-nations .column-right {
  position: absolute;
  right: 5%;
  top: 5%;
  bottom: 10%;
  width: 6%;
  background: linear-gradient(90deg, #2e2e4e 0%, #3e3e5e 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: pn-column 20s ease-in-out infinite alternate-reverse;
}

.scn-progress-of-nations .shelf {
  position: absolute;
  left: 15%;
  right: 15%;
  top: 30%;
  height: 4%;
  background: #4e4e6e;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: pn-shelf 18s ease-in-out infinite alternate;
}

.scn-progress-of-nations .scroll {
  position: absolute;
  left: 30%;
  top: 35%;
  width: 40%;
  height: 20%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: pn-scroll 14s ease-in-out infinite alternate;
}

.scn-progress-of-nations .bust {
  position: absolute;
  left: 40%;
  top: 15%;
  width: 20%;
  height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,.4);
  animation: pn-bust 12s ease-in-out infinite alternate;
}

.scn-progress-of-nations .map {
  position: absolute;
  left: 55%;
  top: 40%;
  width: 25%;
  height: 30%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: pn-map 16s ease-in-out infinite alternate;
}

.scn-progress-of-nations .globe {
  position: absolute;
  left: 15%;
  bottom: 15%;
  width: 15%;
  height: 30%;
  background: radial-gradient(circle at 40% 40%, #7a8a6a 0%, #4a5a3a 60%, #3a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pn-globe 20s ease-in-out infinite alternate;
}

.scn-progress-of-nations .shadow {
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 0;
  height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  opacity: .7;
  animation: pn-shadow 15s ease-in-out infinite alternate;
}

@keyframes pn-column { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } 100% { transform:scaleY(0.99); } }
@keyframes pn-shelf { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes pn-scroll { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(0deg); } }
@keyframes pn-bust { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(0deg); } }
@keyframes pn-map { 0% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.02); opacity:1; } 100% { transform:scale(0.98); opacity:.85; } }
@keyframes pn-globe { 0% { transform:rotate(0deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(0deg); } }
@keyframes pn-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }

/* ---------- scene 4 ---------- */
.scn-thucydides-view {
  background:
    linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 40%, #0a0a05 100%),
    radial-gradient(ellipse at 70% 40%, #3a3a2a 0%, transparent 60%);
}

.scn-thucydides-view .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #3a3a2a 0%, #2a2a1a 50%, #3a3a2a 100%);
  animation: tv-wall 22s ease-in-out infinite alternate;
}

.scn-thucydides-view .arch {
  position: absolute;
  left: 20%;
  right: 20%;
  top: 5%;
  bottom: 50%;
  background: radial-gradient(ellipse at 50% 0%, #4a4a3a 0%, #2a2a1a 70%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: tv-arch 25s ease-in-out infinite alternate;
}

.scn-thucydides-view .desk {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 8%;
  height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: tv-desk 14s ease-in-out infinite alternate;
}

.scn-thucydides-view .lamp {
  position: absolute;
  left: 45%;
  bottom: 25%;
  width: 24px;
  height: 32px;
  background: linear-gradient(180deg, #a08060 0%, #6a5030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 18px 6px #c09060;
  animation: tv-lamp 3s ease-in-out infinite alternate;
}

.scn-thucydides-view .scroll {
  position: absolute;
  left: 35%;
  bottom: 10%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: tv-scroll 10s ease-in-out infinite alternate;
}

.scn-thucydides-view .hourglass {
  position: absolute;
  left: 20%;
  bottom: 14%;
  width: 18px;
  height: 28px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: tv-hourglass 8s ease-in-out infinite alternate;
}

.scn-thucydides-view .globe {
  position: absolute;
  right: 18%;
  bottom: 12%;
  width: 14%;
  height: 28%;
  background: radial-gradient(circle at 40% 40%, #6a7a5a 0%, #4a5a3a 60%, #3a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: tv-globe 18s ease-in-out infinite alternate;
}

.scn-thucydides-view .shadow {
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 0;
  height: 18%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  opacity: .6;
  animation: tv-shadow 16s ease-in-out infinite alternate;
}

@keyframes tv-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tv-arch { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes tv-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes tv-lamp { 0% { box-shadow:0 0 12px 4px #c09060; opacity:.9; } 50% { box-shadow:0 0 24px 10px #d0a070; opacity:1; } 100% { box-shadow:0 0 16px 5px #c09060; opacity:.85; } }
@keyframes tv-scroll { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(0deg); } }
@keyframes tv-hourglass { 0% { transform:rotate(0deg); } 50% { transform:rotate(4deg); } 100% { transform:rotate(0deg); } }
@keyframes tv-globe { 0% { transform:rotate(0deg); } 50% { transform:rotate(8deg); } 100% { transform:rotate(0deg); } }
@keyframes tv-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.6; } }

/* Banishment of Poets */
.scn-banishment-of-poets { background: linear-gradient(180deg, #2c1e14 0%, #1a0f0a 100%), radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%); }
.scn-banishment-of-poets .walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 30%, #3a2a1a 100%); }
.scn-banishment-of-poets .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f06 100%); }
.scn-banishment-of-poets .door { position:absolute; bottom:25%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); animation: bop-door 12s ease-in-out infinite alternate; }
.scn-banishment-of-poets .figure-poet { position:absolute; bottom:28%; left:25%; width:20px; height:50px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bop-walk 6s ease-in-out infinite; }
.scn-banishment-of-poets .shadow { position:absolute; bottom:28%; left:24%; width:30px; height:10px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(3px); animation: bop-shadow 6s ease-in-out infinite; }
.scn-banishment-of-poets .lightbeam { position:absolute; top:10%; left:50%; width:120px; height:60%; background: linear-gradient(135deg, rgba(220,180,120,.15) 0%, transparent 100%); transform: skewX(-15deg); animation: bop-light 8s ease-in-out infinite alternate; }
.scn-banishment-of-poets .papers { position:absolute; bottom:30%; left:30%; width:12px; height:16px; background: #c8a87a; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: bop-paper 10s ease-in-out infinite; }
@keyframes bop-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-30deg); } 100% { transform: rotateY(0deg); } }
@keyframes bop-walk { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(24px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes bop-shadow { 0%,100% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(0.8); opacity:.3; } }
@keyframes bop-light { 0% { opacity:.3; transform: skewX(-15deg) translateX(-20px); } 100% { opacity:.6; transform: skewX(-15deg) translateX(20px); } }
@keyframes bop-paper { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(4px,-8px) rotate(10deg); } 50% { transform: translate(8px,0) rotate(0deg); } 75% { transform: translate(12px,-4px) rotate(-5deg); } }

/* Poets not Critics */
.scn-poets-not-critics { background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%), radial-gradient(ellipse at 50% 80%, #4a3520 0%, transparent 70%); }
.scn-poets-not-critics .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); }
.scn-poets-not-critics .desk { position:absolute; bottom:25%; left:35%; width:120px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pnc-desk 20s ease-in-out infinite alternate; }
.scn-poets-not-critics .lamp { position:absolute; bottom:40%; left:42%; width:10px; height:30px; background: #8a7a6a; border-radius: 4px; transform-origin: bottom center; animation: pnc-lamp 6s ease-in-out infinite alternate; }
.scn-poets-not-critics .lamp::after { content:''; position:absolute; top:-6px; left:-4px; width:18px; height:12px; background: radial-gradient(circle, #e8c880 0%, #c8a860 100%); box-shadow: 0 0 16px 4px #c8a860; }
.scn-poets-not-critics .socrates { position:absolute; bottom:28%; left:38%; width:22px; height:48px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pnc-socrates 8s ease-in-out infinite; }
.scn-poets-not-critics .poet { position:absolute; bottom:28%; left:52%; width:20px; height:46px; background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pnc-poet 10s ease-in-out infinite; }
.scn-poets-not-critics .scroll { position:absolute; bottom:32%; left:45%; width:18px; height:10px; background: #d4c4a0; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: pnc-scroll 14s ease-in-out infinite; }
.scn-poets-not-critics .chair { position:absolute; bottom:25%; left:50%; width:30px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
@keyframes pnc-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pnc-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes pnc-socrates { 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 pnc-poet { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-2px); } 50% { transform: translateX(4px) translateY(0); } 75% { transform: translateX(2px) translateY(-1px); } }
@keyframes pnc-scroll { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } }

/* Poets as Sophists */
.scn-poets-as-sophists { background: linear-gradient(180deg, #1f1410 0%, #120a08 100%), radial-gradient(ellipse at 50% 50%, #3a2518 0%, transparent 70%); }
.scn-poets-as-sophists .back-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2a1a12 0%, #3a2518 50%, #2a1a12 100%); }
.scn-poets-as-sophists .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a100a 0%, #0a0806 100%); }
.scn-poets-as-sophists .table { position:absolute; bottom:28%; left:25%; width:50%; height:20px; background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 6px 10px rgba(0,0,0,.6); }
.scn-poets-as-sophists .figure1 { position:absolute; bottom:30%; left:30%; width:22px; height:50px; background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pas-fig1 8s ease-in-out infinite; }
.scn-poets-as-sophists .figure2 { position:absolute; bottom:30%; left:45%; width:24px; height:52px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pas-fig2 10s ease-in-out infinite; }
.scn-poets-as-sophists .figure3 { position:absolute; bottom:30%; left:60%; width:20px; height:48px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pas-fig3 12s ease-in-out infinite; }
.scn-poets-as-sophists .chandelier { position:absolute; top:5%; left:50%; width:40px; height:30px; background: radial-gradient(circle, #e0c080 0%, #b09050 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #b09050; animation: pas-light 6s ease-in-out infinite alternate; }
.scn-poets-as-sophists .books { position:absolute; bottom:26%; left:28%; width:12px; height:18px; background: #7a6a5a; border-radius: 2px; box-shadow: 2px 0 0 #5a4a3a, 4px 0 0 #4a3a2a; animation: pas-books 22s ease-in-out infinite alternate; }
@keyframes pas-fig1 { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes pas-fig2 { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes pas-fig3 { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes pas-light { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(0.95); } }
@keyframes pas-books { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* Philosophy vs Poetry Strangeness */
.scn-philosophy-vs-poetry-strangeness { background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%), radial-gradient(ellipse at 50% 30%, #2a1f14 0%, transparent 70%); }
.scn-philosophy-vs-poetry-strangeness .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #2a1f14 0%, #1a1510 50%, #2a1f14 100%); }
.scn-philosophy-vs-poetry-strangeness .panel-left { position:absolute; top:10%; left:10%; width:35%; height:80%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-philosophy-vs-poetry-strangeness .panel-right { position:absolute; top:10%; right:10%; width:35%; height:80%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: pvs-panel 14s ease-in-out infinite alternate; }
.scn-philosophy-vs-poetry-strangeness .divider { position:absolute; top:10%; left:48%; width:4%; height:80%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; }
.scn-philosophy-vs-poetry-strangeness .philo-symbol { position:absolute; bottom:40%; left:22%; width:30px; height:30px; background: rgba(200,180,160,.3); border: 2px solid rgba(200,180,160,.6); border-radius: 50%; transform: rotate(45deg); animation: pvs-philo 20s linear infinite; }
.scn-philosophy-vs-poetry-strangeness .poetry-symbol { position:absolute; bottom:40%; right:22%; width:24px; height:24px; background: radial-gradient(circle, #c8a080 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: pvs-poetry 15s ease-in-out infinite alternate; }
.scn-philosophy-vs-poetry-strangeness .glow { position:absolute; top:50%; left:50%; width:200px; height:200px; background: radial-gradient(circle, rgba(240,210,160,.1) 0%, transparent 100%); transform: translate(-50%,-50%); animation: pvs-glow 8s ease-in-out infinite alternate; }
@keyframes pvs-panel { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pvs-philo { 0% { transform: rotate(45deg); } 100% { transform: rotate(405deg); } }
@keyframes pvs-poetry { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } 100% { transform: scale(1) translateY(0); } }
@keyframes pvs-glow { 0% { opacity:.2; } 100% { opacity:.4; } }

/* actor-as-degradation – dim interior, calm, stage / mask theme */
.scn-actor-as-degradation {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 40%, #1a1a24 100%),
              radial-gradient(ellipse at 50% 0%, #2e2e40 0%, transparent 60%);
}
.scn-actor-as-degradation .stage {
  position: absolute; inset: 45% 5% 0 5%;
  background: linear-gradient(0deg, #3a2e2e 0%, #2a2020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-actor-as-degradation .curtain-left,
.scn-actor-as-degradation .curtain-right {
  position: absolute; top: 10%; bottom: 30%;
  width: 25%; background: linear-gradient(135deg, #5a3630, #3d201c);
  border-radius: 20% 0 40% 0;
  animation: ad-curtain 12s ease-in-out infinite alternate;
}
.scn-actor-as-degradation .curtain-left {
  left: 0; border-radius: 0 40% 0 20%;
}
.scn-actor-as-degradation .curtain-right {
  right: 0;
}
.scn-actor-as-degradation .mask {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: linear-gradient(135deg, #c8b090, #a08060);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ad-mask 6s ease-in-out infinite;
}
.scn-actor-as-degradation .actor {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2020 0%, #0d0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ad-stage 4s ease-in-out infinite;
}
.scn-actor-as-degradation .spotlight {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,200,180,0.3) 0%, transparent 70%);
  opacity: 0.6;
  animation: ad-glow 8s ease-in-out infinite alternate;
}
.scn-actor-as-degradation .shadow-lower {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ad-fade 10s linear infinite alternate;
}
@keyframes ad-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes ad-mask {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ad-stage {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-40%) translateY(-2px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-60%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes ad-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ad-fade {
  0% { opacity: 0.8; }
  50% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* dramatic-vs-epic-poets – dim interior, two archways / columns */
.scn-dramatic-vs-epic-poets {
  background: linear-gradient(180deg, #1b1824 0%, #2a2534 50%, #1a1620 100%),
              radial-gradient(ellipse at 50% 100%, #3a2d40 0%, transparent 60%);
}
.scn-dramatic-vs-epic-poets .wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #2a2534 0px, #2a2534 2px, #261f30 2px, #261f30 4px);
  opacity: 0.2;
}
.scn-dramatic-vs-epic-poets .pillar-left,
.scn-dramatic-vs-epic-poets .pillar-right {
  position: absolute; top: 15%; bottom: 25%;
  width: 16px;
  background: linear-gradient(180deg, #6a5550, #3a2a28);
  border-radius: 4px;
}
.scn-dramatic-vs-epic-poets .pillar-left { left: 20%; }
.scn-dramatic-vs-epic-poets .pillar-right { right: 20%; }
.scn-dramatic-vs-epic-poets .tragic-mask {
  position: absolute; top: 25%; left: 24%;
  width: 30px; height: 36px;
  background: linear-gradient(135deg, #c0a888, #a08060);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: dp-mask 5s ease-in-out infinite alternate;
}
.scn-dramatic-vs-epic-poets .comic-mask {
  position: absolute; top: 25%; right: 24%;
  width: 28px; height: 32px;
  background: linear-gradient(135deg, #d0b898, #b89870);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dp-mask 5s ease-in-out infinite alternate-reverse;
}
.scn-dramatic-vs-epic-poets .scroll {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #c8b88a, #a89060);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: dp-scroll 7s ease-in-out infinite;
}
.scn-dramatic-vs-epic-poets .lyre {
  position: absolute; bottom: 30%; left: 10%;
  width: 20px; height: 40px;
  background: radial-gradient(circle, #b09060 10%, #705030 50%, #503020 100%);
  border-radius: 30% 30% 10% 10%;
  animation: dp-lyre 4s ease-in-out infinite;
}
.scn-dramatic-vs-epic-poets .olive-branch {
  position: absolute; bottom: 30%; right: 10%;
  width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #5a7040, #3a5020);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform: rotate(15deg);
  animation: dp-olive 9s ease-in-out infinite alternate;
}
@keyframes dp-mask {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes dp-scroll {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes dp-lyre {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes dp-olive {
  0% { opacity: 0.7; transform: rotate(12deg); }
  50% { opacity: 1; transform: rotate(18deg); }
  100% { opacity: 0.8; transform: rotate(14deg); }
}

/* new-objections-tenth-book – dim interior, painter's studio */
.scn-new-objections-tenth-book {
  background: linear-gradient(180deg, #1c1c28 0%, #282840 50%, #181828 100%),
              radial-gradient(ellipse at 30% 70%, #2a2a44 0%, transparent 60%);
}
.scn-new-objections-tenth-book .bedrock {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #2e2e3e, #1e1e2e);
  border-radius: 30% 30% 0 0;
}
.scn-new-objections-tenth-book .easel {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 70px;
  background: linear-gradient(180deg, #6a4a38, #38281a);
  border-radius: 2px;
}
.scn-new-objections-tenth-book .easel::after {
  content: '';
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 60px; height: 50px;
  background: linear-gradient(135deg, #3a2a2a, #2a1a1a);
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-new-objections-tenth-book .canvas {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 54px; height: 40px;
  background: linear-gradient(135deg, #5a5040, #4a3a28);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: no-canvas 10s ease-in-out infinite alternate;
}
.scn-new-objections-tenth-book .palette {
  position: absolute; bottom: 15%; left: 40%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #7a6a50, #5a4a30);
  border-radius: 40% 40% 20% 20%;
  animation: no-palette 6s ease-in-out infinite;
}
.scn-new-objections-tenth-book .model-statue {
  position: absolute; bottom: 20%; right: 20%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #b0a090, #6a5a4a);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: no-statue 12s ease-in-out infinite;
}
.scn-new-objections-tenth-book .painter-hand {
  position: absolute; bottom: 24%; left: 45%;
  width: 16px; height: 20px;
  background: linear-gradient(135deg, #c0a080, #a08060);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(20deg);
  animation: no-hand 3s ease-in-out infinite alternate;
}
.scn-new-objections-tenth-book .measuring-rule {
  position: absolute; bottom: 30%; left: 50%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a7040, #5a4020);
  transform: rotate(-30deg);
  animation: no-rule 8s ease-in-out infinite alternate;
}
@keyframes no-canvas {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.98); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.02); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
@keyframes no-palette {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes no-statue {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes no-hand {
  0% { transform: rotate(18deg) translateY(0); }
  100% { transform: rotate(22deg) translateY(-2px); }
}
@keyframes no-rule {
  0% { transform: rotate(-28deg); }
  50% { transform: rotate(-32deg); }
  100% { transform: rotate(-30deg); }
}

/* art-and-ideal – warm dim interior, blacksmith's shop */
.scn-art-and-ideal {
  background: linear-gradient(180deg, #2d2018 0%, #4a3520 40%, #1a1008 100%),
              radial-gradient(ellipse at 50% 60%, #8a5a30 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(160,80,30,0.15);
}
.scn-art-and-ideal .workshop-bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #3a281a 0%, #100804 100%);
  opacity: 0.6;
}
.scn-art-and-ideal .anvil {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a, #3a3028);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ai-anvil 8s ease-in-out infinite alternate;
}
.scn-art-and-ideal .forge-glow {
  position: absolute; bottom: 35%; left: 40%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffa040 0%, #cc7020 40%, #8a4a10 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,140,30,0.6), 0 0 60px 20px rgba(200,100,20,0.3);
  animation: ai-glow 3s ease-in-out infinite;
}
.scn-art-and-ideal .hammer {
  position: absolute; bottom: 28%; left: 48%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #a08060, #6a5030);
  transform-origin: 50% 100%;
  animation: ai-hammer 2s ease-in-out infinite;
}
.scn-art-and-ideal .hammer::after {
  content: '';
  position: absolute; top: -8px; left: -5px;
  width: 16px; height: 12px;
  background: linear-gradient(135deg, #b09070, #807060);
  border-radius: 30% 30% 10% 10%;
}
.scn-art-and-ideal .tongs {
  position: absolute; bottom: 22%; right: 38%;
  width: 25px; height: 20px;
  background: linear-gradient(135deg, #7a6a5a, #4a3a2a);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ai-tongs 4s ease-in-out infinite alternate;
}
.scn-art-and-ideal .blacksmith {
  position: absolute; bottom: 10%; left: 30%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0402 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-smith 5s ease-in-out infinite;
}
.scn-art-and-ideal .bench {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(0deg, #5a4030, #3a2818);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-art-and-ideal .sparks {
  position: absolute; top: 55%; left: 42%;
  width: 100px; height: 30px;
  background: repeating-radial-gradient(circle at 0% 0%, #ffb040 0%, transparent 5%) 0 0 / 20px 20px;
  opacity: 0.6;
  animation: ai-sparks 1.5s linear infinite;
}
@keyframes ai-anvil {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes ai-glow {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes ai-hammer {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-30deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ai-tongs {
  0% { clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
  100% { clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); }
}
@keyframes ai-smith {
  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(0deg); }
}
@keyframes ai-sparks {
  0% { background-position: 0 0; }
  100% { background-position: 20px 20px; }
}

.scn-campanella-style {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 80%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 60%);
}
.scn-campanella-style .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: cp1-wall 12s ease-in-out infinite alternate;
}
.scn-campanella-style .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-campanella-style .desk {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-campanella-style .candle {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-campanella-style .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 70%);
  border-radius: 50%;
  transform: translate(-50%, -40%);
  animation: cp1-glow 4s ease-in-out infinite alternate;
}
.scn-campanella-style .figure {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp1-figure 6s ease-in-out infinite;
}
.scn-campanella-style .window {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #3a4a5e 0%, #1a2a3e 100%);
  border: 2px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
}
.scn-campanella-style .bars {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 50px;
  background: repeating-linear-gradient(90deg, #2a2a3e 0px, #2a2a3e 2px, transparent 2px, transparent 10px),
              repeating-linear-gradient(0deg, #2a2a3e 0px, #2a2a3e 2px, transparent 2px, transparent 18px);
  animation: cp1-bars 8s ease-in-out infinite alternate;
}
@keyframes cp1-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cp1-glow { 0% { opacity: 0.7; transform: translate(-50%, -40%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -40%) scale(1.15); } 100% { opacity: 0.8; transform: translate(-50%, -40%) scale(0.95); } }
@keyframes cp1-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(5px) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes cp1-bars { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.9; } }

.scn-campanella-misery {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #14141e 80%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-campanella-misery .cell-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
}
.scn-campanella-misery .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #14141e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 0 0;
}
.scn-campanella-misery .wall-grate {
  position: absolute; top: 30%; left: 10%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #0a0a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(255,255,255,0.1);
  animation: cp2-grate 10s ease-in-out infinite alternate;
}
.scn-campanella-misery .chain-left {
  position: absolute; top: 35%; left: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 3px;
  transform-origin: top center;
  animation: cp2-chain-l 4s ease-in-out infinite alternate;
}
.scn-campanella-misery .chain-right {
  position: absolute; top: 35%; right: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 3px;
  transform-origin: top center;
  animation: cp2-chain-r 4s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-campanella-misery .figure-crouch {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.9);
  animation: cp2-crouch 6s ease-in-out infinite;
}
.scn-campanella-misery .shadow-pool {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
}
@keyframes cp2-grate { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes cp2-chain-l { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes cp2-chain-r { 0% { transform: rotate(0deg); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes cp2-crouch { 0% { transform: translateX(-50%) scale(0.9) rotate(-2deg); } 30% { transform: translateX(-50%) scale(0.85) rotate(0deg); } 60% { transform: translateX(-50%) scale(0.9) rotate(2deg); } 100% { transform: translateX(-50%) scale(0.9) rotate(-2deg); } }

.scn-campanella-public-feeling {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 40%, #2a1a0e 80%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-campanella-public-feeling .room-hearth {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%);
}
.scn-campanella-public-feeling .hearth {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0;
}
.scn-campanella-public-feeling .fire {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #ff8844 0%, #cc4400 40%, #662200 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cp3-fire 3s ease-in-out infinite alternate;
}
.scn-campanella-public-feeling .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: cp3-fig-l 5s ease-in-out infinite;
}
.scn-campanella-public-feeling .figure-right {
  position: absolute; bottom: 22%; right: 22%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cp3-fig-r 5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-campanella-public-feeling .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-campanella-public-feeling .cup {
  position: absolute; bottom: 20%; left: 48%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
}
.scn-campanella-public-feeling .light-shaft {
  position: absolute; top: 0; left: 40%; right: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,180,80,0.15) 0%, transparent 100%);
  border-radius: 10%;
  animation: cp3-shaft 8s ease-in-out infinite alternate;
}
@keyframes cp3-fire { 0% { transform: scale(1) translateY(0); opacity: 0.9; } 50% { transform: scale(1.1) translateY(-3px); opacity: 1; } 100% { transform: scale(0.95) translateY(2px); opacity: 0.85; } }
@keyframes cp3-fig-l { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-4deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-6deg) translateY(2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cp3-fig-r { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(4deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(6deg) translateY(2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cp3-shaft { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-eliot-monarchy-of-man {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 40%, #2a1a0e 80%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-eliot-monarchy-of-man .tower-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%);
  border-radius: 0 0 30% 30%;
}
.scn-eliot-monarchy-of-man .desk-close {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(10deg);
}
.scn-eliot-monarchy-of-man .paper {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cp4-paper 8s ease-in-out infinite alternate;
}
.scn-eliot-monarchy-of-man .quill {
  position: absolute; bottom: 32%; left: 55%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: cp4-quill 3s ease-in-out infinite alternate;
}
.scn-eliot-monarchy-of-man .candle-tall {
  position: absolute; bottom: 30%; left: 25%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
}
.scn-eliot-monarchy-of-man .glow-warm {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0) 70%);
  border-radius: 50%;
  transform: translate(-50%, -60%);
  animation: cp4-glow 4s ease-in-out infinite alternate;
}
.scn-eliot-monarchy-of-man .hand-writing {
  position: absolute; bottom: 30%; left: 38%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: cp4-hand 3s ease-in-out infinite alternate;
}
.scn-eliot-monarchy-of-man .bottle-ink {
  position: absolute; bottom: 24%; left: 22%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes cp4-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cp4-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(22deg); } }
@keyframes cp4-glow { 0% { opacity: 0.6; transform: translate(-50%, -60%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -60%) scale(1.1); } 100% { opacity: 0.7; transform: translate(-50%, -60%) scale(0.95); } }
@keyframes cp4-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }

.scn-allegorical-interpretation {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%), radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-allegorical-interpretation .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  animation: ai-wall 12s ease-in-out infinite alternate;
}
.scn-allegorical-interpretation .window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, #2a2018 70%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ai-window 8s ease-in-out infinite;
}
.scn-allegorical-interpretation .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-allegorical-interpretation .book {
  position: absolute; bottom: 35%; left: 30%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: ai-book 18s ease-in-out infinite;
}
.scn-allegorical-interpretation .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 10%; height: 25%;
  background: radial-gradient(circle at 50% 20%, #c06030 0%, #8a4020 50%, #2a2018 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #a05030;
  animation: ai-lamp 3s ease-in-out infinite alternate;
}
.scn-allegorical-interpretation .figure {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ai-figure 6s ease-in-out infinite;
}
.scn-allegorical-interpretation .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #3a2a1a 0%, transparent 100%);
  filter: blur(4px); animation: ai-curtain 10s ease-in-out infinite alternate;
}
@keyframes ai-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes ai-window {
  0%, 100% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes ai-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes ai-lamp {
  0% { box-shadow: 0 0 30px 8px #a05030; opacity: 0.8; }
  50% { box-shadow: 0 0 50px 16px #c06030; opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #a05030; opacity: 0.9; }
}
@keyframes ai-figure {
  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 ai-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}

.scn-lie-in-the-soul {
  background: linear-gradient(180deg, #1a1814 0%, #0e0c0a 100%), radial-gradient(ellipse at 50% 20%, #2a2218 0%, transparent 80%);
}
.scn-lie-in-the-soul .bg-depth {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1a16 0%, #0a0806 100%);
  animation: lis-bg 20s ease-in-out infinite alternate;
}
.scn-lie-in-the-soul .pedestal {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30%; height: 15%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-lie-in-the-soul .bust {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2218 0%, #0e0c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lis-bust 5s ease-in-out infinite;
}
.scn-lie-in-the-soul .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(180,160,120,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: lis-beam 8s ease-in-out infinite alternate;
}
.scn-lie-in-the-soul .particles {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 50% 30%, rgba(200,180,140,0.2) 0%, transparent 50%);
  animation: lis-particles 15s linear infinite;
}
.scn-lie-in-the-soul .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: lis-shadow 6s ease-in-out infinite alternate;
}
@keyframes lis-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
@keyframes lis-bust {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes lis-beam {
  0% { opacity: 0.2; transform: scaleY(0.9); }
  50% { opacity: 0.4; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes lis-particles {
  0% { background-position: 0 0; }
  100% { background-position: 0 -100px; }
}
@keyframes lis-shadow {
  0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}

.scn-preparation-for-attack-on-homer {
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-preparation-for-attack-on-homer .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2218 0%, #0e0c0a 100%);
  animation: pah-bg 10s ease-in-out infinite alternate;
}
.scn-preparation-for-attack-on-homer .desk {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-preparation-for-attack-on-homer .scroll {
  position: absolute; bottom: 35%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px; transform: rotate(-3deg);
  animation: pah-scroll 20s ease-in-out infinite;
}
.scn-preparation-for-attack-on-homer .inkwell {
  position: absolute; bottom: 45%; left: 60%; width: 8%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #2a2018 0%, #0a0806 100%);
  border-radius: 30% 30% 40% 40%;
  animation: pah-inkwell 4s ease-in-out infinite alternate;
}
.scn-preparation-for-attack-on-homer .pen {
  position: absolute; bottom: 50%; left: 55%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1410 100%);
  border-radius: 1px; transform: rotate(20deg);
  transform-origin: bottom center;
  animation: pah-pen 3s ease-in-out infinite;
}
.scn-preparation-for-attack-on-homer .candle {
  position: absolute; bottom: 40%; left: 70%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #a06030;
  animation: pah-candle 2s ease-in-out infinite alternate;
}
.scn-preparation-for-attack-on-homer .figure-arm {
  position: absolute; bottom: 25%; left: 10%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pah-arm 5s ease-in-out infinite;
}
@keyframes pah-bg {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes pah-scroll {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes pah-inkwell {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.95; }
}
@keyframes pah-pen {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(22deg); }
}
@keyframes pah-candle {
  0% { box-shadow: 0 0 15px 4px #a06030; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #c07040; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #a06030; opacity: 0.9; }
}
@keyframes pah-arm {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-banish-fear-of-death {
  background: linear-gradient(180deg, #0a0a08 0%, #1a1410 50%, #0e0c0a 100%), radial-gradient(ellipse at 50% 80%, #2a1a10 0%, transparent 70%);
}
.scn-banish-fear-of-death .bg-abyss {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0a08 0%, #000 100%);
  animation: bfd-bg 8s ease-in-out infinite alternate;
}
.scn-banish-fear-of-death .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.8);
}
.scn-banish-fear-of-death .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: bfd-door 6s ease-in-out infinite;
}
.scn-banish-fear-of-death .candle {
  position: absolute; bottom: 25%; left: 40%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #a06030;
  animation: bfd-candle 1.5s ease-in-out infinite alternate;
}
.scn-banish-fear-of-death .figure {
  position: absolute; bottom: 15%; left: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bfd-figure 4s ease-in-out infinite;
}
.scn-banish-fear-of-death .shadow-creature {
  position: absolute; bottom: 20%; right: 20%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(8px);
  animation: bfd-shadow 3s ease-in-out infinite alternate;
}
.scn-banish-fear-of-death .sparks {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(circle at 50% 50%, rgba(200,100,40,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: bfd-sparks 2s linear infinite;
}
@keyframes bfd-bg {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; }
}
@keyframes bfd-door {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(0.98); }
}
@keyframes bfd-candle {
  0% { box-shadow: 0 0 20px 6px #a06030; opacity: 0.7; }
  50% { box-shadow: 0 0 40px 14px #c07040; opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #a06030; opacity: 0.8; }
}
@keyframes bfd-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes bfd-shadow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes bfd-sparks {
  0% { background-position: 0 0; opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { background-position: -50px 50px; opacity: 0.1; }
}

.scn-thesis-of-glaucon-and-adeimantus {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1f1410 40%, #0d0906 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-thesis-of-glaucon-and-adeimantus .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f1a 70%, transparent 100%);
  animation: tga-wall 30s ease-in-out infinite alternate;
}
.scn-thesis-of-glaucon-and-adeimantus .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0906 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-thesis-of-glaucon-and-adeimantus .table {
  position:absolute; bottom:25%; left:35%; width:30%; height:6%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: tga-table 8s ease-in-out infinite alternate;
}
.scn-thesis-of-glaucon-and-adeimantus .lamp {
  position:absolute; bottom:30%; left:38%; width:4%; height:10%;
  background: radial-gradient(ellipse at 50% 20%, #ffcc66 0%, #a06030 60%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,204,102,0.4), 0 0 60px 20px rgba(160,96,48,0.2);
  animation: tga-lamp 4s ease-in-out infinite alternate;
}
.scn-thesis-of-glaucon-and-adeimantus .figure-left {
  position:absolute; bottom:22%; left:30%; width:8%; height:20%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tga-figure-left 6s ease-in-out infinite;
}
.scn-thesis-of-glaucon-and-adeimantus .figure-right {
  position:absolute; bottom:22%; right:30%; width:8%; height:20%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tga-figure-right 6s ease-in-out infinite 2s;
}
.scn-thesis-of-glaucon-and-adeimantus .scroll {
  position:absolute; bottom:26%; left:50%; width:12%; height:4%;
  background: linear-gradient(90deg, #c8a060 0%, #e8c080 50%, #b88840 100%);
  border-radius: 40%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tga-scroll 12s ease-in-out infinite alternate;
}

@keyframes tga-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tga-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tga-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,204,102,0.3), 0 0 40px 10px rgba(160,96,48,0.15); opacity:0.9 } 50% { box-shadow: 0 0 40px 12px rgba(255,204,102,0.5), 0 0 80px 24px rgba(160,96,48,0.3); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(255,204,102,0.35), 0 0 50px 14px rgba(160,96,48,0.2); opacity:0.9 } }
@keyframes tga-figure-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tga-figure-right { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tga-scroll { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(-3px) } 100% { transform: rotate(-12deg) translateX(3px) } }

.scn-theories-of-right {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1f1410 40%, #120c08 100%),
    radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-theories-of-right .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f1a 80%, transparent 100%);
  animation: tr-wall 40s ease-in-out infinite alternate;
}
.scn-theories-of-right .desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border-radius: 6px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: tr-desk 12s ease-in-out infinite alternate;
}
.scn-theories-of-right .chair {
  position:absolute; bottom:18%; left:15%; width:12%; height:20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 40% 40% 0 0;
  transform: rotate(2deg);
  animation: tr-chair 10s ease-in-out infinite;
}
.scn-theories-of-right .book {
  position:absolute; bottom:24%; left:40%; width:14%; height:5%;
  background: linear-gradient(90deg, #b88840 0%, #d8a860 50%, #a87830 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: tr-book 8s ease-in-out infinite alternate;
}
.scn-theories-of-right .hand {
  position:absolute; bottom:26%; left:44%; width:6%; height:15%;
  background: linear-gradient(180deg, #3a2218 0%, #1f1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: tr-hand 5s ease-in-out infinite;
}
.scn-theories-of-right .shelf-bg {
  position:absolute; bottom:70%; left:10%; width:80%; height:4%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tr-shelf 20s ease-in-out infinite;
}
.scn-theories-of-right .shelf-fg {
  position:absolute; bottom:65%; left:10%; width:80%; height:4%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tr-shelf 20s ease-in-out infinite reverse;
}
.scn-theories-of-right .lamp {
  position:absolute; bottom:30%; right:30%; width:4%; height:12%;
  background: radial-gradient(ellipse at 50% 10%, #ffcc66 0%, #a06030 60%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(255,204,102,0.4), 0 0 80px 20px rgba(160,96,48,0.2);
  animation: tr-lamp 3s ease-in-out infinite alternate;
}

@keyframes tr-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tr-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tr-chair { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes tr-book { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(2px) } 100% { transform: rotate(-6deg) translateX(-2px) } }
@keyframes tr-hand { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-5px) rotate(-5deg) } 60% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tr-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tr-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,204,102,0.3), 0 0 40px 10px rgba(160,96,48,0.15); opacity:0.9 } 50% { box-shadow: 0 0 50px 15px rgba(255,204,102,0.5), 0 0 100px 30px rgba(160,96,48,0.3); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(255,204,102,0.35), 0 0 50px 14px rgba(160,96,48,0.2); opacity:0.9 } }

.scn-socrates-asked-to-prove {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a100c 40%, #0a0604 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-socrates-asked-to-prove .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0906 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-socrates-asked-to-prove .pillar {
  position:absolute; bottom:30%; left:50%; width:8%; height:70%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5540 50%, #3a2a1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
  animation: sap-pillar 20s ease-in-out infinite alternate;
}
.scn-socrates-asked-to-prove .figure-socrates {
  position:absolute; bottom:22%; left:35%; width:10%; height:25%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sap-socrates 7s ease-in-out infinite;
}
.scn-socrates-asked-to-prove .figure-adeimantus {
  position:absolute; bottom:22%; left:52%; width:9%; height:22%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sap-adeimantus 7s ease-in-out infinite 1.5s;
}
.scn-socrates-asked-to-prove .figure-glaucon {
  position:absolute; bottom:22%; left:62%; width:9%; height:22%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sap-adeimantus 7s ease-in-out infinite 3s;
}
.scn-socrates-asked-to-prove .light-beam {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, rgba(255,200,100,0.05) 50%, transparent 100%);
  filter: blur(8px);
  animation: sap-beam 4s ease-in-out infinite alternate;
}
.scn-socrates-asked-to-prove .shadow {
  position:absolute; bottom:22%; left:30%; width:40%; height:5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: sap-shadow 12s ease-in-out infinite alternate;
}

@keyframes sap-pillar { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sap-socrates { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes sap-adeimantus { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sap-beam { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes sap-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

.scn-glaucon-picture-misery {
  background:
    linear-gradient(180deg, #120e0a 0%, #0a0705 40%, #050302 100%),
    radial-gradient(ellipse at 30% 50%, #1a1410 0%, transparent 70%);
}
.scn-glaucon-picture-misery .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0906 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-glaucon-picture-misery .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 80%, transparent 100%);
  animation: gpm-wall 30s ease-in-out infinite alternate;
}
.scn-glaucon-picture-misery .figure {
  position:absolute; bottom:22%; left:40%; width:14%; height:30%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  transform-origin: bottom center;
  animation: gpm-figure 8s ease-in-out infinite;
}
.scn-glaucon-picture-misery .chain1 {
  position:absolute; bottom:40%; left:38%; width:6%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20%;
  transform: rotate(20deg);
  transform-origin: top left;
  animation: gpm-chain1 6s ease-in-out infinite;
}
.scn-glaucon-picture-misery .chain2 {
  position:absolute; bottom:38%; left:56%; width:6%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
  transform-origin: top right;
  animation: gpm-chain2 6s ease-in-out infinite 2s;
}
.scn-glaucon-picture-misery .light {
  position:absolute; top:15%; left:30%; width:8%; height:8%;
  background: radial-gradient(circle, #c08040 0%, transparent 70%);
  box-shadow: 0 0 60px 20px rgba(192,128,64,0.3), 0 0 120px 40px rgba(192,128,64,0.1);
  animation: gpm-light 3s ease-in-out infinite alternate;
}
.scn-glaucon-picture-misery .shadow {
  position:absolute; bottom:20%; left:30%; width:40%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: gpm-shadow 15s ease-in-out infinite alternate;
}

@keyframes gpm-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gpm-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(0) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes gpm-chain1 { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes gpm-chain2 { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-20deg) } }
@keyframes gpm-light { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes gpm-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* Scene: hope-for-higher-culture */
.scn-hope-for-higher-culture {
  background:
    linear-gradient(135deg, #1a1210 0%, #2d1e1a 40%, #3a2822 100%),
    radial-gradient(ellipse at 70% 100%, #4a2a1a 0%, transparent 70%);
}
.scn-hope-for-higher-culture .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); animation: hope-fade 16s ease-in-out infinite alternate;
}
.scn-hope-for-higher-culture .desk {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.6); transform: perspective(400px) rotateX(10deg); animation: hope-settle 12s ease-in-out infinite;
}
.scn-hope-for-higher-culture .book {
  position: absolute; bottom: 16%; left: 35%; width: 12%; height: 14%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: hope-book 20s ease-in-out infinite;
}
.scn-hope-for-higher-culture .candle {
  position: absolute; bottom: 20%; left: 48%; width: 3%; height: 10%; background: linear-gradient(180deg, #c8a86a 0%, #8a6a42 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 10px rgba(200,168,106,.3); transform: rotate(-2deg);
}
.scn-hope-for-higher-culture .flame {
  position: absolute; bottom: 29%; left: 49%; width: 2%; height: 4%; background: radial-gradient(circle, #ffcc66 0%, #e09030 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 24px 8px #ffaa44, 0 0 60px 20px rgba(255,170,68,.3); animation: hope-flame 1.5s ease-in-out infinite alternate;
}
.scn-hope-for-higher-culture .figure {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 28%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hope-figure 8s ease-in-out infinite;
}
.scn-hope-for-higher-culture .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #0a1a2a 0%, #0d0a10 100%); border: 4px solid #2a1e1a; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: hope-window 30s linear infinite;
}
.scn-hope-for-higher-culture .moon {
  position: absolute; top: 8%; right: 16%; width: 6%; height: 10%; background: radial-gradient(circle, #d4c8a8 0%, #b8a080 100%); border-radius: 50%; box-shadow: 0 0 40px 16px rgba(180,160,128,.2); animation: hope-moon 50s linear infinite;
}
@keyframes hope-fade { 0% { opacity: 1 } 50% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes hope-settle { 0%,100% { transform: translateY(0) rotateX(10deg) } 50% { transform: translateY(-2px) rotateX(10deg) } }
@keyframes hope-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes hope-flame { 0% { transform: scaleY(1) scaleX(1); filter: brightness(1) } 50% { transform: scaleY(1.15) scaleX(0.9); filter: brightness(1.2) } 100% { transform: scaleY(0.95) scaleX(1.05); filter: brightness(0.9) } }
@keyframes hope-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg) } }
@keyframes hope-window { 0% { opacity: 0.8; filter: brightness(1) } 50% { opacity: 1; filter: brightness(1.1) } 100% { opacity: 0.8; filter: brightness(1) } }
@keyframes hope-moon { 0% { transform: translateX(0) } 100% { transform: translateX(-10px) } }

/* Scene: barbarous-relic */
.scn-barbarous-relic {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2220 40%, #1e1816 100%),
    radial-gradient(ellipse at 50% 90%, #2a1a10 0%, transparent 70%);
}
.scn-barbarous-relic .alcove {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 60%; background: linear-gradient(180deg, #2a201c 0%, #1a1410 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 60px rgba(0,0,0,.5);
}
.scn-barbarous-relic .pedestal {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.scn-barbarous-relic .relic {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 18%; background: linear-gradient(135deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(3deg); box-shadow: 0 0 30px 8px rgba(90,70,50,.2); animation: barb-relic 12s ease-in-out infinite alternate;
}
.scn-barbarous-relic .vines {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 10%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%; filter: blur(2px); animation: barb-vines 20s ease-in-out infinite alternate;
}
.scn-barbarous-relic .figure-right {
  position: absolute; bottom: 8%; right: 14%; width: 10%; height: 34%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: barb-figure 8s ease-in-out infinite;
}
.scn-barbarous-relic .dust {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(180,160,140,0.08) 0%, transparent 70%); animation: barb-dust 40s linear infinite;
}
.scn-barbarous-relic .candle-barb {
  position: absolute; bottom: 18%; left: 28%; width: 2%; height: 8%; background: linear-gradient(180deg, #c8a86a 0%, #8a6a42 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 12px rgba(200,168,106,.5); animation: barb-candle 6s ease-in-out infinite alternate;
}
@keyframes barb-relic { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(4deg) scale(1.02) } 100% { transform: rotate(2deg) scale(0.98) } }
@keyframes barb-vines { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(1px) scaleX(0.95) } }
@keyframes barb-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(3px) translateY(-3px) rotate(1deg) } }
@keyframes barb-dust { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes barb-candle { 0% { filter: brightness(0.9); box-shadow: 0 0 8px rgba(200,168,106,.3) } 50% { filter: brightness(1.2); box-shadow: 0 0 20px rgba(200,168,106,.8) } 100% { filter: brightness(1); box-shadow: 0 0 14px rgba(200,168,106,.5) } }

/* Scene: imaginable-common-property */
.scn-imaginable-common-property {
  background:
    linear-gradient(180deg, #1a1816 0%, #2a2220 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 80%, #2a1e14 0%, transparent 70%);
}
.scn-imaginable-common-property .table-top {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 8px; box-shadow: 0 8px 30px rgba(0,0,0,.5); transform: perspective(300px) rotateX(8deg); animation: imag-table 18s ease-in-out infinite;
}
.scn-imaginable-common-property .globe {
  position: absolute; bottom: 18%; left: 35%; width: 14%; height: 22%; background: radial-gradient(circle at 40% 40%, #5a6a5a 0%, #2a3a2a 100%); border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,.3), inset 0 0 30px rgba(0,0,0,.4); animation: imag-globe 30s linear infinite;
}
.scn-imaginable-common-property .arm {
  position: absolute; bottom: 10%; left: 30%; width: 4%; height: 20%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 40%; transform-origin: bottom; transform: rotate(-20deg); animation: imag-arm 10s ease-in-out infinite alternate;
}
.scn-imaginable-common-property .torso {
  position: absolute; bottom: 10%; left: 22%; width: 8%; height: 28%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: imag-torso 12s ease-in-out infinite;
}
.scn-imaginable-common-property .head {
  position: absolute; bottom: 35%; left: 23%; width: 6%; height: 9%; background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,.3); animation: imag-head 6s ease-in-out infinite alternate;
}
.scn-imaginable-common-property .thought-a {
  position: absolute; top: 20%; left: 40%; width: 10%; height: 10%; background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: imag-thought 25s linear infinite;
}
.scn-imaginable-common-property .thought-b {
  position: absolute; top: 15%; left: 50%; width: 8%; height: 8%; background: radial-gradient(circle, rgba(180,160,140,0.2) 0%, transparent 60%); border-radius: 50%; filter: blur(3px); animation: imag-thought 30s linear infinite reverse;
}
.scn-imaginable-common-property .thought-c {
  position: absolute; top: 25%; left: 55%; width: 6%; height: 6%; background: radial-gradient(circle, rgba(160,140,120,0.15) 0%, transparent 60%); border-radius: 50%; filter: blur(2px); animation: imag-thought 35s linear infinite;
}
@keyframes imag-table { 0%,100% { transform: translateY(0) rotateX(8deg) } 50% { transform: translateY(-2px) rotateX(8deg) } }
@keyframes imag-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes imag-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-22deg) } }
@keyframes imag-torso { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes imag-head { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes imag-thought { 0% { transform: translateX(0) scale(1); opacity: 0.3 } 50% { transform: translateX(10px) scale(1.2); opacity: 0.6 } 100% { transform: translateX(0) scale(1); opacity: 0.3 } }

/* Scene: aristotles-objections-again */
.scn-aristotles-objections-again {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #1e1816 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a14 0%, transparent 70%);
}
.scn-aristotles-objections-again .pillar-l {
  position: absolute; bottom: 0; left: 8%; width: 8%; height: 80%; background: linear-gradient(90deg, #3a322a 0%, #4a3e32 40%, #3a322a 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,.4); transform: perspective(500px) rotateY(2deg);
}
.scn-aristotles-objections-again .pillar-r {
  position: absolute; bottom: 0; right: 8%; width: 8%; height: 80%; background: linear-gradient(90deg, #3a322a 0%, #4a3e32 40%, #3a322a 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,.4); transform: perspective(500px) rotateY(-2deg);
}
.scn-aristotles-objections-again .scroll {
  position: absolute; bottom: 25%; left: 30%; width: 16%; height: 20%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 4px; transform: rotate(-8deg); box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: aris-scroll 20s ease-in-out infinite;
}
.scn-aristotles-objections-again .scroll-back {
  position: absolute; bottom: 22%; left: 34%; width: 14%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(5deg); box-shadow: 0 6px 16px rgba(0,0,0,.4); animation: aris-scroll-back 25s ease-in-out infinite;
}
.scn-aristotles-objections-again .bust {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(2deg); box-shadow: 0 0 20px rgba(0,0,0,.3); animation: aris-bust 14s ease-in-out infinite alternate;
}
.scn-aristotles-objections-again .base {
  position: absolute; bottom: 12%; left: 42%; width: 16%; height: 12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-aristotles-objections-again .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); border-radius: 50%; filter: blur(8px); animation: aris-shadow 18s ease-in-out infinite;
}
.scn-aristotles-objections-again .glow-aris {
  position: absolute; bottom: 38%; left: 46%; width: 8%; height: 8%; background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: aris-glow 8s ease-in-out infinite alternate;
}
@keyframes aris-scroll { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-3px) } }
@keyframes aris-scroll-back { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } }
@keyframes aris-bust { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(1deg) scale(0.98) } }
@keyframes aris-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes aris-glow { 0% { opacity: 0.3; filter: blur(6px) } 50% { opacity: 0.7; filter: blur(10px) } 100% { opacity: 0.4; filter: blur(6px) } }

/* Scene: myth-of-er-return */
.scn-myth-of-er-return {
  background: linear-gradient(180deg, #3a4a6a 0%, #7a8a9a 30%, #a8b8c8 60%, #f0d8b0 100%),
              radial-gradient(ellipse at 50% 0%, #e8c898 0%, transparent 60%);
}
.scn-myth-of-er-return .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a3a5a 0%, #6a8a9a 40%, #d0b888 80%, #f0d8b0 100%); animation: sky-er1 30s ease-in-out infinite alternate; }
.scn-myth-of-er-return .hills-return { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: hills-er1 20s ease-in-out infinite; }
.scn-myth-of-er-return .figure-er { position:absolute; bottom:32%; left:48%; 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: figure-er1 4s ease-in-out infinite; }
.scn-myth-of-er-return .shooting-star { position:absolute; top:20%; right:10%; width:60px; height:2px; background: linear-gradient(90deg, #f0e8c0 0%, transparent 100%); border-radius:50%; filter: blur(1px); animation: star-er1 8s linear infinite; }
.scn-myth-of-er-return .lightning-flash { position:absolute; top:15%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%); clip-path: polygon(10% 0%, 20% 40%, 0% 40%, 40% 60%, 20% 100%, 50% 70%, 40% 30%, 70% 10%); opacity:0.3; animation: flash-er1 6s ease-in-out infinite; }
.scn-myth-of-er-return .clouds-dawn { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.3) 0%, transparent 70%); filter: blur(8px); animation: cloud-er1 45s linear infinite; }
.scn-myth-of-er-return .sunrise-glow { position:absolute; bottom:50%; left:25%; width:120px; height:120px; background: radial-gradient(circle, #f0c880 0%, transparent 70%); animation: glow-er1 12s ease-in-out infinite alternate; }
.scn-myth-of-er-return .ground-return { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); }
@keyframes sky-er1 { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hills-er1 { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes figure-er1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes star-er1 { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translateX(-80vw) translateY(20px) scale(0.5); opacity:0 } }
@keyframes flash-er1 { 0% { opacity:0 } 10% { opacity:0.5 } 20% { opacity:0 } 30% { opacity:0.3 } 40% { opacity:0 } 100% { opacity:0 } }
@keyframes cloud-er1 { 0% { transform: translateX(-20%) } 50% { transform: translateX(10%) } 100% { transform: translateX(-20%) } }
@keyframes glow-er1 { 0% { transform: scale(0.8); opacity:0.5 } 50% { transform: scale(1.1); opacity:0.8 } 100% { transform: scale(0.9); opacity:0.6 } }

/* Scene: myth-of-er-salvation */
.scn-myth-of-er-salvation {
  background: linear-gradient(180deg, #c87030 0%, #e8a850 30%, #f0d080 60%, #f8e8a0 100%),
              radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 70%);
}
.scn-myth-of-er-salvation .sky-salvation { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b86030 0%, #e8a050 40%, #f0d080 100%); animation: sky-er2 15s ease-in-out infinite alternate; }
.scn-myth-of-er-salvation .river { position:absolute; bottom:20%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #b88840 0%, #a07030 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: river-er2 10s ease-in-out infinite; }
.scn-myth-of-er-salvation .bank-left { position:absolute; bottom:20%; left:0; width:20%; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 0 80% 0 0 / 0 20% 0 0; }
.scn-myth-of-er-salvation .bank-right { position:absolute; bottom:20%; right:0; width:20%; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 80% 0 0 0 / 20% 0 0 0; }
.scn-myth-of-er-salvation .boat-salvation { position:absolute; bottom:30%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 0 0 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: boat-er2 6s ease-in-out infinite; }
.scn-myth-of-er-salvation .figure-salvation { position:absolute; bottom:33%; left:40%; width:16px; height:36px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: figure-er2 4s ease-in-out infinite; }
.scn-myth-of-er-salvation .sun-salvation { position:absolute; top:5%; left:15%; width:80px; height:80px; background: radial-gradient(circle, #fff0c0 0%, #f0c880 50%, transparent 70%); animation: sun-er2 20s ease-in-out infinite alternate; }
.scn-myth-of-er-salvation .reflection { position:absolute; bottom:20%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, rgba(240,200,120,0.4) 0%, transparent 100%); filter: blur(4px); animation: reflect-er2 12s ease-in-out infinite; }
@keyframes sky-er2 { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes river-er2 { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(0) } }
@keyframes boat-er2 { 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 figure-er2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(0.95) } 100% { transform: translateX(20px) scaleY(1) } }
@keyframes sun-er2 { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(-5px) } 100% { transform: scale(0.95) translateY(2px) } }
@keyframes reflect-er2 { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.05) } 100% { opacity:0.4; transform: scaleX(0.95) } }

/* Scene: tenth-book-divisions */
.scn-tenth-book-divisions {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-tenth-book-divisions .wall-divisions { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-tenth-book-divisions .floor-divisions { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); }
.scn-tenth-book-divisions .table-divisions { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-tenth-book-divisions .lamp-divisions { position:absolute; bottom:48%; left:45%; width:8px; height:12px; background: #8a7050; border-radius: 50% 50% 0 0; }
.scn-tenth-book-divisions .lamp-glow { position:absolute; bottom:44%; left:42%; width:24px; height:24px; background: radial-gradient(circle, #d09850 0%, #b08030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #b08030, 0 0 60px 15px rgba(192,128,48,0.3); animation: glow-tb 3s ease-in-out infinite alternate; }
.scn-tenth-book-divisions .scroll-divisions { position:absolute; bottom:33%; left:35%; width:60px; height:8px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 2px; transform: rotate(-10deg); animation: scroll-tb 10s ease-in-out infinite; }
.scn-tenth-book-divisions .figure-divisions { position:absolute; bottom:25%; left:20%; width:24px; height:50px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: figure-tb 5s ease-in-out infinite; }
.scn-tenth-book-divisions .shadow-divisions { position:absolute; bottom:20%; left:15%; width:40px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: shadow-tb 5s ease-in-out infinite; }
@keyframes glow-tb { 0% { box-shadow: 0 0 20px 4px #b08030, 0 0 40px 10px rgba(192,128,48,0.2); opacity:0.8 } 50% { box-shadow: 0 0 35px 10px #d09850, 0 0 60px 18px rgba(208,152,80,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #b08030, 0 0 45px 12px rgba(192,128,48,0.25); opacity:0.9 } }
@keyframes scroll-tb { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes figure-tb { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes shadow-tb { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene: plato-and-poets */
.scn-plato-and-poets {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-plato-and-poets .wall-poets { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%; }
.scn-plato-and-poets .floor-poets { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); }
.scn-plato-and-poets .figure-plato { position:absolute; bottom:20%; left:25%; width:20px; height:48px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plato-pp 6s ease-in-out infinite; }
.scn-plato-and-poets .figure-poet { position:absolute; bottom:20%; right:30%; width:18px; height:44px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: poet-pp 6s ease-in-out infinite reverse; }
.scn-plato-and-poets .vision-arch { position:absolute; top:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,200,100,0.2) 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(3px); animation: vision-pp 15s ease-in-out infinite alternate; }
.scn-plato-and-poets .vision-glow { position:absolute; top:12%; left:35%; width:30%; height:20%; background: radial-gradient(circle, rgba(255,220,140,0.4) 0%, transparent 70%); border-radius: 50%; animation: glow-vis-pp 8s ease-in-out infinite; }
.scn-plato-and-poets .lamp-poets { position:absolute; bottom:40%; left:45%; width:6px; height:10px; background: #8a7050; border-radius: 50% 50% 0 0; }
.scn-plato-and-poets .lamp-glow-poets { position:absolute; bottom:36%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #b08030 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #806020, 0 0 40px 10px rgba(128,96,32,0.3); animation: glow-lamp-pp 4s ease-in-out infinite alternate; }
@keyframes plato-pp { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes poet-pp { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes vision-pp { 0% { opacity:0.3; transform: scaleY(0.8) } 50% { opacity:0.6; transform: scaleY(1.1) } 100% { opacity:0.4; transform: scaleY(0.9) } }
@keyframes glow-vis-pp { 0% { opacity:0.2; transform: scale(0.9) } 50% { opacity:0.5; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }
@keyframes glow-lamp-pp { 0% { box-shadow: 0 0 15px 4px #806020, 0 0 30px 8px rgba(128,96,32,0.2); opacity:0.7 } 50% { box-shadow: 0 0 25px 8px #b08030, 0 0 50px 15px rgba(176,128,48,0.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #806020, 0 0 35px 10px rgba(128,96,32,0.25); opacity:0.8 } }

/* Scene: posterity-misapprehends (calm, dim interior) */
.scn-posterity-misapprehends { background: linear-gradient(180deg, #2a241c 0%, #1e1914 50%, #15100c 100%), radial-gradient(ellipse at 50% 80%, #3a3024 0%, transparent 60%); }
.scn-posterity-misapprehends .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3024 0%, #1e1914 100%); }
.scn-posterity-misapprehends .shelf { position:absolute; bottom:40%; left:5%; right:5%; height:6px; background: linear-gradient(90deg, #4a3830 0%, #5a4840 50%, #4a3830 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-posterity-misapprehends .book { position:absolute; bottom:42%; width:12px; height:28px; border-radius:2px; };
.scn-posterity-misapprehends .book-a { left:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); animation: pm-book 8s ease-in-out infinite; }
.scn-posterity-misapprehends .book-b { left:20%; width:16px; height:24px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%); animation: pm-book 10s ease-in-out infinite reverse; }
.scn-posterity-misapprehends .book-c { left:30%; width:14px; height:30px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); animation: pm-book 6s ease-in-out infinite; }
.scn-posterity-misapprehends .lamp { position:absolute; bottom:35%; left:70%; width:10px; height:24px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:10% 10% 20% 20%; transform:rotate(-5deg); }
.scn-posterity-misapprehends .lamp::before { content:''; position:absolute; top:-8px; left:-4px; width:18px; height:12px; background: radial-gradient(circle, #e0b060 0%, #c09040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(192,144,64,.4); animation: pm-glow 4s ease-in-out infinite alternate; }
.scn-posterity-misapprehends .figure { position:absolute; bottom:22%; left:50%; width:20px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #2a221c 0%, #14100c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pm-figure 12s ease-in-out infinite; }
.scn-posterity-misapprehends .desk { position:absolute; bottom:18%; left:40%; right:20%; height:6px; background: linear-gradient(90deg, #4a3a30 0%, #5a4a3a 50%, #4a3a30 100%); border-radius: 30% 30% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-posterity-misapprehends .glow { position:absolute; bottom:30%; left:60%; width:60px; height:60px; background: radial-gradient(circle, rgba(192,144,64,.15) 0%, transparent 70%); animation: pm-glow 4s ease-in-out infinite alternate; }
@keyframes pm-glow { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.7; transform:scale(.95); } }
@keyframes pm-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pm-book { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }

/* Scene: crude-generalization (calm, dim interior with globe and unity) */
.scn-crude-generalization { background: linear-gradient(180deg, #1e1a16 0%, #15120e 40%, #0e0c0a 100%), radial-gradient(ellipse at 50% 60%, #2a221c 0%, transparent 70%); }
.scn-crude-generalization .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a241e 0%, #1a1612 100%); }
.scn-crude-generalization .pedestal { position:absolute; bottom:25%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20%; }
.scn-crude-generalization .globe { position:absolute; bottom:50%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle at 40% 40%, #6a7a6a 0%, #3a4a3a 60%, #1a2a1a 100%); border-radius:50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,.6); animation: cg-globe 18s ease-in-out infinite alternate; }
.scn-crude-generalization .globe::before { content:''; position:absolute; inset:15%; background: radial-gradient(circle at 60% 30%, #8a9a8a 0%, transparent 70%); border-radius:50%; }
.scn-crude-generalization .light { position:absolute; top:20%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 70%); box-shadow: 0 0 40px 20px rgba(192,160,96,.3); animation: cg-light 6s ease-in-out infinite alternate; }
.scn-crude-generalization .figure { position:absolute; bottom:20%; left:35%; width:18px; height:32px; background: linear-gradient(180deg, #2a221c 0%, #14100c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-figure 10s ease-in-out infinite; }
.scn-crude-generalization .scroll { position:absolute; bottom:28%; left:60%; width:30px; height:10px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:30% 30% 10% 10% / 90% 90% 10% 10%; transform:rotate(10deg); animation: cg-scroll 8s ease-in-out infinite alternate; }
.scn-crude-generalization .shadow { position:absolute; bottom:18%; left:30%; right:30%; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: cg-shadow 6s ease-in-out infinite alternate; }
@keyframes cg-globe { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes cg-light { 0% { opacity:.6; transform: translateX(-50%) scale(.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.7; transform: translateX(-50%) scale(.95); } }
@keyframes cg-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cg-scroll { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } 100% { transform: rotate(12deg) translateX(0); } }
@keyframes cg-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(1); } }

/* Scene: earlier-greater-ideas (warm, dim interior with torch and tablets) */
.scn-earlier-greater-ideas { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 60%); }
.scn-earlier-greater-ideas .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); }
.scn-earlier-greater-ideas .torch { position:absolute; bottom:35%; left:20%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius:10% 10% 30% 30%; transform:rotate(5deg); }
.scn-earlier-greater-ideas .torch::before { content:''; position:absolute; top:-14px; left:-6px; width:20px; height:18px; background: radial-gradient(circle, #ffd080 0%, #e0a040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(224,160,64,.5); animation: egi-flame 2s ease-in-out infinite alternate; }
.scn-earlier-greater-ideas .torch::after { content:''; position:absolute; top:-8px; left:2px; width:8px; height:12px; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius:50%; animation: egi-flame 1.5s ease-in-out infinite alternate-reverse; }
.scn-earlier-greater-ideas .tablet { position:absolute; bottom:40%; left:45%; width:16px; height:22px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:8% 8% 12% 12%; transform:rotate(-8deg); box-shadow: 1px 1px 4px rgba(0,0,0,.4); }
.scn-earlier-greater-ideas .scroll-open { position:absolute; bottom:40%; left:65%; width:40px; height:14px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:10% 10% 20% 20% / 80% 80% 20% 20%; transform:rotate(3deg); animation: egi-scroll 12s ease-in-out infinite; }
.scn-earlier-greater-ideas .figure { position:absolute; bottom:22%; right:30%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: egi-figure 8s ease-in-out infinite; }
.scn-earlier-greater-ideas .glow-warm { position:absolute; bottom:30%; left:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(224,160,64,.2) 0%, transparent 70%); animation: egi-glow 5s ease-in-out infinite alternate; }
.scn-earlier-greater-ideas .star { position:absolute; top:10%; left:80%; width:4px; height:4px; background:#f0e0c0; border-radius:50%; box-shadow: 0 0 8px 4px rgba(240,224,192,.6); animation: egi-twinkle 4s ease-in-out infinite; }
.scn-earlier-greater-ideas .dust { position:absolute; top:20%; left:40%; width:40px; height:4px; background: radial-gradient(ellipse, rgba(240,224,192,.3) 0%, transparent 100%); filter: blur(2px); animation: egi-dust 15s linear infinite; }
@keyframes egi-flame { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.15) rotate(0deg); } 100% { transform: scaleY(1) rotate(5deg); } }
@keyframes egi-scroll { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(6deg) translateX(0); } }
@keyframes egi-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes egi-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.08); } 100% { opacity:.6; transform: scale(.95); } }
@keyframes egi-twinkle { 0% { opacity:.4; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:.4; transform: scale(1); } }
@keyframes egi-dust { 0% { transform: translateX(0); opacity:0; } 20% { opacity:.6; } 80% { opacity:.6; } 100% { transform: translateX(-40px); opacity:0; } }

/* Scene: intermediate-axioms (calm, dim interior with stairs and pillars) */
.scn-intermediate-axioms { background: linear-gradient(180deg, #1e1814 0%, #14100c 50%, #0c0806 100%), radial-gradient(ellipse at 50% 40%, #2a221c 0%, transparent 60%); }
.scn-intermediate-axioms .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2e24 0%, #1e1610 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-intermediate-axioms .stairs { position:absolute; bottom:30%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 2% 2%; clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 70% 15%, 70% 40%, 40% 55%, 40% 80%, 0% 95%); animation: ia-stairs 20s ease-in-out infinite alternate; }
.scn-intermediate-axioms .pillar { position:absolute; bottom:25%; width:14px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; }
.scn-intermediate-axioms .pillar-left { left:15%; }
.scn-intermediate-axioms .pillar-right { right:15%; }
.scn-intermediate-axioms .figure { position:absolute; bottom:30%; left:50%; width:18px; height:34px; transform:translateX(-50%); background: linear-gradient(180deg, #2a221c 0%, #14100c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ia-figure 14s ease-in-out infinite; }
.scn-intermediate-axioms .ladder { position:absolute; bottom:20%; left:70%; width:4px; height:50px; background: #6a5a4a; transform:rotate(15deg); border-radius:10%; }
.scn-intermediate-axioms .ladder::before { content:''; position:absolute; left:-4px; bottom:10px; width:12px; height:3px; background:#6a5a4a; }
.scn-intermediate-axioms .ladder::after { content:''; position:absolute; left:-4px; bottom:25px; width:12px; height:3px; background:#6a5a4a; }
.scn-intermediate-axioms .book-stack { position:absolute; bottom:35%; left:70%; width:16px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: ia-stack 10s ease-in-out infinite; }
.scn-intermediate-axioms .light-beam { position:absolute; top:10%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, rgba(224,200,160,.08) 0%, transparent 100%); transform: skewX(-10deg); animation: ia-beam 6s ease-in-out infinite alternate; }
@keyframes ia-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ia-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ia-stack { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes ia-beam { 0% { opacity:.2; transform: skewX(-10deg) scaleX(1); } 50% { opacity:.5; transform: skewX(-8deg) scaleX(1.2); } 100% { opacity:.2; transform: skewX(-12deg) scaleX(1); } }

.scn-socratic-method-retained {
  background: linear-gradient(180deg, #2b2a3a 0%, #1e1d2b 50%, #15141e 100%), radial-gradient(ellipse at 50% 30%, #1e1d2b 0%, transparent 70%);
}
.scn-socratic-method-retained .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1d2b 0%, transparent 60%);
}
.scn-socratic-method-retained .wall-left {
  position: absolute; left: 0; top: 0; width: 35%; height: 100%; background: linear-gradient(90deg, #2b2a3a 0%, #1e1d2b 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: smr-wall-l 18s ease-in-out infinite alternate;
}
.scn-socratic-method-retained .wall-right {
  position: absolute; right: 0; top: 0; width: 35%; height: 100%; background: linear-gradient(90deg, #1e1d2b 0%, #2b2a3a 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); animation: smr-wall-r 20s ease-in-out infinite alternate;
}
.scn-socratic-method-retained .table {
  position: absolute; bottom: 20%; left: 50%; width: 110px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: smr-table 8s ease-in-out infinite alternate;
}
.scn-socratic-method-retained .lamp-glow {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 20px; background: radial-gradient(circle, #f0c068 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 16px #c08040, 0 0 80px 30px rgba(192,128,64,0.3); animation: smr-lamp 3s ease-in-out infinite alternate;
}
.scn-socratic-method-retained .figure-left {
  position: absolute; bottom: 22%; left: 32%; width: 22px; height: 44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smr-fig-l 6s ease-in-out infinite;
}
.scn-socratic-method-retained .figure-right {
  position: absolute; bottom: 22%; right: 32%; width: 24px; height: 46px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smr-fig-r 7s ease-in-out infinite;
}
.scn-socratic-method-retained .scroll {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 10px; transform: translateX(-50%); background: linear-gradient(180deg, #ab8a5a 0%, #7a6a3a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: smr-scroll 5s ease-in-out infinite alternate;
}
@keyframes smr-wall-l { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes smr-wall-r { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes smr-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes smr-lamp { 0% { box-shadow: 0 0 30px 12px #c08040, 0 0 60px 20px rgba(192,128,64,0.25); opacity: 0.9; } 50% { box-shadow: 0 0 50px 20px #f0c068, 0 0 100px 35px rgba(240,192,104,0.4); opacity: 1; } 100% { box-shadow: 0 0 35px 14px #c08040, 0 0 70px 25px rgba(192,128,64,0.3); opacity: 0.95; } }
@keyframes smr-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(8px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0); } }
@keyframes smr-fig-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 60% { transform: translateX(-6px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-9px) translateY(0) rotate(0); } }
@keyframes smr-scroll { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.05); } 100% { transform: translateX(-50%) scaleX(1); } }

.scn-immortality-of-soul { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #1e1e3a 100%), radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 70%); }
.scn-immortality-of-soul .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 50%); }
.scn-immortality-of-soul .pillar { position: absolute; left: 50%; bottom: 15%; width: 20px; height: 75%; transform: translateX(-50%); background: linear-gradient(90deg, #4a4a6a 0%, #3a3a5a 50%, #4a4a6a 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.4); animation: ims-pillar 20s ease-in-out infinite alternate; }
.scn-immortality-of-soul .window { position: absolute; top: 18%; left: 35%; width: 40px; height: 60px; background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 100%); border-radius: 6px; box-shadow: inset 0 0 16px rgba(255,255,255,0.05); animation: ims-window 15s ease-in-out infinite alternate; }
.scn-immortality-of-soul .light-ray { position: absolute; top: 18%; left: 38%; width: 6px; height: 140px; background: linear-gradient(180deg, rgba(200,200,255,0.4) 0%, transparent 100%); border-radius: 2px; transform: rotate(10deg); transform-origin: top; filter: blur(2px); animation: ims-ray 8s ease-in-out infinite alternate; }
.scn-immortality-of-soul .soul-orb { position: absolute; top: 28%; left: 50%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(200,220,255,0.6) 0%, rgba(150,180,255,0.2) 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 32px 10px rgba(150,180,255,0.5); animation: ims-soul 12s ease-in-out infinite; }
.scn-immortality-of-soul .socrates-fig { position: absolute; bottom: 20%; left: 45%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ims-fig 5s ease-in-out infinite alternate; }
.scn-immortality-of-soul .scroll-open { position: absolute; bottom: 22%; left: 55%; width: 50px; height: 12px; background: linear-gradient(180deg, #ab8a5a 0%, #7a6a3a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: scaleX(1.2); animation: ims-scroll 10s ease-in-out infinite alternate; }
@keyframes ims-pillar { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ims-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ims-ray { 0% { opacity: 0.3; transform: rotate(8deg); } 50% { opacity: 0.7; transform: rotate(12deg); } 100% { opacity: 0.4; transform: rotate(10deg); } }
@keyframes ims-soul { 0% { transform: translateY(0) scale(1) rotate(0deg); } 30% { transform: translateY(-8px) scale(1.1) rotate(10deg); } 60% { transform: translateY(-4px) scale(0.9) rotate(-5deg); } 100% { transform: translateY(0) scale(1) rotate(0deg); } }
@keyframes ims-fig { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ims-scroll { 0% { transform: scaleX(1.2) scaleY(1); } 50% { transform: scaleX(1.3) scaleY(1.02); } 100% { transform: scaleX(1.2) scaleY(1); } }

.scn-use-of-images { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 40% 35%, #3a2a1a 0%, transparent 80%); }
.scn-use-of-images .cave-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%), radial-gradient(ellipse at 30% 40%, #2a2a2a 0%, transparent 60%); animation: uoi-wall 25s ease-in-out infinite alternate; }
.scn-use-of-images .fire { position: absolute; bottom: 30%; left: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #f0c068 0%, #c08040 40%, #8a6020 70%, transparent 100%); box-shadow: 0 0 60px 25px #c08040, 0 0 100px 40px rgba(192,128,64,0.3); border-radius: 50%; animation: uoi-fire 3s ease-in-out infinite alternate; }
.scn-use-of-images .shadow-fig { position: absolute; bottom: 28%; right: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.8; transform: scaleX(-1); filter: blur(1px); animation: uoi-shadow 7s ease-in-out infinite; }
.scn-use-of-images .human-fig { position: absolute; bottom: 22%; left: 35%; width: 22px; height: 44px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uoi-human 6s ease-in-out infinite; }
.scn-use-of-images .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-use-of-images .sparkle-b { position: absolute; top: 25%; left: 45%; width: 6px; height: 6px; background: radial-gradient(circle, #fff 0%, transparent 100%); border-radius: 50%; animation: uoi-sparkle 4s ease-in-out infinite alternate, uoi-drift 20s linear infinite; }
.scn-use-of-images .sparkle-c { position: absolute; top: 35%; right: 20%; width: 4px; height: 4px; background: radial-gradient(circle, #fff 0%, transparent 100%); border-radius: 50%; animation: uoi-sparkle 5s ease-in-out infinite alternate-reverse, uoi-drift 25s linear infinite reverse; }
@keyframes uoi-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes uoi-fire { 0% { transform: scale(1); box-shadow: 0 0 50px 20px #c08040, 0 0 90px 35px rgba(192,128,64,0.25); } 50% { transform: scale(1.15); box-shadow: 0 0 70px 30px #e0a050, 0 0 120px 50px rgba(224,160,80,0.35); } 100% { transform: scale(0.95); box-shadow: 0 0 55px 22px #c08040, 0 0 100px 40px rgba(192,128,64,0.3); } }
@keyframes uoi-shadow { 0% { transform: scaleX(-1) translateX(0) scale(1); } 50% { transform: scaleX(-1) translateX(-10px) scale(1.1); } 100% { transform: scaleX(-1) translateX(0) scale(1); } }
@keyframes uoi-human { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-4px) rotate(3deg); } 70% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes uoi-sparkle { 0% { opacity: 0.2; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.3; transform: scale(0.8); } }
@keyframes uoi-drift { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(15px) translateY(-5px); } 50% { transform: translateX(30px) translateY(0); } 75% { transform: translateX(15px) translateY(5px); } 100% { transform: translateX(0) translateY(0); } }

.scn-socrates-not-of-this-world { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-socrates-not-of-this-world .bg-ethereal { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74,58,42,0.4) 0%, transparent 70%), radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 60%); }
.scn-socrates-not-of-this-world .halo-glow { position: absolute; top: 10%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, rgba(255,180,80,0.1) 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,180,80,0.3); animation: sntw-halo 5s ease-in-out infinite alternate; }
.scn-socrates-not-of-this-world .socrates-fig { position: absolute; bottom: 22%; left: 50%; width: 28px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(255,200,120,0.3); animation: sntw-fig 8s ease-in-out infinite alternate; }
.scn-socrates-not-of-this-world .light-beam-l { position: absolute; top: 12%; left: 35%; width: 4px; height: 200px; background: linear-gradient(180deg, rgba(255,200,120,0.3) 0%, transparent 100%); transform: rotate(-15deg); transform-origin: top; filter: blur(2px); animation: sntw-beam 7s ease-in-out infinite alternate; }
.scn-socrates-not-of-this-world .light-beam-r { position: absolute; top: 12%; right: 35%; width: 4px; height: 200px; background: linear-gradient(180deg, rgba(255,200,120,0.3) 0%, transparent 100%); transform: rotate(15deg); transform-origin: top; filter: blur(2px); animation: sntw-beam 7s ease-in-out infinite alternate-reverse; }
.scn-socrates-not-of-this-world .floating-particles { position: absolute; top: 30%; left: 10%; width: 5px; height: 5px; background: radial-gradient(circle, rgba(255,200,120,0.8) 0%, transparent 100%); border-radius: 50%; box-shadow: 15px 20px 0 2px rgba(255,200,120,0.5), -10px 40px 0 1px rgba(255,200,120,0.3), 30px 50px 0 1px rgba(255,200,120,0.4), -20px 10px 0 1px rgba(255,200,120,0.6); animation: sntw-particle 12s linear infinite; }
@keyframes sntw-halo { 0% { transform: translateX(-50%) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.9; } 100% { transform: translateX(-50%) scale(1.05); opacity: 0.7; } }
@keyframes sntw-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 40% { transform: translateX(-50%) translateY(-5px) rotate(2deg); } 80% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes sntw-beam { 0% { opacity: 0.2; transform: rotate(-12deg); } 50% { opacity: 0.7; transform: rotate(-18deg); } 100% { opacity: 0.3; transform: rotate(-15deg); } }
@keyframes sntw-particle { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-15px) translateX(5px); } 50% { transform: translateY(-30px) translateX(-5px); } 75% { transform: translateY(-45px) translateX(10px); } 100% { transform: translateY(-60px) translateX(0); } }

.scn-difference-of-fact {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 80%);
}
.scn-difference-of-fact .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: df-bg 15s ease-in-out infinite alternate;
}
.scn-difference-of-fact .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-difference-of-fact .steps {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 90% 60%, 10% 60%);
  animation: df-steps 8s ease-in-out infinite;
}
.scn-difference-of-fact .figure {
  position: absolute; bottom: 34%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-figure 6s ease-in-out infinite;
}
.scn-difference-of-fact .light-beam {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: df-beam 10s ease-in-out infinite alternate;
}
.scn-difference-of-fact .dust {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,200,100,0.1) 0%, transparent 50%),
              radial-gradient(circle at 60% 30%, rgba(255,200,100,0.08) 0%, transparent 50%),
              radial-gradient(circle at 80% 50%, rgba(255,200,100,0.05) 0%, transparent 50%);
  animation: df-dust 20s linear infinite;
}
@keyframes df-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes df-steps { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes df-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0deg) } 75% { transform: translateX(-3px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes df-beam { 0% { opacity:0.6; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.05) } 100% { opacity:0.5; transform: scaleY(0.95) } }
@keyframes df-dust { 0% { transform: translate(0,0) } 25% { transform: translate(5px,-5px) } 50% { transform: translate(-3px,3px) } 75% { transform: translate(2px,-2px) } 100% { transform: translate(0,0) } }

.scn-hidden-evils {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #050510 100%),
              radial-gradient(ellipse at 60% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-hidden-evils .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #151525 50%, #0a0a1a 100%);
  animation: he-bg 20s ease-in-out infinite alternate;
}
.scn-hidden-evils .curtain {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 30%, #2a1a1a 70%, #1a1a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  filter: blur(2px);
  animation: he-curtain 12s ease-in-out infinite alternate;
}
.scn-hidden-evils .shadow-figure {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-figure 8s ease-in-out infinite;
}
.scn-hidden-evils .door {
  position: absolute; bottom: 10%; left: 55%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: he-door 15s ease-in-out infinite;
}
.scn-hidden-evils .lamp-glow {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,128,64,0.3);
  animation: he-lamp 4s ease-in-out infinite alternate;
}
.scn-hidden-evils .keyhole {
  position: absolute; bottom: 30%; left: 62%; width: 8px; height: 14px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 4px rgba(255,200,100,0.2);
  animation: he-keyhole 6s ease-in-out infinite;
}
@keyframes he-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes he-curtain { 0% { transform: translateX(-5px) scaleY(1.02) } 50% { transform: translateX(5px) scaleY(0.98) } 100% { transform: translateX(-3px) scaleY(1.01) } }
@keyframes he-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 60% { transform: translateX(-2px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes he-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes he-lamp { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.9) } }
@keyframes he-keyhole { 0% { box-shadow: inset 0 0 4px rgba(255,200,100,0.2); } 50% { box-shadow: inset 0 0 8px rgba(255,200,100,0.5); } 100% { box-shadow: inset 0 0 4px rgba(255,200,100,0.2); } }

.scn-strength-and-health-not-enough {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 80%);
}
.scn-strength-and-health-not-enough .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: sh-bg 18s ease-in-out infinite alternate;
}
.scn-strength-and-health-not-enough .chart-trunk {
  position: absolute; bottom: 40%; left: 48%; width: 5px; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: sh-trunk 12s ease-in-out infinite;
}
.scn-strength-and-health-not-enough .chart-branch-l {
  position: absolute; bottom: 55%; left: 40%; width: 40%; height: 3px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  transform-origin: right center;
  animation: sh-branch-l 15s ease-in-out infinite;
}
.scn-strength-and-health-not-enough .chart-branch-r {
  position: absolute; bottom: 65%; right: 40%; width: 40%; height: 3px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 100%);
  transform-origin: left center;
  animation: sh-branch-r 15s ease-in-out infinite 2s;
}
.scn-strength-and-health-not-enough .child {
  position: absolute; bottom: 25%; left: 48%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-child 5s ease-in-out infinite;
}
.scn-strength-and-health-not-enough .candle {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: sh-candle 4s ease-in-out infinite alternate;
}
@keyframes sh-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes sh-trunk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sh-branch-l { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.03) } 100% { transform: rotate(-12deg) scaleX(0.97) } }
@keyframes sh-branch-r { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.03) } 100% { transform: rotate(12deg) scaleX(0.97) } }
@keyframes sh-child { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes sh-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.8 } }

.scn-inheritance-of-disease {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #050510 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 80%);
}
.scn-inheritance-of-disease .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #151525 50%, #0a0a1a 100%);
  animation: id-bg 22s ease-in-out infinite alternate;
}
.scn-inheritance-of-disease .mirror-frame {
  position: absolute; left: 50%; top: 15%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: id-mirror 14s ease-in-out infinite;
}
.scn-inheritance-of-disease .parent-figure {
  position: absolute; top: 20%; left: 35%; width: 22px; 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: id-parent 8s ease-in-out infinite;
}
.scn-inheritance-of-disease .child-figure {
  position: absolute; bottom: 15%; left: 48%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: id-child 6s ease-in-out infinite;
}
.scn-inheritance-of-disease .ghost-ancestor {
  position: absolute; top: 10%; right: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, rgba(100,90,80,0.3) 0%, rgba(60,50,40,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: id-ghost 20s linear infinite;
}
.scn-inheritance-of-disease .candle-glow {
  position: absolute; bottom: 20%; left: 65%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.3);
  animation: id-candle 5s ease-in-out infinite alternate;
}
.scn-inheritance-of-disease .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 30%, rgba(200,180,150,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 50%, rgba(200,180,150,0.05) 0%, transparent 50%),
              radial-gradient(circle at 20% 70%, rgba(200,180,150,0.06) 0%, transparent 50%);
  animation: id-dust 30s linear infinite;
}
@keyframes id-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes id-mirror { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) scaleY(0.99) } }
@keyframes id-parent { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(-1px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes id-child { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes id-ghost { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:0.3 } 25% { transform: translate(5px, -5px) rotate(2deg) scale(1.02); opacity:0.5 } 50% { transform: translate(-3px, 3px) rotate(-1deg) scale(0.98); opacity:0.2 } 75% { transform: translate(2px, -2px) rotate(1deg) scale(1.01); opacity:0.4 } 100% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:0.3 } }
@keyframes id-candle { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes id-dust { 0% { transform: translate(0,0) } 25% { transform: translate(4px,-4px) } 50% { transform: translate(-2px,2px) } 75% { transform: translate(3px,-3px) } 100% { transform: translate(0,0) } }

/* ========== lower-natures-take-over (lnto) ========== */
.scn-lower-natures-take-over {
  background: linear-gradient(180deg, #2e241e 0%, #1f1713 60%, #140f0c 100%),
              radial-gradient(ellipse at 50% 30%, #3a2d26 0%, transparent 70%);
}
.scn-lower-natures-take-over .walls {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2a1f1a, #3a2c24, #2a1f1a);
  border-bottom: 2px solid #1a110e;
}
.scn-lower-natures-take-over .desk {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #4a342a, #2d1f19);
  border-radius: 2px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(10deg);
}
.scn-lower-natures-take-over .book-a {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #6b4f3e, #4a3328);
  border-radius: 2px; transform: rotate(-5deg); border-left: 2px solid #7a5c48;
  animation: lnto-book 6s ease-in-out infinite alternate;
}
.scn-lower-natures-take-over .book-b {
  position: absolute; bottom: 19%; left: 45%; width: 45px; height: 30px;
  background: linear-gradient(180deg, #5c4536, #3d2a1f);
  border-radius: 2px; transform: rotate(3deg); box-shadow: inset -2px 0 4px rgba(0,0,0,0.4);
  animation: lnto-book 8s ease-in-out infinite alternate-reverse;
}
.scn-lower-natures-take-over .candle {
  position: absolute; bottom: 21%; left: 57%; width: 8px; height: 32px;
  background: linear-gradient(180deg, #e8d4b8, #c9a87a);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: lnto-sway 4s ease-in-out infinite;
}
.scn-lower-natures-take-over .flame {
  position: absolute; bottom: 42%; left: 56.8%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 10%, #ffaa40 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px 10px rgba(255,170,64,0.6);
  animation: lnto-flame 1.5s ease-in-out infinite alternate;
}
.scn-lower-natures-take-over .shadow-fig {
  position: absolute; bottom: 16%; left: 65%; width: 20px; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7), transparent);
  filter: blur(4px);
  animation: lnto-shadow 10s ease-in-out infinite;
}
.scn-lower-natures-take-over .dust {
  position: absolute; top: 20%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,160,0.08) 1px, transparent 2px);
  background-size: 6px 6px;
  filter: blur(1px);
  animation: lnto-dust 20s linear infinite;
}
@keyframes lnto-book {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes lnto-sway {
  0%, 100% { transform: rotate(0.5deg); }
  50% { transform: rotate(-0.5deg); }
}
@keyframes lnto-flame {
  0% { opacity: 0.85; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.9; transform: scaleY(0.95); }
}
@keyframes lnto-shadow {
  0%, 100% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(8px); }
}
@keyframes lnto-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-20px) scale(1.1); opacity: 0.6; }
  100% { transform: translateY(-40px) scale(0.9); opacity: 0.2; }
}

/* ========== the-longer-way-again (tlwa) ========== */
.scn-the-longer-way-again {
  background: linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #1a1512 100%),
              radial-gradient(ellipse at 50% 100%, #3a322a 0%, transparent 60%);
}
.scn-the-longer-way-again .bg-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2d2620, #1a1512 80%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-the-longer-way-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1512, #0f0c0a);
  border-top: 1px solid #2a221c;
}
.scn-the-longer-way-again .pillar-l {
  position: absolute; bottom: 40%; left: 15%; width: 14px; height: 60%;
  background: linear-gradient(90deg, #2f2822, #4a3c32, #2f2822);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  border-radius: 2px;
  animation: tlwa-pillar 12s ease-in-out infinite alternate;
}
.scn-the-longer-way-again .pillar-r {
  position: absolute; bottom: 40%; right: 15%; width: 14px; height: 60%;
  background: linear-gradient(90deg, #2f2822, #4a3c32, #2f2822);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  border-radius: 2px;
  animation: tlwa-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-the-longer-way-again .doorway {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #0f0c0a 0%, #1a1512 60%, #0f0c0a 100%);
  border: 2px solid #3a2c24;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: tlwa-door 8s ease-in-out infinite;
}
.scn-the-longer-way-again .lamp-l {
  position: absolute; bottom: 45%; left: 18%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c878, #b8883a);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(240,200,120,0.4);
  animation: tlwa-lamp 3s ease-in-out infinite alternate;
}
.scn-the-longer-way-again .lamp-r {
  position: absolute; bottom: 45%; right: 18%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c878, #b8883a);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(240,200,120,0.4);
  animation: tlwa-lamp 3s ease-in-out infinite alternate-reverse;
}
.scn-the-longer-way-again .figure-walk {
  position: absolute; bottom: 37%; left: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1512 0%, #0f0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tlwa-walk 6s ease-in-out infinite;
}
.scn-the-longer-way-again .glow-path {
  position: absolute; bottom: 32%; left: 40%; width: 20%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(240,200,120,0.15), transparent);
  filter: blur(2px);
  animation: tlwa-glow-path 8s ease-in-out infinite alternate;
}
@keyframes tlwa-pillar {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes tlwa-door {
  0%, 100% { border-color: #3a2c24; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
  50% { border-color: #4a3c32; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes tlwa-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes tlwa-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(0deg); }
  50% { transform: translateX(16px) rotate(2deg); }
  75% { transform: translateX(24px) rotate(0deg); }
  100% { transform: translateX(32px) rotate(-2deg); }
}
@keyframes tlwa-glow-path {
  0% { opacity: 0.1; transform: scaleX(0.9); }
  50% { opacity: 0.3; transform: scaleX(1.1); }
  100% { opacity: 0.15; transform: scaleX(0.95); }
}

/* ========== glimpse-of-higher-method (ghm) ========== */
.scn-glimpse-of-higher-method {
  background: linear-gradient(180deg, #1c1a14 0%, #2c281e 50%, #1c1812 100%),
              radial-gradient(ellipse at 50% 20%, #4a4232 0%, transparent 60%);
}
.scn-glimpse-of-higher-method .vault {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2c281e, #1c1a14);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-glimpse-of-higher-method .wall-texture {
  position: absolute; top: 0; bottom: 0; left: 0; right: 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;
}
.scn-glimpse-of-higher-method .stair-1 {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 10px;
  background: linear-gradient(180deg, #3a3228, #2a221a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ghm-stair 10s ease-in-out infinite alternate;
}
.scn-glimpse-of-higher-method .stair-2 {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 10px;
  background: linear-gradient(180deg, #3a3228, #2a221a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ghm-stair 10s ease-in-out infinite alternate-reverse;
}
.scn-glimpse-of-higher-method .stair-3 {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 10px;
  background: linear-gradient(180deg, #3a3228, #2a221a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ghm-stair 10s ease-in-out infinite alternate;
}
.scn-glimpse-of-higher-method .light-ray {
  position: absolute; top: 0; left: 48%; width: 4%; height: 100%;
  background: linear-gradient(180deg, rgba(255,232,180,0.15) 0%, rgba(255,232,180,0.02) 100%);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  animation: ghm-ray 7s ease-in-out infinite alternate;
}
.scn-glimpse-of-higher-method .small-figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #1c1812, #0f0c0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ghm-figure 9s ease-in-out infinite;
}
.scn-glimpse-of-higher-method .dust-particles {
  position: absolute; top: 30%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle at 20% 50%, rgba(255,232,180,0.06) 1px, transparent 2px);
  background-size: 8px 8px;
  filter: blur(1px);
  animation: ghm-dust 15s linear infinite;
}
@keyframes ghm-stair {
  0% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
}
@keyframes ghm-ray {
  0% { opacity: 0.2; transform: rotate(0deg); }
  50% { opacity: 0.5; transform: rotate(1deg); }
  100% { opacity: 0.25; transform: rotate(-0.5deg); }
}
@keyframes ghm-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ghm-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(5px, -10px) scale(1.02); opacity: 0.5; }
  50% { transform: translate(-3px, -20px) scale(0.98); opacity: 0.2; }
  75% { transform: translate(8px, -30px) scale(1.01); opacity: 0.4; }
  100% { transform: translate(0, -40px) scale(1); opacity: 0.1; }
}

/* ========== a-priori-and-a-posteriori (apap) ========== */
.scn-a-priori-and-a-posteriori {
  background: linear-gradient(180deg, #1e1c1a 0%, #2a2622 40%, #1a1816 100%),
              radial-gradient(ellipse at 50% 50%, #3a3430 0%, transparent 50%);
}
.scn-a-priori-and-a-posteriori .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1816, #0f0e0c);
  border-bottom: 1px solid #2a2622;
}
.scn-a-priori-and-a-posteriori .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #4a4038, transparent);
  filter: blur(1px);
  animation: apap-horizon 6s ease-in-out infinite alternate;
}
.scn-a-priori-and-a-posteriori .left-column {
  position: absolute; bottom: 30%; left: 25%; width: 8px; height: 50%;
  background: linear-gradient(180deg, #3a322c, #1e1a16);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: apap-column 8s ease-in-out infinite alternate;
}
.scn-a-priori-and-a-posteriori .right-column {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 50%;
  background: linear-gradient(180deg, #3a322c, #1e1a16);
  border-radius: 2px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: apap-column 8s ease-in-out infinite alternate-reverse;
}
.scn-a-priori-and-a-posteriori .scale-pan-left {
  position: absolute; bottom: 36%; left: 30%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a4038, #2a2622);
  border-radius: 2px;
  transform-origin: right center;
  animation: apap-scale-l 5s ease-in-out infinite;
}
.scn-a-priori-and-a-posteriori .scale-pan-right {
  position: absolute; bottom: 36%; right: 30%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a4038, #2a2622);
  border-radius: 2px;
  transform-origin: left center;
  animation: apap-scale-r 5s ease-in-out infinite;
}
.scn-a-priori-and-a-posteriori .balance-beam {
  position: absolute; bottom: 38%; left: 25%; right: 25%; height: 4px;
  background: linear-gradient(90deg, #4a4038, #6a5c50, #4a4038);
  border-radius: 2px;
  transform: rotate(0deg);
  animation: apap-beam 5s ease-in-out infinite;
}
.scn-a-priori-and-a-posteriori .glow-point {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 6px;
  background: radial-gradient(circle, #f0d8a0, #c8a870);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,216,160,0.4);
  animation: apap-glow 4s ease-in-out infinite alternate;
}
@keyframes apap-horizon {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.5); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes apap-column {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes apap-scale-l {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
}
@keyframes apap-scale-r {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
}
@keyframes apap-beam {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes apap-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
}

/* Scene: physicians-and-judges (bright interior) */
.scn-physicians-and-judges {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4b896 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-physicians-and-judges .lamp {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8a060 0%, #a07840 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,0.6);
  animation: pj-lamp 6s ease-in-out infinite alternate;
}
.scn-physicians-and-judges .table {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4% / 20%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: pj-table 12s ease-in-out infinite;
}
.scn-physicians-and-judges .scroll {
  position: absolute; bottom: 26%; left: 48%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #eee0c0 0%, #d4c0a0 100%);
  border-radius: 10% 80% 10% 80% / 30% 30% 70% 70%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  transform-origin: center bottom;
  animation: pj-scroll 8s ease-in-out infinite;
}
.scn-physicians-and-judges .physician {
  position: absolute; bottom: 26%; left: 28%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #c8d4c0 0%, #a8b8a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pj-physician 10s ease-in-out infinite alternate;
}
.scn-physicians-and-judges .judge {
  position: absolute; bottom: 26%; right: 28%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pj-judge 10s ease-in-out infinite alternate;
}
.scn-physicians-and-judges .balance {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 36px; height: 6px;
  background: #b09070;
  border-radius: 2px;
  box-shadow: 0 -12px 0 #b09070, 0 -24px 0 #b09070;
  animation: pj-balance 4s ease-in-out infinite;
}
.scn-physicians-and-judges .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,220,0.4) 0%, transparent 60%);
  pointer-events: none;
  animation: pj-glow 8s ease-in-out infinite alternate;
}
@keyframes pj-lamp { 0% { opacity:0.9; transform:translateX(-50%) scaleY(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.02); } 100% { opacity:0.85; transform:translateX(-50%) scaleY(0.98); } }
@keyframes pj-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes pj-scroll { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pj-physician { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes pj-judge { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes pj-balance { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes pj-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* Scene: medicine-and-law-in-state (dim interior) */
.scn-medicine-and-law-in-state {
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 40%, #14141e 100%),
              radial-gradient(ellipse at 40% 60%, #3a3a5e 0%, transparent 60%);
}
.scn-medicine-and-law-in-state .bed {
  position: absolute; bottom: 10%; left: 15%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% / 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ml-bed 15s ease-in-out infinite alternate;
}
.scn-medicine-and-law-in-state .figure-lying {
  position: absolute; bottom: 12%; left: 22%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ml-lying 12s ease-in-out infinite;
}
.scn-medicine-and-law-in-state .figure-standing {
  position: absolute; bottom: 12%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ml-standing 8s ease-in-out infinite alternate;
}
.scn-medicine-and-law-in-state .gavel {
  position: absolute; bottom: 14%; right: 30%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% / 30%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: ml-gavel 4s ease-in-out infinite;
}
.scn-medicine-and-law-in-state .shadow-layer {
  position: absolute; inset: 40% 20% 0 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: ml-shadow 20s ease-in-out infinite alternate;
}
.scn-medicine-and-law-in-state .candle {
  position: absolute; top: 30%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 8px rgba(200,160,96,0.5);
  animation: ml-candle 7s ease-in-out infinite alternate;
}
.scn-medicine-and-law-in-state .candle-glow {
  position: absolute; top: 28%; left: 44%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: ml-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes ml-bed { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ml-lying { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(-1px); } }
@keyframes ml-standing { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ml-gavel { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes ml-shadow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.4; } }
@keyframes ml-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(0.98) rotate(-1deg); } }
@keyframes ml-candle-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }

/* Scene: harmony-of-reason-and-passion (dim interior) */
.scn-harmony-of-reason-and-passion {
  background: linear-gradient(180deg, #1e1e2e 0%, #14141e 40%, #0a0a12 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a44 0%, transparent 50%);
}
.scn-harmony-of-reason-and-passion .reason-figure {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(80,120,180,0.3);
  animation: hr-reason 10s ease-in-out infinite alternate;
}
.scn-harmony-of-reason-and-passion .passion-figure {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 50% 40% 50% 40% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  box-shadow: 0 0 20px rgba(160,80,40,0.4);
  animation: hr-passion 6s ease-in-out infinite;
}
.scn-harmony-of-reason-and-passion .book {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #b0a080 0%, #807060 100%);
  border-radius: 0 30% 0 30% / 10% 30% 10% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: hr-book 12s ease-in-out infinite alternate;
}
.scn-harmony-of-reason-and-passion .torch {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% / 10%;
  animation: hr-torch 8s ease-in-out infinite;
}
.scn-harmony-of-reason-and-passion .chain {
  position: absolute; bottom: 35%; left: 48%; width: 16px; height: 24px;
  background: repeating-linear-gradient(90deg, #6a6a6a 0px, #6a6a6a 2px, transparent 2px, transparent 4px);
  border-radius: 4px;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: hr-chain 5s ease-in-out infinite;
}
.scn-harmony-of-reason-and-passion .halo-reason {
  position: absolute; top: 18%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(100,160,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: hr-halo-reason 9s ease-in-out infinite alternate;
}
.scn-harmony-of-reason-and-passion .flame-passion {
  position: absolute; top: 20%; right: 22%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #c04000 50%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: hr-flame 3s ease-in-out infinite;
}
@keyframes hr-reason { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hr-passion { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(5deg) scaleY(0.98); } }
@keyframes hr-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hr-torch { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes hr-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes hr-halo-reason { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes hr-flame { 0% { transform: scaleY(1) rotate(0deg); filter: blur(2px); } 50% { transform: scaleY(1.1) rotate(5deg); filter: blur(4px); } 100% { transform: scaleY(0.95) rotate(-5deg); filter: blur(2px); } }

/* Scene: selection-of-rulers (bright interior) */
.scn-selection-of-rulers {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 40%, #b8a88c 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 50%);
}
.scn-selection-of-rulers .throne {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4), 0 4px 12px rgba(0,0,0,0.3);
  animation: sr-throne 10s ease-in-out infinite alternate;
}
.scn-selection-of-rulers .elder-left {
  position: absolute; bottom: 20%; left: 12%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: sr-elder-left 12s ease-in-out infinite alternate;
}
.scn-selection-of-rulers .elder-right {
  position: absolute; bottom: 20%; right: 12%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: sr-elder-right 12s ease-in-out infinite alternate;
}
.scn-selection-of-rulers .scepter {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #d4b060 0%, #b09040 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 10px rgba(180,144,64,0.4);
  animation: sr-scepter 8s ease-in-out infinite;
}
.scn-selection-of-rulers .crown {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 14px;
  background: linear-gradient(135deg, #d4b060 0%, #a08040 100%);
  clip-path: polygon(0 100%, 20% 0%, 50% 30%, 80% 0%, 100% 100%);
  animation: sr-crown 6s ease-in-out infinite;
}
.scn-selection-of-rulers .light-beam {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 10% 100%, 90% 100%);
  animation: sr-light-beam 9s ease-in-out infinite alternate;
}
.scn-selection-of-rulers .dais {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% / 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sr-dais 15s ease-in-out infinite;
}
@keyframes sr-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes sr-elder-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes sr-elder-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes sr-scepter { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes sr-crown { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(0.95); } }
@keyframes sr-light-beam { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.2; transform: scaleX(0.9); } }
@keyframes sr-dais { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

.scn-music-and-harmony {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1e18 40%, #3d2b20 70%, #1e1410 100%),
    radial-gradient(ellipse at 50% 100%, #4a3528 0%, transparent 70%);
}
.scn-music-and-harmony .bg     { position:absolute; inset:0; background: linear-gradient(180deg, #1a100a 0%, transparent 100%); animation: mh-bg 12s ease-in-out infinite alternate; }
.scn-music-and-harmony .lamp   { position:absolute; top:20%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #c89650 0%, #6a4220 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,150,80,.5); animation: mh-lamp 4s ease-in-out infinite; }
.scn-music-and-harmony .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(135deg, #3a2a1e 0%, #1e1410 100%); border: 4px solid #4a3528; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: mh-window 8s ease-in-out infinite alternate; }
.scn-music-and-harmony .harp   { position:absolute; bottom:25%; left:50%; width:60px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #b08050 0%, #805030 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: mh-harp 6s ease-in-out infinite; }
.scn-music-and-harmony .player { position:absolute; bottom:22%; left:38%; width:40px; height:80px; background: linear-gradient(180deg, #2a1e18 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mh-player 5s ease-in-out infinite; }
.scn-music-and-harmony .note   { position:absolute; width:12px; height:12px; border-radius:50%; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); box-shadow: 0 0 12px 4px rgba(255,208,128,.6); animation: mh-note 8s ease-in-out infinite; }
.scn-music-and-harmony .note-a { top:30%; left:60%; animation-delay:0s; }
.scn-music-and-harmony .note-b { top:45%; left:70%; animation-delay:-3s; }
.scn-music-and-harmony .harmony-line { position:absolute; top:50%; left:20%; width:120px; height:4px; background: linear-gradient(90deg, transparent 0%, #c08040 50%, transparent 100%); border-radius:2px; filter: blur(1px); animation: mh-line 10s ease-in-out infinite; }

@keyframes mh-bg    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes mh-lamp  { 0%,100% { transform: translateY(0) scale(1) rotate(-2deg) } 50% { transform: translateY(-4px) scale(1.05) rotate(2deg) } }
@keyframes mh-window{ 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(0.95) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes mh-harp  { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes mh-player{ 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(0) } 75% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mh-note  { 0% { transform: translateY(0) scale(.8); opacity:.5 } 50% { transform: translateY(-30px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(.8); opacity:.5 } }
@keyframes mh-line  { 0% { transform: scaleX(.5); opacity:.3 } 50% { transform: scaleX(1.5); opacity:.8 } 100% { transform: scaleX(.5); opacity:.3 } }

.scn-metres-and-rhythms {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-metres-and-rhythms .bg         { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a08 0%, transparent 100%); animation: mr-bg 15s ease-in-out infinite alternate; }
.scn-metres-and-rhythms .metronome  { position:absolute; bottom:30%; left:25%; width:40px; height:100px; background: linear-gradient(180deg, #605040 0%, #403020 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: mr-metro 2s ease-in-out infinite; }
.scn-metres-and-rhythms .drum       { position:absolute; bottom:25%; left:55%; width:70px; height:50px; background: linear-gradient(180deg, #806040 0%, #503020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: mr-drum 4s ease-in-out infinite; }
.scn-metres-and-rhythms .beat       { position:absolute; width:8px; height:8px; background: radial-gradient(circle, #d0a060 0%, #805030 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(208,160,96,.6); animation: mr-beat 3s ease-in-out infinite; }
.scn-metres-and-rhythms .beat-a     { top:45%; right:15%; animation-delay:0s; }
.scn-metres-and-rhythms .beat-b     { top:60%; right:25%; animation-delay:-1.5s; }
.scn-metres-and-rhythms .hand       { position:absolute; bottom:22%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mr-hand 2s ease-in-out infinite; }

@keyframes mr-bg    { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes mr-metro { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }
@keyframes mr-drum  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes mr-beat  { 0% { transform: scale(.5); opacity:.3 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(.5); opacity:.3 } }
@keyframes mr-hand  { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(-5deg) } }

.scn-other-arts-warning {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 90%, #3a2a20 0%, transparent 60%);
}
.scn-other-arts-warning .bg           { position:absolute; inset:0; background: linear-gradient(90deg, #0e0a08 0%, transparent 100%); animation: oa-bg 18s ease-in-out infinite alternate; }
.scn-other-arts-warning .easel        { position:absolute; bottom:20%; left:50%; width:100px; height:120px; transform: translateX(-50%); background: linear-gradient(180deg, #604840 0%, #403020 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: oa-easel 10s ease-in-out infinite; }
.scn-other-arts-warning .canvas       { position:absolute; bottom:28%; left:50%; width:70px; height:80px; transform: translateX(-50%); background: linear-gradient(135deg, #3a2a1e 0%, #1e1410 100%); border: 2px solid #604840; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: oa-canvas 12s ease-in-out infinite alternate; }
.scn-other-arts-warning .sculpture    { position:absolute; bottom:25%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #806050 0%, #403020 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: oa-sculpt 8s ease-in-out infinite; }
.scn-other-arts-warning .chisel       { position:absolute; bottom:30%; left:33%; width:6px; height:40px; background: linear-gradient(180deg, #a08060 0%, #605040 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: oa-chisel 5s ease-in-out infinite; }
.scn-other-arts-warning .warning-hand { position:absolute; bottom:22%; left:70%; width:25px; height:35px; background: linear-gradient(180deg, #2a1e18 0%, #1a100a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: oa-hand 4s ease-in-out infinite; }

@keyframes oa-bg     { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes oa-easel  { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes oa-canvas { 0% { opacity:.5; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.02) } 100% { opacity:.6; transform: translateX(-50%) scale(1) } }
@keyframes oa-sculpt { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes oa-chisel { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-4px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes oa-hand   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-music-of-the-soul {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #3d2b20 60%, #1e1410 100%),
    radial-gradient(ellipse at 50% 50%, #4a3528 0%, transparent 70%);
}
.scn-music-of-the-soul .bg        { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 100%); animation: ms-bg 20s ease-in-out infinite alternate; }
.scn-music-of-the-soul .figure-a  { position:absolute; bottom:25%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ms-figure-a 6s ease-in-out infinite; }
.scn-music-of-the-soul .figure-b  { position:absolute; bottom:25%; right:35%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ms-figure-b 6s ease-in-out infinite reverse; }
.scn-music-of-the-soul .heart-glow { position:absolute; bottom:45%; left:50%; width:20px; height:20px; transform: translateX(-50%); background: radial-gradient(circle, #ffb060 0%, #c08040 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,176,96,.5), 0 0 60px 20px rgba(255,176,96,.2); animation: ms-heart 4s ease-in-out infinite; }
.scn-music-of-the-soul .halo      { position:absolute; top:15%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,208,128,.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ms-halo 10s ease-in-out infinite; }
.scn-music-of-the-soul .soul-note { position:absolute; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.4); animation: ms-note 8s ease-in-out infinite; }
.scn-music-of-the-soul .soul-note-a { top:35%; left:20%; animation-delay:0s; }
.scn-music-of-the-soul .soul-note-b { top:55%; right:20%; animation-delay:-4s; }

@keyframes ms-bg      { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ms-figure-a{ 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } }
@keyframes ms-figure-b{ 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-8px) rotate(-2deg) } }
@keyframes ms-heart   { 0% { transform: translateX(-50%) scale(.9); opacity:.7 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(.9); opacity:.7 } }
@keyframes ms-halo    { 0% { opacity:.3; transform: translateX(-50%) scale(.8) } 50% { opacity:.6; transform: translateX(-50%) scale(1.1) } 100% { opacity:.4; transform: translateX(-50%) scale(.9) } }
@keyframes ms-note    { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-40px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }

.scn-philosopher-defined {
  background:
    linear-gradient(180deg, #f5edd6 0%, #e8dcc6 40%),
    radial-gradient(ellipse at 50% 100%, #d4c49f 0%, transparent 70%);
}
.scn-philosopher-defined .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5edd6 0%, #e0d2b8 100%);
}
.scn-philosopher-defined .window {
  position: absolute; top: 8%; left: 30%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #fffff0 0%, #fff8dc 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,235,150,0.3);
  animation: pd-window 8s ease-in-out infinite alternate;
}
.scn-philosopher-defined .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #b8956a 0%, #9a7c56 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-philosopher-defined .book-left {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a3028 100%);
  border-radius: 2px; transform: rotate(-8deg);
  animation: pd-book 6s ease-in-out infinite;
}
.scn-philosopher-defined .book-right {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #8b6c4a 0%, #6b5032 100%);
  border-radius: 2px; transform: rotate(4deg);
  animation: pd-book 6s ease-in-out infinite 2s;
}
.scn-philosopher-defined .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 4px; transform-origin: bottom center;
  animation: pd-lamp 4s ease-in-out infinite alternate;
}
.scn-philosopher-defined .chair {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  transform: translateX(-50%);
}
.scn-philosopher-defined .sunbeam {
  position: absolute; top: 0; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.15) 0%, transparent 100%);
  filter: blur(10px); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  animation: pd-beam 12s ease-in-out infinite alternate;
}
@keyframes pd-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.92; transform: scale(0.98); }
}
@keyframes pd-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes pd-lamp {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pd-beam {
  0% { opacity: 0.6; transform: translateX(-10px); }
  50% { opacity: 0.8; transform: translateX(10px); }
  100% { opacity: 0.5; transform: translateX(0); }
}

.scn-true-philosopher {
  background:
    linear-gradient(180deg, #faf3e0 0%, #ece1c9 50%, #d9cbb0 100%),
    radial-gradient(ellipse at 60% 30%, #fff8dc 0%, transparent 60%);
}
.scn-true-philosopher .bookshelf {
  position: absolute; top: 5%; bottom: 20%; left: 10%; right: 10%;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a3028 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-true-philosopher .shelf-line {
  position: absolute; top: 30%; left: 12%; right: 12%; height: 4px;
  background: #3a2218; border-radius: 2px;
}
.scn-true-philosopher .book-spine-a {
  position: absolute; bottom: 40%; left: 20%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #7a5c4a 0%, #5a3e2e 100%);
  border-radius: 2px; transform: rotate(-2deg);
  animation: tp-book 7s ease-in-out infinite;
}
.scn-true-philosopher .book-spine-b {
  position: absolute; bottom: 40%; left: 30%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #9a7c6a 0%, #7a5c4a 100%);
  border-radius: 2px; transform: rotate(3deg);
  animation: tp-book 7s ease-in-out infinite 2s;
}
.scn-true-philosopher .book-spine-c {
  position: absolute; bottom: 40%; left: 40%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2218 100%);
  border-radius: 2px; transform: rotate(-1deg);
  animation: tp-book 7s ease-in-out infinite 4s;
}
.scn-true-philosopher .lectern {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #8b6c4a 0%, #6b5032 100%);
  border-radius: 8px; transform: translateX(-50%) perspective(300px) rotateX(5deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-true-philosopher .globe {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #6b8e23 0%, #4a6e14 50%, #2a4a08 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tp-globe 10s ease-in-out infinite alternate;
}
.scn-true-philosopher .light-shimmer {
  position: absolute; top: 0; left: 20%; width: 200px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.1) 0%, transparent 80%);
  filter: blur(8px); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: tp-shimmer 15s ease-in-out infinite alternate;
}
@keyframes tp-book {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes tp-globe {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(0.98); }
}
@keyframes tp-shimmer {
  0% { opacity: 0.3; transform: translateX(-10px); }
  50% { opacity: 0.7; transform: translateX(10px); }
  100% { opacity: 0.4; transform: translateX(0); }
}

.scn-opinion-between-being-and-not-being {
  background:
    linear-gradient(180deg, #e8dcc6 0%, #d4c49f 50%, #bfb08a 100%),
    radial-gradient(ellipse at 50% 80%, #d4c49f 0%, transparent 70%);
}
.scn-opinion-between-being-and-not-being .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d9cbb0 0%, #bfb08a 100%);
}
.scn-opinion-between-being-and-not-being .window-frame {
  position: absolute; top: 10%; left: 25%; width: 200px; height: 200px;
  background: linear-gradient(135deg, #fff8dc 0%, #f5edd6 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: op-window 10s ease-in-out infinite alternate;
}
.scn-opinion-between-being-and-not-being .curtain-left {
  position: absolute; top: 8%; left: 23%; width: 50px; height: 220px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 0 0 20%; clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: op-curtain 8s ease-in-out infinite;
}
.scn-opinion-between-being-and-not-being .curtain-right {
  position: absolute; top: 8%; right: 23%; width: 50px; height: 220px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 20% 20% 0; clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
  animation: op-curtain 8s ease-in-out infinite 4s;
}
.scn-opinion-between-being-and-not-being .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(180deg, #b8956a 0%, #9a7c56 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-opinion-between-being-and-not-being .open-book {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f5edd6 0%, #e0d2b8 100%);
  border-radius: 4px; transform: perspective(200px) rotateX(10deg);
  animation: op-book 6s ease-in-out infinite;
}
.scn-opinion-between-being-and-not-being .inkwell {
  position: absolute; bottom: 26%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-opinion-between-being-and-not-being .lamp-glow {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px rgba(184,134,11,0.4);
  animation: op-lamp 5s ease-in-out infinite alternate;
}
@keyframes op-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.85; transform: scale(0.99); }
}
@keyframes op-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes op-book {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(8deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(12deg) translateY(0); }
}
@keyframes op-lamp {
  0% { opacity: 0.8; transform: rotate(-2deg); box-shadow: 0 0 15px 4px rgba(184,134,11,0.3); }
  50% { opacity: 1; transform: rotate(2deg); box-shadow: 0 0 25px 8px rgba(184,134,11,0.5); }
  100% { opacity: 0.85; transform: rotate(0deg); box-shadow: 0 0 18px 5px rgba(184,134,11,0.35); }
}

.scn-fifth-book-recap {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%),
    radial-gradient(ellipse at 50% 100%, #0a1929 0%, transparent 80%);
}
.scn-fifth-book-recap .deep-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #12122a 100%);
}
.scn-fifth-book-recap .armchair {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 15% 15%; transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: fr-chair 8s ease-in-out infinite;
}
.scn-fifth-book-recap .candle {
  position: absolute; bottom: 22%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f5e6ca 0%, #d4c49f 100%);
  border-radius: 4px; box-shadow: 0 0 10px 2px rgba(255,220,150,0.3);
  animation: fr-candle 4s ease-in-out infinite alternate;
}
.scn-fifth-book-recap .candle-flame {
  position: absolute; bottom: 38%; left: 35%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ffa040 60%, #803000 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(1px);
  animation: fr-flame 2s ease-in-out infinite alternate;
}
.scn-fifth-book-recap .book-pile {
  position: absolute; bottom: 14%; left: 55%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a3028 100%);
  border-radius: 4px; transform: rotate(-5deg);
  animation: fr-books 10s ease-in-out infinite;
}
.scn-fifth-book-recap .shadow-under {
  position: absolute; bottom: 8%; left: 40%; right: 40%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: fr-shadow 6s ease-in-out infinite alternate;
}
.scn-fifth-book-recap .night-window {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #0a1929 0%, #0f3460 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 0 2px #2a2a3e;
  animation: fr-window 12s ease-in-out infinite alternate;
}
.scn-fifth-book-recap .moon-glow {
  position: absolute; top: 12%; left: 63%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 70%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,210,230,0.3);
  animation: fr-moon 15s ease-in-out infinite alternate;
}
@keyframes fr-chair {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-48%) scale(1.01); }
  100% { transform: translateX(-52%) scale(0.99); }
}
@keyframes fr-candle {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.85; }
}
@keyframes fr-flame {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-2px); }
  100% { transform: scaleY(0.95) translateY(1px); }
}
@keyframes fr-books {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes fr-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.35; transform: scaleX(0.9); }
}
@keyframes fr-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.75; transform: scale(0.98); }
}
@keyframes fr-moon {
  0% { transform: translate(0, 0); opacity: 0.6; }
  50% { transform: translate(2px, -2px); opacity: 0.8; }
  100% { transform: translate(-1px, 1px); opacity: 0.65; }
}

/* gods-either-not-or-care */
.scn-gods-either-not-or-care {
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1410 70%), linear-gradient(180deg, #2a2218 0%, #0d0a08 100%);
  position: relative;
  overflow: hidden;
}
.scn-gods-either-not-or-care .back-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); }
.scn-gods-either-not-or-care .shelf { position:absolute; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius:2px; }
.scn-gods-either-not-or-care .shelf-top { top:25%; }
.scn-gods-either-not-or-care .shelf-bot { top:45%; }
.scn-gods-either-not-or-care .table { position:absolute; bottom:20%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,0.6); }
.scn-gods-either-not-or-care .figure { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0d0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-fig 5s ease-in-out infinite; }
.scn-gods-either-not-or-care .candle-glow { position:absolute; bottom:37%; left:48%; width:6%; height:12%; background: radial-gradient(circle, #ffc080 0%, #804020 70%, transparent 100%); border-radius:50%; opacity:0.7; animation: ge-glow 2s ease-in-out infinite alternate; }
.scn-gods-either-not-or-care .candle { position:absolute; bottom:37%; left:49%; width:2%; height:10%; background: linear-gradient(180deg, #f0c8a0, #806040); border-radius:2px 2px 0 0; animation: ge-candle 2s ease-in-out infinite alternate; }
.scn-gods-either-not-or-care .shadow { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%); animation: ge-shadow 4s ease-in-out infinite; }
@keyframes ge-fig {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ge-glow {
  0% { opacity:0.5; transform: scale(0.9); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(0.95); }
}
@keyframes ge-candle {
  0% { height:10%; opacity:0.9; }
  50% { height:12%; opacity:1; }
  100% { height:10%; opacity:0.9; }
}
@keyframes ge-shadow {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}

/* better-to-be-unjust */
.scn-better-to-be-unjust {
  background: linear-gradient(180deg, #181e28 0%, #0a0e14 100%), radial-gradient(ellipse at 50% 60%, #1e2830 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-better-to-be-unjust .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #202a34 0%, #0a0e14 100%); }
.scn-better-to-be-unjust .chest { position:absolute; bottom:15%; left:25%; right:25%; height:35%; background: linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius:4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-better-to-be-unjust .lid { position:absolute; bottom:48%; left:24%; right:24%; height:8%; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius:4px 4px 0 0; transform-origin: bottom center; animation: bu-lid 6s ease-in-out infinite; }
.scn-better-to-be-unjust .hand { position:absolute; bottom:40%; left:45%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 30%, #b0a090 0%, #7a6a5a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 90%; animation: bu-hand 3s ease-in-out infinite alternate; }
.scn-better-to-be-unjust .coins { position:absolute; bottom:35%; left:40%; right:40%; height:10%; background: radial-gradient(circle, #c0b060 0%, #806040 80%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(192,176,96,0.4); animation: bu-coins 4s ease-in-out infinite; }
.scn-better-to-be-unjust .shadow { position:absolute; bottom:15%; left:20%; right:20%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%); }
@keyframes bu-lid {
  0%,100% { transform: rotateX(0deg); }
  50% { transform: rotateX(15deg); }
}
@keyframes bu-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bu-coins {
  0%,100% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.05); }
}

/* great-cities-testify */
.scn-great-cities-testify {
  background: radial-gradient(ellipse at 50% 70%, #1a2230 0%, #080c12 80%), linear-gradient(180deg, #121a24 0%, #06080c 100%);
  position: relative;
  overflow: hidden;
}
.scn-great-cities-testify .int-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a2028 0%, #0a0e12 100%); }
.scn-great-cities-testify .window-frame { position:absolute; top:10%; bottom:10%; left:20%; right:20%; border: 8px solid #2a1a0a; background: #0a0e14; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-great-cities-testify .city-skyline { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #0a121a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; clip-path: polygon(0% 100%, 5% 70%, 10% 100%, 15% 60%, 20% 100%, 25% 50%, 30% 100%, 35% 40%, 40% 100%, 45% 55%, 50% 100%, 55% 45%, 60% 100%, 65% 50%, 70% 100%, 75% 35%, 80% 100%, 85% 60%, 90% 100%, 95% 40%, 100% 100%); }
.scn-great-cities-testify .city-windows { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: radial-gradient(circle at 30% 50%, #ffd080 1px, transparent 1px); background-size: 8% 8%; background-repeat: repeat; opacity:0.4; animation: gc-win 4s ease-in-out infinite alternate; }
.scn-great-cities-testify .figure { position:absolute; bottom:20%; left:48%; width:10%; height:50%; background: radial-gradient(ellipse at 50% 30%, #1a1210 0%, #080404 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-fig 8s ease-in-out infinite; }
.scn-great-cities-testify .chair { position:absolute; bottom:18%; left:46%; width:14%; height:25%; background: linear-gradient(180deg, #3a2a1a, #1a0e0a); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-great-cities-testify .curtain { position:absolute; top:8%; bottom:10%; width:12%; background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%); }
.scn-great-cities-testify .curtain-l { left:18%; border-radius:0 6px 6px 0; animation: gc-curtain 12s ease-in-out infinite; }
.scn-great-cities-testify .curtain-r { right:18%; border-radius:6px 0 0 6px; animation: gc-curtain 12s ease-in-out infinite reverse; }
@keyframes gc-win {
  0% { opacity:0.2; }
  50% { opacity:0.6; }
  100% { opacity:0.3; }
}
@keyframes gc-fig {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes gc-curtain {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
}

/* not-angry-with-unjust */
.scn-not-angry-with-unjust {
  background: radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, #120a06 80%), linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  position: relative;
  overflow: hidden;
}
.scn-not-angry-with-unjust .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%); }
.scn-not-angry-with-unjust .figure-body { position:absolute; bottom:10%; left:30%; width:20%; height:55%; background: radial-gradient(ellipse at 50% 30%, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-body 6s ease-in-out infinite; }
.scn-not-angry-with-unjust .figure-arm { position:absolute; bottom:35%; left:48%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 30%, #2a1a12 0%, #1a0e08 100%); border-radius: 20% 50% 20% 50% / 40% 60% 30% 50%; transform-origin: 0% 100%; animation: na-arm 4s ease-in-out infinite alternate; }
.scn-not-angry-with-unjust .light-halo { position:absolute; top:20%; right:20%; width:20%; height:30%; background: radial-gradient(circle, #c0a060 0%, #806030 50%, transparent 80%); border-radius:50%; opacity:0.3; animation: na-halo 3s ease-in-out infinite alternate; }
.scn-not-angry-with-unjust .shadow { position:absolute; bottom:10%; left:15%; right:15%; height:12%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 80%); animation: na-shadow 5s ease-in-out infinite; }
@keyframes na-body {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes na-arm {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes na-halo {
  0% { opacity:0.1; transform: scale(0.9); }
  50% { opacity:0.4; transform: scale(1.1); }
  100% { opacity:0.2; transform: scale(0.95); }
}
@keyframes na-shadow {
  0%,100% { opacity:0.6; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.2); }
}

/* Scene 1: what-shall-we-say-about-men (dim interior) */
.scn-what-shall-we-say-about-men {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a1410 60%),
    linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
.scn-what-shall-we-say-about-men .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.2) 100%);
  animation: ws-room 12s ease-in-out infinite alternate;
}
.scn-what-shall-we-say-about-men .desk {
  position: absolute; bottom: 18%; left: 30%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #5c3a2a 0%, #3a2210 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-what-shall-we-say-about-men .figure {
  position: absolute; bottom: 28%; left: 38%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1810 0%, #100806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 4s ease-in-out infinite;
}
.scn-what-shall-we-say-about-men .candle {
  position: absolute; bottom: 26%; left: 55%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #c8a060 0%, #6a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #a06030;
}
.scn-what-shall-we-say-about-men .glow {
  position: absolute; bottom: 26%; left: 55%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 40%, rgba(255,200,100,0.7) 0%, rgba(255,200,100,0) 70%);
  animation: ws-glow 3s ease-in-out infinite alternate;
}
.scn-what-shall-we-say-about-men .scroll {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 3%;
  background: linear-gradient(180deg, #d4b080 0%, #a07040 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
}
@keyframes ws-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ws-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 ws-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* Scene 2: three-kinds-of-narrative (bright interior) */
.scn-three-kinds-of-narrative {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%),
    linear-gradient(90deg, rgba(255,230,180,0.3) 0%, transparent 50%, rgba(200,170,130,0.3) 100%);
}
.scn-three-kinds-of-narrative .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  opacity: 0.5;
}
.scn-three-kinds-of-narrative .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b8d8e8 0%, #d0e0f0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-three-kinds-of-narrative .sunbeam {
  position: absolute; top: 10%; left: 22%; width: 26%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0) 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: tk-sunbeam 15s ease-in-out infinite alternate;
}
.scn-three-kinds-of-narrative .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-three-kinds-of-narrative .scroll-a,
.scn-three-kinds-of-narrative .scroll-b,
.scn-three-kinds-of-narrative .scroll-c {
  position: absolute; bottom: 18%; width: 8%; height: 4%;
  background: linear-gradient(180deg, #e0c090 0%, #b09060 100%);
  border-radius: 30% 30% 10% 10%;
  animation: tk-scroll 6s ease-in-out infinite;
}
.scn-three-kinds-of-narrative .scroll-a { left: 30%; transform: rotate(-10deg); animation-delay: 0s; }
.scn-three-kinds-of-narrative .scroll-b { left: 45%; transform: rotate(5deg); animation-delay: 2s; }
.scn-three-kinds-of-narrative .scroll-c { left: 60%; transform: rotate(-5deg); animation-delay: 4s; }
@keyframes tk-sunbeam {
  0% { transform: translateX(0) skewX(0deg); opacity: 0.8; }
  50% { transform: translateX(20px) skewX(5deg); opacity: 1; }
  100% { transform: translateX(-10px) skewX(-3deg); opacity: 0.7; }
}
@keyframes tk-scroll {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

/* Scene 3: guardians-not-imitators (bright interior) */
.scn-guardians-not-imitators {
  background:
    linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%),
    radial-gradient(circle at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-guardians-not-imitators .stage {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #a08868 0%, #7a6048 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-guardians-not-imitators .guardian {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gn-guardian 8s ease-in-out infinite;
}
.scn-guardians-not-imitators .mask-tragedy {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: gn-mask 5s ease-in-out infinite alternate;
}
.scn-guardians-not-imitators .mask-comedy {
  position: absolute; bottom: 35%; left: 55%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #e0c090 0%, #b09060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: gn-mask 5s ease-in-out infinite alternate-reverse;
}
.scn-guardians-not-imitators .light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 50% 100%, 40% 100%);
  animation: gn-light 10s ease-in-out infinite alternate;
}
@keyframes gn-guardian {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gn-mask {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes gn-light {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}

/* Scene 4: good-man-imitate-good (bright interior) */
.scn-good-man-imitate-good {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8b0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 80%);
}
.scn-good-man-imitate-good .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  opacity: 0.3;
}
.scn-good-man-imitate-good .good-man {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gm-good 6s ease-in-out infinite;
}
.scn-good-man-imitate-good .shadow {
  position: absolute; bottom: 20%; left: 52%; width: 12%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(10deg);
  animation: gm-shadow 6s ease-in-out infinite;
}
.scn-good-man-imitate-good .mirror {
  position: absolute; bottom: 20%; left: 50%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #b8c8d8 0%, #e8f0f8 50%, #a0b0c0 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);
  animation: gm-mirror 10s ease-in-out infinite alternate;
}
.scn-good-man-imitate-good .glow {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(circle at 50% 30%, rgba(255,240,180,0.3) 0%, transparent 60%);
  animation: gm-glow 8s ease-in-out infinite alternate;
}
.scn-good-man-imitate-good .book {
  position: absolute; bottom: 22%; left: 35%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #d4b080 0%, #a07040 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-15deg);
}
@keyframes gm-good {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gm-shadow {
  0% { transform: skewX(10deg) scaleY(1); opacity: 0.5; }
  50% { transform: skewX(10deg) scaleY(1.05); opacity: 0.7; }
  100% { transform: skewX(10deg) scaleY(1); opacity: 0.4; }
}
@keyframes gm-mirror {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.3); }
  100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(0,0,0,0.2); }
}
@keyframes gm-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-medicine-cares-for-body {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f0e 40%, #1a1208 100%),
    radial-gradient(ellipse at 40% 60%, #4a3520 0%, transparent 60%);
}
.scn-medicine-cares-for-body .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f0e 0%, #1a1208 100%); }
.scn-medicine-cares-for-body .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%); border-radius: 20% 20% 0 0; }
.scn-medicine-cares-for-body .bed { position:absolute; bottom:15%; left:20%; width:55%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f0e 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-medicine-cares-for-body .patient { position:absolute; bottom:20%; left:40%; width:15%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: med-float 5s ease-in-out infinite; }
.scn-medicine-cares-for-body .healer { position:absolute; bottom:18%; left:60%; width:12%; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: med-reach 4s ease-in-out infinite alternate; }
.scn-medicine-cares-for-body .lamp { position:absolute; bottom:40%; left:25%; width:8%; height:12%; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 24px 8px #c08040; animation: med-flicker 2s ease-in-out infinite alternate; }
.scn-medicine-cares-for-body .medicine-bottle { position:absolute; bottom:50%; left:68%; width:6%; height:10%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: med-bottle 8s ease-in-out infinite; }
.scn-medicine-cares-for-body .light-glow { position:absolute; bottom:35%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(240,192,104,.15) 0%, transparent 70%); pointer-events:none; animation: med-glow-pulse 6s ease-in-out infinite alternate; }
@keyframes med-float { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes med-reach { 0% { transform: rotate(0deg); } 100% { transform: rotate(-8deg); } }
@keyframes med-flicker { 0% { opacity:.85; box-shadow: 0 0 16px 4px #c08040; } 50% { opacity:1; box-shadow: 0 0 32px 10px #ffd060; } 100% { opacity:.9; box-shadow: 0 0 20px 6px #c08040; } }
@keyframes med-bottle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } }
@keyframes med-glow-pulse { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-ruler-considers-subject {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a1f1a 40%, #0e0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-ruler-considers-subject .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #0e0a0a 100%); }
.scn-ruler-considers-subject .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 40% 40% 0 0; }
.scn-ruler-considers-subject .throne { position:absolute; bottom:20%; left:30%; width:20%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-ruler-considers-subject .ruler { position:absolute; bottom:22%; left:35%; 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: rul-sit 8s ease-in-out infinite alternate; }
.scn-ruler-considers-subject .subject { position:absolute; bottom:15%; left:55%; width:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rul-kneel 6s ease-in-out infinite; }
.scn-ruler-considers-subject .window { position:absolute; top:10%; right:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #4a6a8a 0%, #1a2a3a 100%); border-radius: 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: rul-moon 30s linear infinite; }
.scn-ruler-considers-subject .moonlight { position:absolute; top:10%; right:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,.2) 0%, transparent 70%); pointer-events:none; animation: rul-moonbeam 12s ease-in-out infinite alternate; }
.scn-ruler-considers-subject .column { position:absolute; bottom:0; left:15%; width:5%; height:70%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 6px; box-shadow: 4px 0 6px rgba(0,0,0,.3); }
@keyframes rul-sit { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes rul-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes rul-moon { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes rul-moonbeam { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.05); } 100% { opacity:.4; transform: scale(1); } }

.scn-pilot-for-sailors {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e1a2a 40%, #050a12 100%),
    radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, transparent 60%);
}
.scn-pilot-for-sailors .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #0e1a2a 0%, #050a12 100%); }
.scn-pilot-for-sailors .bg-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a32 0%, #0a1215 100%); border-radius: 30% 30% 0 0; }
.scn-pilot-for-sailors .wheel { position:absolute; bottom:35%; left:45%; width:15%; height:25%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 70%); border-radius: 50%; border: 6px solid #5a4a3a; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pil-spin 20s linear infinite; }
.scn-pilot-for-sailors .pilot { position:absolute; bottom:25%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pil-stand 4s ease-in-out infinite alternate; }
.scn-pilot-for-sailors .compass { position:absolute; bottom:45%; left:60%; width:8%; height:8%; background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: pil-bob 3s ease-in-out infinite; }
.scn-pilot-for-sailors .lantern { position:absolute; bottom:50%; left:30%; width:6%; height:12%; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30%; box-shadow: 0 0 16px 4px #c08040; animation: pil-swing 5s ease-in-out infinite; }
.scn-pilot-for-sailors .porthole { position:absolute; top:10%; right:20%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 50%, #2a4a6a 0%, #0a1a2a 80%); border-radius: 50%; border: 4px solid #3a4a5a; box-shadow: inset 0 0 8px rgba(0,0,0,.7); animation: pil-wave 30s ease-in-out infinite; }
.scn-pilot-for-sailors .sea-roll { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(180deg, #0a1a2a 0px, #1a2a3a 8px, #0a1a2a 16px); opacity:.3; animation: pil-roll 6s linear infinite; }
@keyframes pil-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pil-stand { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pil-bob { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } }
@keyframes pil-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pil-wave { 0%,100% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.05); opacity:1; } }
@keyframes pil-roll { 0% { background-position: 0 0; } 100% { background-position: 0 40px; } }

.scn-thrasymachus-mocks {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #0e0a12 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-thrasymachus-mocks .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a12 100%); }
.scn-thrasymachus-mocks .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a32 0%, #1a121a 100%); border-radius: 20% 20% 0 0; }
.scn-thrasymachus-mocks .table { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-thrasymachus-mocks .socrates { position:absolute; bottom:25%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thr-point 3s ease-in-out infinite alternate; }
.scn-thrasymachus-mocks .thrasymachus { position:absolute; bottom:25%; left:55%; width:12%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thr-lean 2s ease-in-out infinite; }
.scn-thrasymachus-mocks .lamp { position:absolute; bottom:55%; left:45%; width:8%; height:14%; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,.3); animation: thr-flicker 1.5s ease-in-out infinite alternate; }
.scn-thrasymachus-mocks .chair-tilted { position:absolute; bottom:22%; left:48%; width:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; transform: rotate(-20deg); transform-origin: bottom center; box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: thr-tilt 4s ease-in-out infinite; }
.scn-thrasymachus-mocks .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 60%, rgba(0,0,0,.8) 100%); pointer-events:none; animation: thr-shadow 3s ease-in-out infinite alternate; }
@keyframes thr-point { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes thr-lean { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(4deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes thr-flicker { 0% { opacity:.8; box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.2); } 50% { opacity:1; box-shadow: 0 0 32px 10px #ffd060, 0 0 64px 18px rgba(255,208,96,.4); } 100% { opacity:.85; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 10px rgba(192,128,64,.25); } }
@keyframes thr-tilt { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }
@keyframes thr-shadow { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.7; } }

.scn-guardian-requirements {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%, #0d0702 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
}
.scn-guardian-requirements .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1008 0%, #0d0702 100%); }
.scn-guardian-requirements .bookshelf { position:absolute; top:18%; left:8%; width:30%; height:50%; background:linear-gradient(90deg, #3a2010 0%, #2a1508 50%, #1a0a04 100%); border-radius:4px; box-shadow:0 4px 8px #00000080; }
.scn-guardian-requirements .guardian-sil { position:absolute; bottom:20%; left:45%; width:30px; height:60px; background:linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation: gr-sil 8s ease-in-out infinite; }
.scn-guardian-requirements .lamp { position:absolute; bottom:36%; left:42%; width:8px; height:12px; background:radial-gradient(circle, #e8b84a 0%, #c08030 70%); border-radius:20% 20% 10% 10%; box-shadow:0 0 16px 6px #c08030, 0 0 32px 12px #c0803080; animation: gr-lamp 4s ease-in-out infinite alternate; }
.scn-guardian-requirements .desk { position:absolute; bottom:14%; left:35%; width:40%; height:6%; background:linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); border-radius:4px; }
.scn-guardian-requirements .book { position:absolute; bottom:18%; left:42%; width:24px; height:18px; background:linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 50%, #2a1508 100%); border-radius:2px; transform:rotate(5deg); animation: gr-book 6s ease-in-out infinite; }
.scn-guardian-requirements .glow { position:absolute; bottom:30%; left:40%; width:50px; height:50px; background:radial-gradient(circle, #c0803060 0%, transparent 100%); animation: gr-glow 5s ease-in-out infinite alternate; }
.scn-guardian-requirements .dust-a { position:absolute; top:50%; left:30%; width:4px; height:4px; background:#c0803060; border-radius:50%; filter:blur(1px); animation: gr-dust 12s linear infinite; }
.scn-guardian-requirements .dust-b { position:absolute; top:60%; left:70%; width:3px; height:3px; background:#c0803040; border-radius:50%; filter:blur(1px); animation: gr-dust 18s linear infinite 3s; }
@keyframes gr-sil { 0%,100% { transform:translate(-50%,0) rotate(0deg); } 50% { transform:translate(-50%,-2px) rotate(1deg); } }
@keyframes gr-lamp { 0% { opacity:.7; box-shadow:0 0 12px 4px #c08030,0 0 24px 8px #c0803060; } 100% { opacity:1; box-shadow:0 0 20px 8px #e8b84a,0 0 40px 16px #e8b84a80; } }
@keyframes gr-book { 0%,100% { transform:rotate(5deg) translate(0,0); } 50% { transform:rotate(7deg) translate(0,-1px); } }
@keyframes gr-glow { 0% { opacity:.3; } 100% { opacity:.6; } }
@keyframes gr-dust { 0% { opacity:0; transform:translateY(0) scale(1); } 50% { opacity:.5; transform:translateY(-20px) scale(1.2); } 100% { opacity:0; transform:translateY(-40px) scale(.8); } }

.scn-dog-like-qualities {
  background: linear-gradient(180deg, #1a120c 0%, #0d0805 50%, #060403 100%), radial-gradient(ellipse at 40% 100%, #2a1a0e 0%, transparent 70%);
}
.scn-dog-like-qualities .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a120c 0%, #0d0805 100%); }
.scn-dog-like-qualities .rug { position:absolute; bottom:12%; left:15%; width:70%; height:18%; background:radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e04 100%); border-radius:50%; transform:scaleX(1.2); }
.scn-dog-like-qualities .dog-sil { position:absolute; bottom:22%; left:35%; width:40px; height:50px; background:linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation: dq-sil 6s ease-in-out infinite; }
.scn-dog-like-qualities .ears { position:absolute; bottom:52%; left:34%; width:14px; height:20px; background:#1a0e04; border-radius:40% 40% 20% 20%/60% 60% 40% 40%; transform-origin:bottom; animation: dq-ears 3s ease-in-out infinite; }
.scn-dog-like-qualities .snout { position:absolute; bottom:30%; left:28%; width:16px; height:10px; background:#2a1a0e; border-radius:40% 40% 50% 50%; animation: dq-snout 4s ease-in-out infinite; }
.scn-dog-like-qualities .shadow { position:absolute; bottom:16%; left:30%; width:50px; height:8px; background:#00000040; border-radius:50%; animation: dq-shadow 6s ease-in-out infinite; }
.scn-dog-like-qualities .dust-a { position:absolute; top:40%; left:20%; width:4px; height:4px; background:#c0803040; border-radius:50%; filter:blur(1px); animation: dq-dust 14s linear infinite; }
.scn-dog-like-qualities .dust-b { position:absolute; top:55%; left:70%; width:3px; height:3px; background:#c0803030; border-radius:50%; filter:blur(1px); animation: dq-dust 20s linear infinite 4s; }
.scn-dog-like-qualities .window { position:absolute; top:10%; right:10%; width:40px; height:60px; background:radial-gradient(ellipse at 50% 50%, #c0803040 0%, transparent 100%); border:2px solid #2a1a0e; border-radius:4px; }
@keyframes dq-sil { 0%,100% { transform:translate(-50%,0); } 50% { transform:translate(-50%,-1px); } }
@keyframes dq-ears { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(8deg); } }
@keyframes dq-snout { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.1); } }
@keyframes dq-shadow { 0%,100% { width:50px; opacity:.4; } 50% { width:45px; opacity:.2; } }
@keyframes dq-dust { 0% { opacity:0; transform:translateY(0) scale(1); } 50% { opacity:.6; transform:translateY(-25px) scale(1.3); } 100% { opacity:0; transform:translateY(-50px) scale(.7); } }

.scn-spirit-gentle {
  background: linear-gradient(180deg, #0d0a1a 0%, #1a1428 50%, #2a2040 100%), radial-gradient(ellipse at 50% 30%, #3a2a5a 0%, transparent 70%);
}
.scn-spirit-gentle .bg { position:absolute; inset:0; background:linear-gradient(180deg, #0d0a1a 0%, #1a1428 100%); }
.scn-spirit-gentle .aura { position:absolute; top:25%; left:50%; width:120px; height:120px; transform:translate(-50%,-50%); background:radial-gradient(circle, #6a5a8a80 0%, transparent 100%); animation: sg-aura 8s ease-in-out infinite alternate; }
.scn-spirit-gentle .spirit { position:absolute; top:35%; left:50%; width:60px; height:80px; transform:translate(-50%,-50%); background:radial-gradient(ellipse at 50% 60%, #8a7aaa60 0%, #4a3a6a20 100%); border-radius:50%; filter:blur(4px); animation: sg-spirit 6s ease-in-out infinite; }
.scn-spirit-gentle .glow-hands { position:absolute; top:40%; left:40%; width:30px; height:40px; transform:translate(-50%,-50%); background:radial-gradient(ellipse at 50% 50%, #a0a0ff40 0%, transparent 100%); border-radius:40% 40% 20% 20%; animation: sg-hands 10s ease-in-out infinite; }
.scn-spirit-gentle .particle-a { position:absolute; top:30%; left:30%; width:6px; height:6px; background:#a0a0ff60; border-radius:50%; box-shadow:0 0 6px #a0a0ff; animation: sg-particle 15s linear infinite; }
.scn-spirit-gentle .particle-b { position:absolute; top:50%; left:70%; width:4px; height:4px; background:#a0a0ff40; border-radius:50%; box-shadow:0 0 4px #a0a0ff; animation: sg-particle 20s linear infinite 5s; }
.scn-spirit-gentle .orb { position:absolute; top:45%; left:60%; width:10px; height:10px; background:radial-gradient(circle, #c0c0ff 0%, #8080ff 100%); border-radius:50%; box-shadow:0 0 12px 6px #8080ff80; animation: sg-orb 4s ease-in-out infinite alternate; }
@keyframes sg-aura { 0% { opacity:.3; transform:translate(-50%,-50%) scale(1); } 100% { opacity:.6; transform:translate(-50%,-50%) scale(1.1); } }
@keyframes sg-spirit { 0%,100% { transform:translate(-50%,-50%) scale(1) rotate(0deg); } 50% { transform:translate(-50%,-50%) scale(1.05) rotate(1deg); } }
@keyframes sg-hands { 0%,100% { transform:translate(-50%,-50%) scale(1); } 50% { transform:translate(-50%,-50%) scale(1.1) translateX(5px); } }
@keyframes sg-particle { 0% { opacity:0; transform:translateY(0) scale(1); } 50% { opacity:.8; transform:translateY(-40px) scale(1.5); } 100% { opacity:0; transform:translateY(-80px) scale(.5); } }
@keyframes sg-orb { 0% { box-shadow:0 0 12px 6px #8080ff80; } 100% { box-shadow:0 0 24px 12px #8080ff; } }

.scn-philosophic-dog {
  background: linear-gradient(180deg, #1a120c 0%, #0d0805 50%, #060403 100%), radial-gradient(ellipse at 50% 100%, #2a1a0e 0%, transparent 70%);
}
.scn-philosophic-dog .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a120c 0%, #0d0805 100%); }
.scn-philosophic-dog .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%); }
.scn-philosophic-dog .dog-sit { position:absolute; bottom:24%; left:38%; width:45px; height:55px; background:linear-gradient(180deg, #1a0e04 0%, #0d0702 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation: pd-dog 7s ease-in-out infinite; }
.scn-philosophic-dog .scroll { position:absolute; bottom:20%; left:30%; width:35px; height:20px; background:linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 50%, #2a1508 100%); border-radius:2px; transform:rotate(-10deg); animation: pd-scroll 10s ease-in-out infinite; }
.scn-philosophic-dog .book { position:absolute; bottom:18%; left:48%; width:20px; height:15px; background:linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:2px; transform:rotate(5deg); animation: pd-book 8s ease-in-out infinite; }
.scn-philosophic-dog .lamp { position:absolute; bottom:38%; left:55%; width:8px; height:14px; background:radial-gradient(circle, #e8b84a 0%, #c08030 70%); border-radius:20% 20% 10% 10%; box-shadow:0 0 16px 6px #c08030, 0 0 32px 12px #c0803080; animation: pd-lamp 5s ease-in-out infinite alternate; }
.scn-philosophic-dog .glow { position:absolute; bottom:35%; left:50%; width:60px; height:60px; background:radial-gradient(circle, #c0803040 0%, transparent 100%); animation: pd-glow 6s ease-in-out infinite alternate; }
.scn-philosophic-dog .shadow { position:absolute; bottom:14%; left:35%; width:55px; height:8px; background:#00000040; border-radius:50%; animation: pd-shadow 7s ease-in-out infinite; }
@keyframes pd-dog { 0%,100% { transform:translate(-50%,0) rotate(0deg); } 50% { transform:translate(-50%,-1px) rotate(1deg); } }
@keyframes pd-scroll { 0%,100% { transform:rotate(-10deg) translate(0,0); } 50% { transform:rotate(-8deg) translate(0,-1px); } }
@keyframes pd-book { 0%,100% { transform:rotate(5deg) scale(1); } 50% { transform:rotate(7deg) scale(1.05); } }
@keyframes pd-lamp { 0% { opacity:.7; box-shadow:0 0 12px 4px #c08030,0 0 24px 8px #c0803060; } 100% { opacity:1; box-shadow:0 0 20px 8px #e8b84a,0 0 40px 16px #e8b84a80; } }
@keyframes pd-glow { 0% { opacity:.2; } 100% { opacity:.5; } }
@keyframes pd-shadow { 0%,100% { width:55px; opacity:.4; } 50% { width:50px; opacity:.2; } }

/* physician-and-pilot */
.scn-php {
  background: 
    linear-gradient(180deg, #2a1e18 0%, #1a1210 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 70%);
}
.scn-php .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%);
  animation: php-wall 12s ease-in-out infinite alternate;
}
.scn-php .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100e 0%, #2a1e18 100%);
  border-radius: 60% 50% 0 0 / 30% 20% 0 0;
}
.scn-php .desk {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(0deg, #4a3228 0%, #3a261e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: php-desk 20s ease-in-out infinite;
}
.scn-php .figure-doc {
  position: absolute; bottom: 30%; left: 35%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: php-figure 6s ease-in-out infinite;
}
.scn-php .lamp {
  position: absolute; bottom: 40%; left: 52%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #e8c070 0%, #c09850 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.5), 0 0 40px 12px rgba(200,150,80,.3);
  animation: php-lamp 4s ease-in-out infinite alternate;
}
.scn-php .book {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #6a4a32 0%, #4a3220 100%);
  border-radius: 10% 10% 15% 15%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: php-book 15s ease-in-out infinite;
}
.scn-php .ship-model {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%);
  clip-path: polygon(10% 60%, 90% 60%, 80% 20%, 20% 20%);
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,.7));
  animation: php-ship 8s ease-in-out infinite;
}
@keyframes php-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes php-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes php-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes php-lamp { 0% { opacity: .7; box-shadow: 0 0 12px 4px rgba(200,150,80,.4) } 50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(200,150,80,.6) } 100% { opacity: .8; box-shadow: 0 0 16px 5px rgba(200,150,80,.45) } }
@keyframes php-book { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-4deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes php-ship { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

/* art-and-interest */
.scn-ati {
  background:
    linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1e 0%, transparent 60%);
}
.scn-ati .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%);
  animation: ati-wall 15s ease-in-out infinite alternate;
}
.scn-ati .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a100e 0%, #2a1e18 100%);
  border-radius: 50% 60% 0 0 / 20% 30% 0 0;
}
.scn-ati .easel {
  position: absolute; bottom: 25%; left: 30%; width: 20%; height: 45%;
  background: linear-gradient(90deg, #4a3228 0%, #3a261e 50%, #4a3228 100%);
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  filter: drop-shadow(2px 4px 8px rgba(0,0,0,.5));
  animation: ati-easel 20s ease-in-out infinite;
}
.scn-ati .canvas {
  position: absolute; bottom: 38%; left: 33%; width: 14%; height: 30%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border: 2px solid #3a2a1e;
  border-radius: 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3);
  animation: ati-canvas 10s ease-in-out infinite;
}
.scn-ati .brush {
  position: absolute; bottom: 35%; left: 52%; width: 2%; height: 14%;
  background: linear-gradient(0deg, #6a4a32 0%, #c09860 70%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ati-brush 4s ease-in-out infinite alternate;
}
.scn-ati .figure-artist {
  position: absolute; bottom: 25%; left: 45%; width: 14%; 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: ati-figure 7s ease-in-out infinite;
}
.scn-ati .lamp {
  position: absolute; bottom: 55%; left: 60%; width: 5%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #e8c070 0%, #c09850 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,150,80,.5), 0 0 40px 15px rgba(200,150,80,.3);
  animation: ati-lamp 4.5s ease-in-out infinite alternate;
}
.scn-ati .palette {
  position: absolute; bottom: 28%; left: 38%; width: 8%; height: 5%;
  background: radial-gradient(circle, #4a3228 0%, #3a261e 60%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: ati-palette 12s ease-in-out infinite;
}
@keyframes ati-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes ati-easel { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes ati-canvas { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes ati-brush { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.02) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes ati-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ati-lamp { 0% { opacity: .6; box-shadow: 0 0 12px 4px rgba(200,150,80,.3) } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,150,80,.6) } 100% { opacity: .75; box-shadow: 0 0 18px 6px rgba(200,150,80,.4) } }
@keyframes ati-palette { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }

/* art-not-deficient */
.scn-and {
  background:
    linear-gradient(180deg, #2e221a 0%, #1e1610 50%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 70%);
}
.scn-and .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%);
  animation: and-wall 18s ease-in-out infinite alternate;
}
.scn-and .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a100e 0%, #2a1e18 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-and .pedestal {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3228 0%, #3a261e 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: and-pedestal 25s ease-in-out infinite;
}
.scn-and .sculpture {
  position: absolute; bottom: 38%; left: 43%; width: 14%; height: 24%;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #4a3a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,.6));
  animation: and-sculpture 10s ease-in-out infinite;
}
.scn-and .lamp {
  position: absolute; bottom: 50%; left: 55%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #e8c070 0%, #c09850 60%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(200,150,80,.5), 0 0 36px 12px rgba(200,150,80,.3);
  animation: and-lamp 5s ease-in-out infinite alternate;
}
.scn-and .chair {
  position: absolute; bottom: 20%; left: 58%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.4);
  animation: and-chair 14s ease-in-out infinite;
}
.scn-and .figure-observer {
  position: absolute; bottom: 20%; left: 32%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: and-figure 6.5s ease-in-out infinite;
}
@keyframes and-wall { 0% { opacity: .8 } 50% { opacity: .92 } 100% { opacity: .85 } }
@keyframes and-pedestal { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes and-sculpture { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.005) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes and-lamp { 0% { opacity: .65; box-shadow: 0 0 10px 3px rgba(200,150,80,.35) } 50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(200,150,80,.6) } 100% { opacity: .8; box-shadow: 0 0 14px 5px rgba(200,150,80,.4) } }
@keyframes and-chair { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes and-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

/* arts-look-to-subject */
.scn-als {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a1410 50%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1e 0%, transparent 60%);
}
.scn-als .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%);
  animation: als-wall 14s ease-in-out infinite alternate;
}
.scn-als .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100e 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 25% 25% 0 0;
}
.scn-als .painting-frame {
  position: absolute; bottom: 40%; left: 20%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border: 4px solid #2a1a12;
  border-radius: 2%;
  box-shadow: 0 0 20px rgba(0,0,0,.5), inset 0 0 40px rgba(0,0,0,.3);
  animation: als-frame 12s ease-in-out infinite;
}
.scn-als .figure-viewer {
  position: absolute; bottom: 35%; left: 45%; 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: als-figure 8s ease-in-out infinite;
}
.scn-als .lamp {
  position: absolute; bottom: 55%; left: 65%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #e8c070 0%, #c09850 60%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(200,150,80,.5), 0 0 36px 12px rgba(200,150,80,.3);
  animation: als-lamp 4s ease-in-out infinite alternate;
}
.scn-als .bench {
  position: absolute; bottom: 30%; left: 38%; width: 18%; height: 8%;
  background: linear-gradient(180deg, #4a3228 0%, #3a261e 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
  animation: als-bench 22s ease-in-out infinite;
}
@keyframes als-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes als-frame { 0% { transform: scale(1) } 50% { transform: scale(1.005) } 100% { transform: scale(1) } }
@keyframes als-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes als-lamp { 0% { opacity: .6; box-shadow: 0 0 10px 3px rgba(200,150,80,.3) } 50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(200,150,80,.6) } 100% { opacity: .75; box-shadow: 0 0 14px 5px rgba(200,150,80,.4) } }
@keyframes als-bench { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }

.scn-modern-objection-to-equality {
  background:
    linear-gradient(180deg, #3b2f2f 0%, #2a1e1e 40%, #1a1212 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a3a 0%, transparent 70%);
}
.scn-modern-objection-to-equality .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2e2424, #3d3030 50%, #2a1f1f);
  animation: moe-wall 12s ease-in-out infinite alternate;
}
.scn-modern-objection-to-equality .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1212, #2a1e1e);
  border-top: 2px solid #403030;
  animation: moe-floor 15s ease-in-out infinite;
}
.scn-modern-objection-to-equality .desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #6b4f3f, #4d3628);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  transform: perspective(500px) rotateX(5deg);
}
.scn-modern-objection-to-equality .bookstack {
  position: absolute; bottom: 34%; left: 35%; width: 18%; height: 16%;
  background: linear-gradient(180deg, #7a6040, #5a3f2a);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.7);
  transform: skewX(-3deg);
  animation: moe-books 8s ease-in-out infinite alternate;
}
.scn-modern-objection-to-equality .figure-silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #1a1212 0%, #0d0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scaleX(-1);
  animation: moe-figure 5s ease-in-out infinite;
}
.scn-modern-objection-to-equality .lamp-light {
  position: absolute; top: 20%; right: 20%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 100%, #e6c088 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(230,192,136,0.3);
  animation: moe-lamplight 6s ease-in-out infinite alternate;
}
.scn-modern-objection-to-equality .lamp-base {
  position: absolute; top: 36%; right: 23%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #6e5b4f, #4a3b32);
  border-radius: 40% 40% 0 0;
}
.scn-modern-objection-to-equality .shadow-fall {
  position: absolute; bottom: 22%; left: 30%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2), transparent);
  filter: blur(8px);
  animation: moe-shadow 4s ease-in-out infinite;
}
@keyframes moe-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes moe-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes moe-books { 0% { transform: skewX(-3deg) translateY(0) } 50% { transform: skewX(-1deg) translateY(-2px) } 100% { transform: skewX(-3deg) translateY(0) } }
@keyframes moe-figure { 0% { transform: translateX(-50%) scaleX(-1) rotate(-2deg) translateY(0) } 25% { transform: translateX(-48%) scaleX(-1) rotate(1deg) translateY(-2px) } 50% { transform: translateX(-50%) scaleX(-1) rotate(0deg) translateY(-1px) } 75% { transform: translateX(-52%) scaleX(-1) rotate(-1deg) translateY(-3px) } 100% { transform: translateX(-50%) scaleX(-1) rotate(-2deg) translateY(0) } }
@keyframes moe-lamplight { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(230,192,136,0.2) } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(230,192,136,0.5) } 100% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(230,192,136,0.3) } }
@keyframes moe-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

.scn-women-taught-inferiority {
  background:
    linear-gradient(180deg, #2f2823 0%, #1e1815 60%, #110e0c 100%),
    radial-gradient(ellipse at 50% 80%, #3d312a 0%, transparent 70%);
}
.scn-women-taught-inferiority .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a221e, #352b26 50%, #241d19);
  animation: wti-wall 14s ease-in-out infinite alternate;
}
.scn-women-taught-inferiority .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0f0c0a, #1e1815);
  border-top: 1px solid #3d3029;
}
.scn-women-taught-inferiority .chair {
  position: absolute; bottom: 25%; left: 40%; width: 22%; height: 28%;
  background: linear-gradient(180deg, #5a4538, #3c2d23);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateY(-5deg);
  animation: wti-chair 10s ease-in-out infinite;
}
.scn-women-taught-inferiority .figure-seated {
  position: absolute; bottom: 22%; left: 44%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wti-figure 6s ease-in-out infinite;
}
.scn-women-taught-inferiority .book-open {
  position: absolute; bottom: 30%; left: 48%; width: 12%; height: 14%;
  background: linear-gradient(135deg, #b8a48a 0%, #8e7a63 50%, #6e5b48 100%);
  border-radius: 2px 8px 2px 8px;
  transform: rotate(10deg) skewX(5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.6);
  animation: wti-book 8s ease-in-out infinite alternate;
}
.scn-women-taught-inferiority .window-frame {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  border: 6px solid #4a3a30;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  border-radius: 4px;
  animation: wti-frame 20s ease-in-out infinite;
}
.scn-women-taught-inferiority .window-glow {
  position: absolute; top: 12%; left: 12%; width: 26%; height: 36%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.15) 0%, transparent 80%);
  filter: blur(4px);
  animation: wti-glow 7s ease-in-out infinite alternate;
}
.scn-women-taught-inferiority .curtain {
  position: absolute; top: 10%; left: 8%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #5a4438, #3d2c22);
  border-radius: 0 8px 8px 0;
  filter: blur(1px);
  animation: wti-curtain 12s ease-in-out infinite alternate;
}
@keyframes wti-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes wti-chair { 0% { transform: perspective(400px) rotateY(-5deg) translateY(0) } 50% { transform: perspective(400px) rotateY(-3deg) translateY(-4px) } 100% { transform: perspective(400px) rotateY(-5deg) translateY(0) } }
@keyframes wti-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-0.5deg) } 75% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wti-book { 0% { transform: rotate(10deg) skewX(5deg) scale(1) } 50% { transform: rotate(8deg) skewX(4deg) scale(0.98) } 100% { transform: rotate(10deg) skewX(5deg) scale(1) } }
@keyframes wti-frame { 0% { border-color: #4a3a30; } 50% { border-color: #5a4a40; } 100% { border-color: #3a2a20; } }
@keyframes wti-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes wti-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }

.scn-plato-reasonable {
  background:
    linear-gradient(180deg, #3c352c 0%, #2a241d 50%, #1a150f 100%),
    radial-gradient(ellipse at 30% 40%, #4e4438 0%, transparent 60%);
}
.scn-plato-reasonable .bg-shelf {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3f33, #2d261e);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: plb-shelf 18s ease-in-out infinite alternate;
}
.scn-plato-reasonable .desk {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5c4d3d, #423528);
  border-radius: 2px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(4deg);
}
.scn-plato-reasonable .scroll {
  position: absolute; bottom: 36%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(90deg, #b8a482, #9e8a6e);
  border-radius: 0 8px 8px 0;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: plb-scroll 9s ease-in-out infinite alternate;
}
.scn-plato-reasonable .lamp-light {
  position: absolute; top: 25%; right: 25%; width: 15%; height: 20%;
  background: radial-gradient(circle at 50% 100%, #e6c088 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(230,192,136,0.3);
  animation: plb-light 7s ease-in-out infinite alternate;
}
.scn-plato-reasonable .lamp-body {
  position: absolute; top: 42%; right: 28%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6b5847, #4a3b2e);
  border-radius: 30% 30% 0 0;
}
.scn-plato-reasonable .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #1a1511 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plb-figure-left 6s ease-in-out infinite;
}
.scn-plato-reasonable .figure-right {
  position: absolute; bottom: 22%; right: 25%; width: 16%; height: 36%;
  background: linear-gradient(180deg, #15100c 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plb-figure-right 8s ease-in-out infinite;
}
.scn-plato-reasonable .shadow-pool {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 60%);
  filter: blur(10px);
  animation: plb-shadow 5s ease-in-out infinite;
}
@keyframes plb-shelf { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes plb-scroll { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes plb-light { 0% { opacity: 0.5; box-shadow: 0 0 30px 15px rgba(230,192,136,0.2) } 50% { opacity: 1; box-shadow: 0 0 70px 35px rgba(230,192,136,0.5) } 100% { opacity: 0.6; box-shadow: 0 0 40px 20px rgba(230,192,136,0.3) } }
@keyframes plb-figure-left { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes plb-figure-right { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes plb-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }

.scn-free-discussion-impossible {
  background:
    linear-gradient(180deg, #0f0b09 0%, #1a1410 30%, #2a1e18 60%, #0f0b09 100%),
    radial-gradient(ellipse at 50% 50%, #1a1410 0%, #080604 100%);
}
.scn-free-discussion-impossible .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, #1a1410 0%, #0a0705 100%);
  animation: fdi-deep 20s ease-in-out infinite alternate;
}
.scn-free-discussion-impossible .door {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 70%;
  background: linear-gradient(180deg, #3d2a20, #21140e);
  border: 4px solid #4a3028;
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateY(2deg);
  animation: fdi-door 15s ease-in-out infinite;
}
.scn-free-discussion-impossible .door-handle {
  position: absolute; bottom: 50%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #7a6a5a, #4a3a2a);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(120,100,80,0.5);
}
.scn-free-discussion-impossible .figure-standing {
  position: absolute; bottom: 10%; left: 30%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #0d0a08 0%, #050303 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fdi-figure 6s ease-in-out infinite;
}
.scn-free-discussion-impossible .hand-over-mouth {
  position: absolute; bottom: 48%; left: 34%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #1a1410, #0d0a08);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: fdi-hand 4s ease-in-out infinite alternate;
}
.scn-free-discussion-impossible .light-crack {
  position: absolute; top: 0; left: 30%; right: 30%; height: 2%;
  background: linear-gradient(90deg, transparent, rgba(220,190,160,0.2), transparent);
  filter: blur(6px);
  animation: fdi-crack 8s ease-in-out infinite;
}
.scn-free-discussion-impossible .shadow-pool {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 60%);
  filter: blur(12px);
}
.scn-free-discussion-impossible .dust-mote {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.3);
  border-radius: 50%;
  box-shadow: 10px -20px 6px rgba(200,180,150,0.2), -15px 30px 4px rgba(200,180,150,0.1);
  animation: fdi-dust 12s linear infinite;
}
@keyframes fdi-deep { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fdi-door { 0% { transform: perspective(600px) rotateY(2deg) } 50% { transform: perspective(600px) rotateY(0deg) } 100% { transform: perspective(600px) rotateY(1deg) } }
@keyframes fdi-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-0.5deg) } 75% { transform: translateY(-5px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fdi-hand { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes fdi-crack { 0% { opacity: 0.2 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes fdi-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0 } 10% { opacity: 1 } 90% { opacity: 1 } 100% { transform: translateY(-40px) translateX(20px) scale(0.5); opacity: 0 } }

/* advance-of-marriage */
.scn-advance-of-marriage {
  background:
    linear-gradient(180deg, #2b1e12 0%, #3a2a1c 30%, #452d1e 60%, #1f140b 100%),
    radial-gradient(ellipse at 50% 20%, #6b4a2e 0%, transparent 70%);
}
.scn-advance-of-marriage .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #1f140b 100%);
  animation: am-wall 12s ease-in-out infinite alternate;
}
.scn-advance-of-marriage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2d1f12 0%, #1a0f08 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-advance-of-marriage .table {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a22 0%, #3a2414 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-advance-of-marriage .book {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #7a5030 0%, #502e18 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.4);
  animation: am-book 8s ease-in-out infinite alternate;
}
.scn-advance-of-marriage .lamp-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc80 0%, #d48a40 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(255,200,120,.4), 0 0 80px 30px rgba(200,120,60,.2);
  animation: am-lamp 3s ease-in-out infinite alternate;
}
.scn-advance-of-marriage .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #140d08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure-l 5s ease-in-out infinite;
}
.scn-advance-of-marriage .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2a1e14 0%, #140d08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure-r 5s ease-in-out infinite 1s;
}
.scn-advance-of-marriage .shadow-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 50% 20%, transparent 40%, rgba(0,0,0,.4) 80%);
  pointer-events: none;
  animation: am-shadow 10s ease-in-out infinite alternate;
}
@keyframes am-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes am-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes am-lamp {
  0% { box-shadow: 0 0 30px 12px rgba(255,200,120,.3), 0 0 60px 20px rgba(200,120,60,.15); opacity: .8; }
  50% { box-shadow: 0 0 50px 20px rgba(255,220,140,.5), 0 0 100px 40px rgba(220,140,70,.25); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px rgba(255,200,120,.35), 0 0 70px 25px rgba(200,120,60,.18); opacity: .85; }
}
@keyframes am-figure-l {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes am-figure-r {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-4px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(1deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes am-shadow {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}

/* danger-in-transition */
.scn-danger-in-transition {
  background:
    linear-gradient(180deg, #1a1410 0%, #0f0b08 40%, #080503 100%),
    radial-gradient(ellipse at 40% 50%, #2a1e16 0%, transparent 70%);
}
.scn-danger-in-transition .dark-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #16110e 0%, #0a0705 100%);
  animation: dt-wall 15s ease-in-out infinite alternate;
}
.scn-danger-in-transition .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%);
  background-image: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,.3) 20px, rgba(0,0,0,.3) 22px);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-danger-in-transition .door-half {
  position: absolute; bottom: 20%; left: 18%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a1e16 0%, #140d08 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  transform: skewY(2deg);
  animation: dt-door 8s ease-in-out infinite alternate;
}
.scn-danger-in-transition .candle-stand {
  position: absolute; bottom: 15%; left: 55%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 2px;
}
.scn-danger-in-transition .flame-glow {
  position: absolute; bottom: 42%; left: 55%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #ff8840 0%, #cc4400 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px #cc4400, 0 0 60px 24px rgba(200,68,0,.3);
  animation: dt-flame 2s ease-in-out infinite alternate;
}
.scn-danger-in-transition .figure-shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0a0705 0%, #030201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt-figure 6s ease-in-out infinite;
}
.scn-danger-in-transition .chain-hook {
  position: absolute; top: 15%; left: 60%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: dt-chain 4s ease-in-out infinite alternate;
}
@keyframes dt-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes dt-door {
  0% { transform: skewY(2deg) translateX(0); }
  50% { transform: skewY(0deg) translateX(3px); }
  100% { transform: skewY(2deg) translateX(0); }
}
@keyframes dt-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(.9); opacity: .7; }
}
@keyframes dt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-3deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dt-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

/* modern-speculations */
.scn-modern-speculations {
  background:
    linear-gradient(180deg, #1e1e2a 0%, #14141e 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-modern-speculations .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e2a 0%, #14141e 100%);
  animation: ms-wall 18s ease-in-out infinite alternate;
}
.scn-modern-speculations .desktop {
  position: absolute; bottom: 15%; left: 50%; width: 160px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #221810 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-modern-speculations .book-stack {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ms-book 10s ease-in-out infinite alternate;
}
.scn-modern-speculations .globe {
  position: absolute; bottom: 24%; left: 58%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 30%, #6a8a4a 0%, #2a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: ms-globe 20s linear infinite;
}
.scn-modern-speculations .candle {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 2px;
}
.scn-modern-speculations .figure-seated {
  position: absolute; bottom: 12%; left: 50%; width: 28px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e1a 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-figure 6s ease-in-out infinite;
}
.scn-modern-speculations .inkwell {
  position: absolute; bottom: 18%; left: 44%; width: 10px; height: 12px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30%;
}
.scn-modern-speculations .curtain {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  filter: blur(2px);
  animation: ms-curtain 15s ease-in-out infinite alternate;
}
@keyframes ms-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes ms-book {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ms-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ms-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ms-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(.95); }
}

/* american-experiments */
.scn-american-experiments {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #242424 30%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 40%, #2c2c2c 0%, transparent 80%);
}
.scn-american-experiments .meeting-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #111111 100%);
  animation: ae-wall 20s ease-in-out infinite alternate;
}
.scn-american-experiments .wood-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #140d08 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-american-experiments .table-long {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 3px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-american-experiments .paper-scroll {
  position: absolute; bottom: 26%; left: 42%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8b890 0%, #a08860 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: ae-paper 14s ease-in-out infinite alternate;
}
.scn-american-experiments .lantern {
  position: absolute; bottom: 34%; left: 50%; width: 16px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #ffd060 0%, #c08040 60%, transparent 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,.3), 0 0 60px 20px rgba(192,128,64,.15);
  animation: ae-lantern 4s ease-in-out infinite alternate;
}
.scn-american-experiments .figure-a {
  position: absolute; bottom: 14%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e1a 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-fig-a 7s ease-in-out infinite;
}
.scn-american-experiments .figure-b {
  position: absolute; bottom: 14%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e1a 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-fig-b 7s ease-in-out infinite 2s;
}
.scn-american-experiments .figure-c {
  position: absolute; bottom: 14%; right: 30%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a1e1a 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-fig-c 7s ease-in-out infinite 4s;
}
.scn-american-experiments .chair-empty {
  position: absolute; bottom: 16%; right: 22%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ae-chair 12s ease-in-out infinite alternate;
}
@keyframes ae-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ae-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ae-lantern {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,96,.2), 0 0 40px 16px rgba(192,128,64,.1); opacity: .8; }
  50% { box-shadow: 0 0 40px 16px rgba(255,220,120,.4), 0 0 80px 30px rgba(220,140,70,.2); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,208,96,.25), 0 0 50px 20px rgba(192,128,64,.12); opacity: .85; }
}
@keyframes ae-fig-a {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(-2deg); }
  50% { transform: translateX(12px) rotate(0deg); }
  75% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ae-fig-b {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ae-fig-c {
  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 ae-chair {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}

.scn-campanella-religion {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #4e372a 100%), radial-gradient(ellipse at 50% 30%, #6b4d3a 0%, transparent 60%);
}
.scn-campanella-religion .bg-warm {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3528 0%, transparent 100%);
  animation: cr-bg 12s ease-in-out infinite alternate;
}
.scn-campanella-religion .arch {
  position: absolute; top: 5%; left: 50%; width: 70%; height: 45%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #3d2b22 0%, #1a100c 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: cr-arch 20s ease-in-out infinite alternate;
}
.scn-campanella-religion .figure-magistrate {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1f1a 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,0.5);
  animation: cr-figure 8s ease-in-out infinite;
}
.scn-campanella-religion .desk {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3f2e 0%, #3a271c 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: cr-desk 12s ease-in-out infinite alternate;
}
.scn-campanella-religion .book {
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #7a5e42 0%, #4a3422 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cr-book 6s ease-in-out infinite;
}
.scn-campanella-religion .light-beam {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,170,130,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: cr-beam 8s ease-in-out infinite alternate;
}
.scn-campanella-religion .glow-particles {
  position: absolute; top: 30%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e8d0a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,180,140,0.3);
  animation: cr-particle 5s ease-in-out infinite;
}

@keyframes cr-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cr-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes cr-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes cr-desk { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(0.98); } }
@keyframes cr-book { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cr-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes cr-particle { 0%,100% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.5); opacity:1; } }

.scn-campanella-confession {
  background: linear-gradient(180deg, #1e1a16 0%, #2d241f 50%, #3b2d26 100%), radial-gradient(ellipse at 50% 40%, #4a3528 0%, transparent 70%);
}
.scn-campanella-confession .bg-dim {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a221d 0%, transparent 100%);
  animation: cc-bg 15s ease-in-out infinite alternate;
}
.scn-campanella-confession .altar {
  position: absolute; bottom:22%; left:50%; width: 70px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4f38 0%, #3a281c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cc-altar 14s ease-in-out infinite alternate;
}
.scn-campanella-confession .flame {
  position: absolute; bottom:30%; left:50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e09840 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 100% 100% 60% 60%;
  box-shadow: 0 0 30px 8px #e09840, 0 0 60px 20px rgba(224,152,64,0.4);
  animation: cc-flame 2s ease-in-out infinite alternate;
}
.scn-campanella-confession .priest {
  position: absolute; bottom:20%; left:48%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1f1813 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: cc-priest 10s ease-in-out infinite;
}
.scn-campanella-confession .congregation-left {
  position: absolute; bottom:22%; left:30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1411 0%, #0a0705 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cc-cong 12s ease-in-out infinite alternate;
}
.scn-campanella-confession .congregation-right {
  position: absolute; bottom:22%; right:30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1411 0%, #0a0705 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: cc-cong 12s ease-in-out infinite alternate reverse;
}
.scn-campanella-confession .light-rays {
  position: absolute; top:10%; left:30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(200,170,130,0.2) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  animation: cc-rays 9s ease-in-out infinite alternate;
}

@keyframes cc-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cc-altar { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } 100% { transform: translateX(-50%) scaleX(0.99); } }
@keyframes cc-flame { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes cc-priest { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes cc-cong { 0% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-3deg); } }
@keyframes cc-rays { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-campanella-details {
  background: linear-gradient(180deg, #2a211c 0%, #3a2e26 40%, #4a3a30 100%), radial-gradient(ellipse at 50% 60%, #5a4538 0%, transparent 70%);
}
.scn-campanella-details .bg-chamber {
  position: absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3f3027 0%, transparent 100%);
  animation: cd-bg 18s ease-in-out infinite alternate;
}
.scn-campanella-details .table {
  position: absolute; bottom:22%; left:50%; width: 80px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4232 0%, #3a281c 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.5);
  animation: cd-table 20s ease-in-out infinite alternate;
}
.scn-campanella-details .cup-left {
  position: absolute; bottom:28%; left:40%; width: 10px; height: 14px;
  background: linear-gradient(135deg, #7a5e42 0%, #4a3422 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cd-cup 7s ease-in-out infinite;
}
.scn-campanella-details .cup-right {
  position: absolute; bottom:28%; right:40%; width: 10px; height: 14px;
  background: linear-gradient(135deg, #7a5e42 0%, #4a3422 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cd-cup 7s ease-in-out infinite reverse;
}
.scn-campanella-details .plate {
  position: absolute; bottom:25%; left:50%; width: 28px; height: 6px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #6a4f38 0%, #3a281c 100%);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: cd-plate 12s ease-in-out infinite alternate;
}
.scn-campanella-details .figure-diner {
  position: absolute; bottom:20%; left:42%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1411 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(2deg);
  animation: cd-figure 9s ease-in-out infinite;
}
.scn-campanella-details .lamp {
  position: absolute; top:15%; left:50%; width: 10px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #e8c080 0%, #b08040 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 8px #c09050, 0 0 80px 20px rgba(192,144,80,0.3);
  animation: cd-lamp 4s ease-in-out infinite alternate;
}
.scn-campanella-details .curtain {
  position: absolute; top:0; left:10%; width: 10px; height: 100%;
  background: linear-gradient(180deg, #3a251a 0%, #1f140e 100%);
  border-radius: 4px;
  animation: cd-curtain 30s ease-in-out infinite alternate;
}

@keyframes cd-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cd-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } 100% { transform: translateX(-50%) scaleX(0.99); } }
@keyframes cd-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes cd-plate { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes cd-figure { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(0deg); } }
@keyframes cd-lamp { 0% { opacity:0.6; box-shadow: 0 0 30px 6px #c09050; } 50% { opacity:1; box-shadow: 0 0 50px 10px #e8c080; } 100% { opacity:0.7; box-shadow: 0 0 35px 8px #c09050; } }
@keyframes cd-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.02); } }

.scn-campanella-more-scholars {
  background: linear-gradient(180deg, #1c1a1a 0%, #2a2422 40%, #3a322e 100%), radial-gradient(ellipse at 50% 20%, #4a3e36 0%, transparent 70%);
}
.scn-campanella-more-scholars .bg-study {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2c2623 0%, transparent 100%);
  animation: cm-bg 16s ease-in-out infinite alternate;
}
.scn-campanella-more-scholars .window-stars {
  position: absolute; top:8%; left:60%; width: 40px; height: 50px;
  background: radial-gradient(circle at 30% 40%, #aab8c8 0%, transparent 60%), radial-gradient(circle at 70% 20%, #b0c4d8 0%, transparent 50%), radial-gradient(circle at 50% 60%, #c0d0e0 0%, transparent 40%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(200,210,230,0.2);
  animation: cm-window 20s ease-in-out infinite alternate;
}
.scn-campanella-more-scholars .desk {
  position: absolute; bottom:22%; left:50%; width: 60px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: cm-desk 14s ease-in-out infinite alternate;
}
.scn-campanella-more-scholars .book-open {
  position: absolute; bottom:25%; left:48%; width: 20px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #7a6350 0%, #4a3828 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cm-book 8s ease-in-out infinite;
}
.scn-campanella-more-scholars .scholar {
  position: absolute; bottom:20%; left:42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1f1813 0%, #0d0a08 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform: rotate(3deg);
  animation: cm-scholar 11s ease-in-out infinite;
}
.scn-campanella-more-scholars .lamp-glow {
  position: absolute; top:12%; left:35%; width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #f0d4a0 0%, #c09050 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px #c09050, 0 0 80px 20px rgba(192,144,80,0.3);
  animation: cm-lamp 5s ease-in-out infinite alternate;
}
.scn-campanella-more-scholars .spark {
  position: absolute; top:20%; left:30%; width: 4px; height: 4px;
  background: radial-gradient(circle, #f0d080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,208,128,0.6);
  animation: cm-spark 3s ease-in-out infinite;
}

@keyframes cm-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cm-window { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes cm-desk { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } 100% { transform: translateX(-50%) scaleX(0.99); } }
@keyframes cm-book { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(3deg); } 75% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes cm-scholar { 0%,100% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-1px) rotate(0deg); } }
@keyframes cm-lamp { 0% { opacity:0.5; box-shadow: 0 0 30px 6px #c09050; } 50% { opacity:1; box-shadow: 0 0 50px 10px #f0d4a0; } 100% { opacity:0.6; box-shadow: 0 0 35px 8px #c09050; } }
@keyframes cm-spark { 0%,100% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-8px) scale(1.8); opacity:1; } }

.scn-objection-to-socratic-method { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e06 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%); height: 100%; }
.scn-objection-to-socratic-method .room-bg { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: soc-dark 18s ease-in-out infinite alternate; }
.scn-objection-to-socratic-method .wall-light { position: absolute; top: 0; left: 10%; width: 80%; height: 70%; background: radial-gradient(ellipse at 50% 20%, #6a5a3a 0%, transparent 80%); opacity: 0.3; animation: soc-light 12s ease-in-out infinite alternate; }
.scn-objection-to-socratic-method .window { position: absolute; top: 18%; left: 38%; width: 30px; height: 40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border: 3px solid #2a1a0a; border-radius: 4px 4px 2px 2px; box-shadow: inset 0 0 12px #1a0e06; animation: soc-glint 9s ease-in-out infinite; }
.scn-objection-to-socratic-method .desk { position: absolute; bottom: 28%; left: 25%; width: 120px; height: 14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: soc-desk 14s ease-in-out infinite alternate; }
.scn-objection-to-socratic-method .chair { position: absolute; bottom: 30%; left: 48%; width: 30px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform-origin: bottom center; animation: soc-chair 16s ease-in-out infinite; }
.scn-objection-to-socratic-method .figure { position: absolute; bottom: 32%; left: 50%; width: 22px; height: 48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc-figure 6s ease-in-out infinite alternate; }
.scn-objection-to-socratic-method .lamp-glow { position: absolute; bottom: 40%; left: 42%; width: 20px; height: 20px; background: radial-gradient(circle, #d4aa50 0%, #b08040 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.4); animation: soc-lamp 5s ease-in-out infinite alternate; }
@keyframes soc-dark { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes soc-light { 0% { transform: scale(1); opacity: 0.25; } 50% { transform: scale(1.05); opacity: 0.4; } 100% { transform: scale(0.98); opacity: 0.3; } }
@keyframes soc-glint { 0% { opacity: 0.6; box-shadow: inset 0 0 8px #1a0e06; } 50% { opacity: 0.9; box-shadow: inset 0 0 20px #4a3a2a; } 100% { opacity: 0.7; box-shadow: inset 0 0 12px #1a0e06; } }
@keyframes soc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes soc-chair { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes soc-figure { 0% { transform: rotate(0deg) translateY(0) scale(1); } 50% { transform: rotate(-1deg) translateY(-1px) scale(1.02); } 100% { transform: rotate(1deg) translateY(0) scale(1); } }
@keyframes soc-lamp { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.3); } 50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 35px 12px #d4aa50, 0 0 70px 20px rgba(212,170,80,0.5); } 100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 25px 8px #b08040, 0 0 50px 16px rgba(176,128,64,0.35); } }

.scn-uselessness-of-philosophers { background: linear-gradient(180deg, #3a3028 0%, #2a2018 50%, #1a1410 100%), radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, transparent 70%); height: 100%; }
.scn-uselessness-of-philosophers .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; animation: phil-wall 20s ease-in-out infinite alternate; }
.scn-uselessness-of-philosophers .desk-bg { position: absolute; bottom: 30%; left: 15%; width: 140px; height: 18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: phil-desk 16s ease-in-out infinite alternate; }
.scn-uselessness-of-philosophers .book1 { position: absolute; bottom: 35%; left: 20%; width: 24px; height: 32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(5deg); animation: phil-book1 12s ease-in-out infinite; }
.scn-uselessness-of-philosophers .book2 { position: absolute; bottom: 33%; left: 30%; width: 20px; height: 26px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(-3deg); animation: phil-book2 14s ease-in-out infinite reverse; }
.scn-uselessness-of-philosophers .figure-sitting { position: absolute; bottom: 30%; left: 48%; width: 26px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: phil-figure 7s ease-in-out infinite alternate; }
.scn-uselessness-of-philosophers .candle { position: absolute; bottom: 34%; left: 42%; width: 8px; height: 16px; background: linear-gradient(180deg, #e8d8a0 0%, #c8b880 60%, #5a4a2a 100%); border-radius: 2px; animation: phil-candle 3s ease-in-out infinite; }
.scn-uselessness-of-philosophers .candle-glow { position: absolute; bottom: 36%; left: 40%; width: 24px; height: 24px; background: radial-gradient(circle, #f0d080 0%, #d4a850 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 12px #d4a850, 0 0 80px 20px rgba(212,168,80,0.3); animation: phil-glow 4s ease-in-out infinite alternate; }
@keyframes phil-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes phil-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes phil-book1 { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes phil-book2 { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes phil-figure { 0% { transform: rotate(0deg) translateY(0) scale(1); } 50% { transform: rotate(-2deg) translateY(-2px) scale(1.03); } 100% { transform: rotate(2deg) translateY(0) scale(1); } }
@keyframes phil-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.9) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes phil-glow { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 30px 8px #d4a850, 0 0 60px 16px rgba(212,168,80,0.3); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 50px 16px #f0d080, 0 0 100px 24px rgba(240,208,128,0.5); } 100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 35px 10px #d4a850, 0 0 70px 18px rgba(212,168,80,0.35); } }

.scn-corruptio-optimi-pessima { background: linear-gradient(180deg, #2a2820 0%, #1a1810 40%, #0a0808 100%), radial-gradient(ellipse at 50% 70%, #3a3020 0%, transparent 70%); height: 100%; }
.scn-corruptio-optimi-pessima .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 0 0 20% 20%; animation: cor-wall 22s ease-in-out infinite alternate; }
.scn-corruptio-optimi-pessima .pedestal { position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: cor-pedestal 18s ease-in-out infinite alternate; }
.scn-corruptio-optimi-pessima .statue { position: absolute; bottom: 55%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4); animation: cor-statue 10s ease-in-out infinite; }
.scn-corruptio-optimi-pessima .crack1 { position: absolute; bottom: 52%; left: 47%; width: 3px; height: 20px; background: #1a0e06; transform: rotate(-15deg); animation: cor-crack1 14s ease-in-out infinite; }
.scn-corruptio-optimi-pessima .crack2 { position: absolute; bottom: 56%; left: 52%; width: 2px; height: 12px; background: #1a0e06; transform: rotate(20deg); animation: cor-crack2 16s ease-in-out infinite reverse; }
.scn-corruptio-optimi-pessima .shadow { position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); border-radius: 50%; animation: cor-shadow 12s ease-in-out infinite alternate; }
.scn-corruptio-optimi-pessima .particle { position: absolute; top: 20%; left: 30%; width: 6px; height: 6px; background: radial-gradient(circle, #9a8a7a 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: cor-particle 20s linear infinite; }
@keyframes cor-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes cor-pedestal { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cor-statue { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(1); } }
@keyframes cor-crack1 { 0% { opacity: 0.3; transform: scaleY(1) rotate(-15deg); } 50% { opacity: 0.8; transform: scaleY(1.1) rotate(-14deg); } 100% { opacity: 0.4; transform: scaleY(0.95) rotate(-15deg); } }
@keyframes cor-crack2 { 0% { opacity: 0.2; transform: scaleY(1) rotate(20deg); } 50% { opacity: 0.7; transform: scaleY(1.2) rotate(21deg); } 100% { opacity: 0.3; transform: scaleY(0.9) rotate(20deg); } }
@keyframes cor-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.6; } 50% { transform: scaleX(1.1) translateX(-5px); opacity: 0.8; } 100% { transform: scaleX(0.95) translateX(3px); opacity: 0.65; } }
@keyframes cor-particle { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 0.8; } 80% { opacity: 0.8; } 100% { transform: translate(-40px, -30px) scale(0.5); opacity: 0; } }

.scn-power-of-public-opinion { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, transparent 70%); height: 100%; }
.scn-power-of-public-opinion .bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: pow-bg 24s ease-in-out infinite alternate; }
.scn-power-of-public-opinion .figure-center { position: absolute; bottom: 30%; left: 50%; width: 24px; height: 54px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #1a0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: pow-figure 8s ease-in-out infinite alternate; }
.scn-power-of-public-opinion .hand-left { position: absolute; bottom: 38%; left: 25%; width: 40px; height: 16px; background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 0 50% 50% 0 / 0 70% 70% 0; transform-origin: right center; animation: pow-hand-left 5s ease-in-out infinite; }
.scn-power-of-public-opinion .hand-right { position: absolute; bottom: 38%; right: 25%; width: 40px; height: 16px; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 100%); border-radius: 50% 0 0 50% / 70% 0 0 70%; transform-origin: left center; animation: pow-hand-right 5s ease-in-out infinite reverse; }
.scn-power-of-public-opinion .murmur1 { position: absolute; top: 10%; left: 20%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(90,80,70,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: pow-murmur1 12s ease-in-out infinite; }
.scn-power-of-public-opinion .murmur2 { position: absolute; top: 15%; right: 15%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(90,80,70,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: pow-murmur2 18s ease-in-out infinite reverse; }
.scn-power-of-public-opinion .shadow { position: absolute; bottom: 26%; left: 35%; width: 100px; height: 18px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%); border-radius: 50%; animation: pow-shadow 10s ease-in-out infinite alternate; }
@keyframes pow-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes pow-figure { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(-2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(2deg) scale(0.98); } }
@keyframes pow-hand-left { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.15); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes pow-hand-right { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(1.15); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes pow-murmur1 { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(10px, -5px) scale(1.2); opacity: 0.6; } 100% { transform: translate(-5px, 3px) scale(0.9); opacity: 0.4; } }
@keyframes pow-murmur2 { 0% { transform: translate(0,0) scale(1); opacity: 0.2; } 50% { transform: translate(-8px, -10px) scale(1.3); opacity: 0.5; } 100% { transform: translate(6px, 2px) scale(0.95); opacity: 0.3; } }
@keyframes pow-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: translateX(5px) scaleX(1.1); opacity: 0.8; } 100% { transform: translateX(-3px) scaleX(0.95); opacity: 0.65; } }

.scn-myth-of-er-iron-truth {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 50%),
    linear-gradient(180deg, #1a1a2e 0%, #2c2a3a 40%, #1e1c28 100%);
}
.scn-myth-of-er-iron-truth .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1c2a 70%);
  animation: ite-wall 12s ease-in-out infinite alternate;
}
.scn-myth-of-er-iron-truth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1a12 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
}
.scn-myth-of-er-iron-truth .table {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ite-table 8s ease-in-out infinite;
}
.scn-myth-of-er-iron-truth .scales-pan {
  position: absolute; bottom: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ite-scale 6s ease-in-out infinite alternate;
}
.scn-myth-of-er-iron-truth .scales-pan.left  { left: calc(50% - 50px); }
.scn-myth-of-er-iron-truth .scales-pan.right { right: calc(50% - 50px); }
.scn-myth-of-er-iron-truth .scales-pan.right { animation-delay: 0.1s; }
.scn-myth-of-er-iron-truth .scales-beam {
  position: absolute; bottom: calc(30% + 20px); left: 50%; width: 100px; height: 4px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a5a4a, #8a7a6a, #6a5a4a);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ite-beam 6s ease-in-out infinite alternate;
}
.scn-myth-of-er-iron-truth .figure {
  position: absolute; bottom: 24%; left: 50%; width: 24px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ite-figure 10s ease-in-out infinite;
}
.scn-myth-of-er-iron-truth .lamp-glow {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8b060 0%, #c08030 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,128,48,0.4);
  animation: ite-glow 4s ease-in-out infinite alternate;
}
.scn-myth-of-er-iron-truth .lamp-body {
  position: absolute; bottom: 38%; left: 30%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #604830 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
@keyframes ite-wall     { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ite-table    { 0%, 100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } }
@keyframes ite-scale    { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ite-beam     { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ite-figure   { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ite-glow     { 0% { box-shadow: 0 0 30px 10px rgba(192,128,48,0.3); transform: scale(0.95); } 50% { box-shadow: 0 0 50px 20px rgba(232,176,96,0.5); transform: scale(1.05); } 100% { box-shadow: 0 0 35px 12px rgba(192,128,48,0.35); transform: scale(1); } }

.scn-myth-of-er-bad-choice {
  background:
    radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #0e0e1a 0%, #1a121e 40%, #0e0a12 100%);
}
.scn-myth-of-er-bad-choice .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a121e 0%, #0e0a14 100%);
  animation: bcd-wall 10s ease-in-out infinite alternate;
}
.scn-myth-of-er-bad-choice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1410 0%, #0a0605 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-myth-of-er-bad-choice .throne {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: bcd-throne 14s ease-in-out infinite;
}
.scn-myth-of-er-bad-choice .figure-weeping {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%) translateY(-5px);
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0e0a0a 70%);
  border-radius: 50% 50% 40% 40%;
  animation: bcd-weep 5s ease-in-out infinite;
}
.scn-myth-of-er-bad-choice .crown-broken {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 12px;
  transform: translateX(-50%) rotate(15deg);
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3820 50%, #3a2818 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 70% 80%, 50% 100%, 30% 80%, 0% 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bcd-crown 8s ease-in-out infinite;
}
.scn-myth-of-er-bad-choice .shadow-dark {
  position: absolute; bottom: 14%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: bcd-shadow 9s ease-in-out infinite alternate;
}
.scn-myth-of-er-bad-choice .chain-left,
.scn-myth-of-er-bad-choice .chain-right {
  position: absolute; bottom: 26%; width: 6px; height: 60px;
  background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  animation: bcd-chain 3s ease-in-out infinite;
}
.scn-myth-of-er-bad-choice .chain-left  { left: calc(50% - 60px); }
.scn-myth-of-er-bad-choice .chain-right { right: calc(50% - 60px); }
.scn-myth-of-er-bad-choice .chain-right { animation-delay: 0.4s; }
@keyframes bcd-wall     { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes bcd-throne   { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } }
@keyframes bcd-weep     { 0% { transform: translateX(-50%) translateY(-5px) rotate(-2deg); } 25% { transform: translateX(-48%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-7px) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-4px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(-5px) rotate(1deg); } }
@keyframes bcd-crown    { 0%, 100% { transform: translateX(-50%) rotate(15deg) scale(1); } 50% { transform: translateX(-50%) rotate(10deg) scale(0.9); } }
@keyframes bcd-shadow   { 0% { transform: translateX(-50%) scaleX(0.9); opacity: 0.5; } 50% { transform: translateX(-50%) scaleX(1.1); opacity: 0.8; } 100% { transform: translateX(-50%) scaleX(0.95); opacity: 0.6; } }
@keyframes bcd-chain    { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(4px) rotate(3deg); } }

.scn-myth-of-er-philosophy {
  background:
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 50%),
    linear-gradient(180deg, #2a1e12 0%, #3a2a1a 30%, #1e1410 100%);
}
.scn-myth-of-er-philosophy .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 70%);
  animation: phl-wall 14s ease-in-out infinite alternate;
}
.scn-myth-of-er-philosophy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-myth-of-er-philosophy .desk {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: phl-desk 9s ease-in-out infinite;
}
.scn-myth-of-er-philosophy .book-open {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: phl-book 7s ease-in-out infinite alternate;
}
.scn-myth-of-er-philosophy .figure-scholar {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: phl-figure 11s ease-in-out infinite;
}
.scn-myth-of-er-philosophy .candle-glow {
  position: absolute; bottom: 40%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e8c060 0%, #c89840 30%, transparent 65%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(232,192,96,0.5);
  animation: phl-candle-glow 3s ease-in-out infinite alternate;
}
.scn-myth-of-er-philosophy .candle-body {
  position: absolute; bottom: 40%; left: 60%; width: 12px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09870 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
@keyframes phl-wall       { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes phl-desk       { 0%, 100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } }
@keyframes phl-book       { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(0.95); } 50% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 100% { transform: translateX(-50%) rotate(2deg) scaleY(0.95); } }
@keyframes phl-figure     { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes phl-candle-glow { 0% { box-shadow: 0 0 20px 8px rgba(232,192,96,0.3); transform: scale(0.9); } 50% { box-shadow: 0 0 40px 16px rgba(232,192,96,0.6); transform: scale(1.05); } 100% { box-shadow: 0 0 25px 10px rgba(232,192,96,0.35); transform: scale(1); } }

.scn-myth-of-er-spectacle {
  background:
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 50%),
    linear-gradient(180deg, #2a1e18 0%, #1e1410 40%, #0e0a08 100%);
}
.scn-myth-of-er-spectacle .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1410 0%, #0e0a08 70%);
  animation: spc-wall 15s ease-in-out infinite alternate;
}
.scn-myth-of-er-spectacle .stage {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-myth-of-er-spectacle .central-light {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #e8c860 0%, #c89840 20%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(232,200,96,0.3);
  animation: spc-light 6s ease-in-out infinite alternate;
}
.scn-myth-of-er-spectacle .soul {
  position: absolute; bottom: 28%;
  height: 40px; width: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: spc-soul 14s ease-in-out infinite;
}
.scn-myth-of-er-spectacle .left-silhouette   { left: calc(50% - 80px); animation-delay: 0s; }
.scn-myth-of-er-spectacle .center-silhouette { left: calc(50% - 8px); animation-delay: 0.5s; }
.scn-myth-of-er-spectacle .right-silhouette  { left: calc(50% + 60px); animation-delay: 1s; }
.scn-myth-of-er-spectacle .small-silhouette  { bottom: 30%; left: calc(50% - 40px); height: 30px; width: 12px; animation-delay: 1.5s; transform: scale(0.8); }
.scn-myth-of-er-spectacle .halo {
  position: absolute; top: 3%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(232,200,96,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: spc-halo 8s ease-in-out infinite alternate;
}
@keyframes spc-wall  { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes spc-light { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.6; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; } }
@keyframes spc-soul  { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(3px) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes spc-halo  { 0% { transform: translateX(-50%) scale(1); opacity: 0.1; } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.3; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.15; } }

/* swift-aristotle — funny, dim-interior */
.scn-swift-aristotle {
  background:
    linear-gradient(180deg, #2a2418 0%, #1c1610 40%, #0e0a06 100%),
    radial-gradient(ellipse at 30% 20%, #3d3224 0%, transparent 60%);
}
.scn-swift-aristotle .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3d3224 0%, #241e14 100%); border-radius:0 0 60% 60% / 0 0 20% 20%; }
.scn-swift-aristotle .desk { position:absolute; bottom:18%; left:20%; right:18%; height:12%; background: linear-gradient(180deg, #4a3a28 0%, #2c2014 100%); border-radius:6px; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-swift-aristotle .figure-body { position:absolute; bottom:28%; left:38%; width:48px; height:72px; background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-body 2s ease-in-out infinite; }
.scn-swift-aristotle .figure-arm { position:absolute; bottom:50%; left:46%; width:24px; height:10px; background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%); border-radius:50% 50% 0 0; transform-origin: left center; animation: sc2-arm 1.2s ease-in-out infinite alternate; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-swift-aristotle .flying-book { position:absolute; bottom:48%; left:10%; width:36px; height:24px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sc2-book 4s ease-in-out infinite; }
.scn-swift-aristotle .stack-books { position:absolute; bottom:24%; left:56%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5), inset 0 -4px 0 #3a2818; }
.scn-swift-aristotle .lamp-glow { position:absolute; bottom:34%; right:22%; width:14px; height:18px; background: radial-gradient(circle, #d4a060 0%, #b08040 70%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 8px #b08040, 0 0 60px 16px rgba(176,128,64,.3); animation: sc2-lamp 3s ease-in-out infinite alternate; }
.scn-swift-aristotle .shadow { position:absolute; bottom:18%; left:34%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(4px); animation: sc2-shadow 2s ease-in-out infinite; }
@keyframes sc2-body { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes sc2-arm { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes sc2-book { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } 25% { transform: translateX(40px) translateY(-20px) rotate(30deg) scale(.9); } 50% { transform: translateX(80px) translateY(-10px) rotate(60deg) scale(1); } 75% { transform: translateX(120px) translateY(-30px) rotate(90deg) scale(.95); } 100% { transform: translateX(160px) translateY(0) rotate(120deg) scale(1); opacity:.6; } }
@keyframes sc2-lamp { 0% { box-shadow: 0 0 20px 4px #b08040, 0 0 40px 10px rgba(176,128,64,.3); opacity:.8; } 50% { box-shadow: 0 0 36px 10px #d4a060, 0 0 60px 18px rgba(212,160,96,.5); opacity:1; } 100% { box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,.35); opacity:.85; } }
@keyframes sc2-shadow { 0%,100% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(.8); opacity:.7; } }

/* criticisms-on-education — calm, dim-interior */
.scn-criticisms-on-education {
  background:
    linear-gradient(180deg, #2c3028 0%, #1e201a 40%, #10120c 100%),
    radial-gradient(ellipse at 40% 30%, #4a4a3a 0%, transparent 70%);
}
.scn-criticisms-on-education .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a2e 0%, #24241a 100%); border-radius:0 0 40% 40% / 0 0 10% 10%; }
.scn-criticisms-on-education .desk { position:absolute; bottom:20%; left:18%; right:18%; height:14%; background: linear-gradient(180deg, #5a4a36 0%, #3a2e20 100%); border-radius:8px; box-shadow: inset 0 6px 14px rgba(0,0,0,.5); }
.scn-criticisms-on-education .scroll { position:absolute; bottom:30%; left:32%; width:70px; height:16px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sc3-scroll 8s ease-in-out infinite alternate; }
.scn-criticisms-on-education .book-stack { position:absolute; bottom:28%; right:30%; width:44px; height:36px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3822 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.4), inset 0 -6px 0 #3a2818, inset 0 -12px 0 rgba(74,56,34,.3); }
.scn-criticisms-on-education .scholar { position:absolute; bottom:26%; left:38%; width:42px; height:64px; background: linear-gradient(180deg, #6a5a42 0%, #3a2e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-scholar 6s ease-in-out infinite; }
.scn-criticisms-on-education .lamp { position:absolute; bottom:34%; left:24%; width:12px; height:16px; background: radial-gradient(circle, #c8b060 0%, #a08840 70%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 28px 6px #a08840, 0 0 50px 14px rgba(160,136,64,.3); animation: sc3-lamp 4s ease-in-out infinite alternate; }
.scn-criticisms-on-education .warm-haze { position:absolute; inset:10% 20% 20% 20%; background: radial-gradient(ellipse at 40% 40%, rgba(200,184,120,.15) 0%, transparent 60%); filter: blur(12px); animation: sc3-haze 10s ease-in-out infinite alternate; }
@keyframes sc3-scroll { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(.5deg); } 100% { transform: translateX(0) rotate(-.5deg); } }
@keyframes sc3-scholar { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } }
@keyframes sc3-lamp { 0% { box-shadow: 0 0 20px 4px #a08840, 0 0 40px 8px rgba(160,136,64,.2); opacity:.85; } 50% { box-shadow: 0 0 36px 10px #d4c080, 0 0 60px 18px rgba(212,192,128,.4); opacity:1; } 100% { box-shadow: 0 0 24px 6px #a08840, 0 0 48px 12px rgba(160,136,64,.25); opacity:.9; } }
@keyframes sc3-haze { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.05); } 100% { opacity:.4; transform: scale(.98); } }

/* aim-to-train-reason — calm, dim-interior / abstract */
.scn-aim-to-train-reason {
  background:
    linear-gradient(180deg, #1a1e2a 0%, #242838 40%, #2e3248 100%),
    radial-gradient(ellipse at 50% 60%, #3a4058 0%, transparent 70%);
}
.scn-aim-to-train-reason .bg-deep { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2e3448 0%, #1a1e2a 100%); border-radius:0 0 50% 50% / 0 0 15% 15%; }
.scn-aim-to-train-reason .thinker { position:absolute; bottom:22%; left:42%; width:44px; height:68px; background: linear-gradient(180deg, #4a4e5a 0%, #282c38 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-thinker 5s ease-in-out infinite; }
.scn-aim-to-train-reason .shape-a { position:absolute; bottom:55%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #7a8aa8 0%, #4a5a78 100%); border-radius:50%; filter: blur(1px); animation: sc4-shape-a 12s ease-in-out infinite; box-shadow: 0 0 12px 4px rgba(74,90,120,.4); }
.scn-aim-to-train-reason .shape-b { position:absolute; bottom:60%; right:26%; width:16px; height:16px; background: linear-gradient(135deg, #8a9abc 0%, #5a6a88 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: sc4-shape-b 14s ease-in-out infinite alternate; filter: blur(1px); }
.scn-aim-to-train-reason .shape-c { position:absolute; bottom:50%; left:55%; width:18px; height:18px; background: radial-gradient(circle, #9aaac8 0%, #6a7a98 100%); border-radius:30% 70% 70% 30% / 30% 30% 70% 70%; animation: sc4-shape-c 16s ease-in-out infinite; filter: blur(1px); }
.scn-aim-to-train-reason .beam-left { position:absolute; bottom:30%; left:28%; width:2px; height:40%; background: linear-gradient(0deg, transparent 0%, rgba(160,180,220,.2) 50%, transparent 100%); animation: sc4-beam 6s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-aim-to-train-reason .beam-right { position:absolute; bottom:30%; right:28%; width:2px; height:40%; background: linear-gradient(0deg, transparent 0%, rgba(160,180,220,.15) 50%, transparent 100%); animation: sc4-beam 7s ease-in-out infinite alternate-reverse; transform-origin: bottom center; }
@keyframes sc4-thinker { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes sc4-shape-a { 0% { transform: translateY(0) scale(1) rotate(0deg); opacity:.5; } 33% { transform: translateY(-8px) scale(1.1) rotate(30deg); opacity:.8; } 66% { transform: translateY(-4px) scale(.9) rotate(-10deg); opacity:.6; } 100% { transform: translateY(-12px) scale(1) rotate(20deg); opacity:.5; } }
@keyframes sc4-shape-b { 0% { transform: translateY(0) scale(1) rotate(0deg); opacity:.4; } 50% { transform: translateY(-14px) scale(1.2) rotate(45deg); opacity:.7; } 100% { transform: translateY(-6px) scale(.95) rotate(90deg); opacity:.5; } }
@keyframes sc4-shape-c { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:.3; } 33% { transform: translateY(-10px) rotate(120deg) scale(1.1); opacity:.6; } 66% { transform: translateY(-5px) rotate(240deg) scale(.9); opacity:.5; } 100% { transform: translateY(-15px) rotate(360deg) scale(1); opacity:.4; } }
@keyframes sc4-beam { 0% { transform: scaleY(.8); opacity:.3; } 50% { transform: scaleY(1.2); opacity:.7; } 100% { transform: scaleY(.9); opacity:.4; } }

/* citizens-not-experienced — calm, dim-interior / wide horizon */
.scn-citizens-not-experienced {
  background:
    linear-gradient(180deg, #1a2028 0%, #2a3240 50%, #3a4458 100%),
    radial-gradient(ellipse at 30% 80%, #2a3240 0%, transparent 60%);
}
.scn-citizens-not-experienced .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a3440 0%, #1a2028 100%); animation: sc5-sky 15s ease-in-out infinite alternate; }
.scn-citizens-not-experienced .distant-city { position:absolute; bottom:40%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #3a4250 0%, #2a3240 100%); clip-path: polygon(5% 100%, 10% 20%, 15% 100%, 25% 100%, 30% 30%, 35% 100%, 45% 100%, 50% 10%, 55% 100%, 65% 100%, 70% 25%, 75% 100%, 85% 100%, 90% 15%, 95% 100%); opacity:.4; animation: sc5-city 20s ease-in-out infinite alternate; filter: blur(2px); }
.scn-citizens-not-experienced .path { position:absolute; bottom:10%; left:25%; right:25%; height:35%; background: linear-gradient(180deg, #3a3a30 0%, #1e1e16 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-citizens-not-experienced .pilgrim-a { position:absolute; bottom:22%; left:30%; width:16px; height:32px; background: linear-gradient(180deg, #4a3e32 0%, #2a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc5-pilgrim-a 8s ease-in-out infinite; }
.scn-citizens-not-experienced .pilgrim-b { position:absolute; bottom:22%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #3a3228 0%, #1e1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc5-pilgrim-b 9s ease-in-out infinite 2s; }
.scn-citizens-not-experienced .guiding-light { position:absolute; bottom:38%; left:52%; width:20px; height:20px; background: radial-gradient(circle, #b8c8d8 0%, #8898a8 60%); border-radius:50%; box-shadow: 0 0 40px 10px #8898a8, 0 0 80px 20px rgba(136,152,168,.3); animation: sc5-light 4s ease-in-out infinite alternate; }
.scn-citizens-not-experienced .cloud-slow { position:absolute; top:12%; left:60%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,210,220,.3) 0%, rgba(200,210,220,.05) 100%); border-radius:50%; filter: blur(8px); animation: sc5-cloud 45s linear infinite; }
@keyframes sc5-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sc5-city { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.5; transform: translateY(-2px); } 100% { opacity:.35; transform: translateY(0); } }
@keyframes sc5-pilgrim-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(0deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes sc5-pilgrim-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes sc5-light { 0% { box-shadow: 0 0 30px 6px #8898a8, 0 0 60px 14px rgba(136,152,168,.2); opacity:.7; } 50% { box-shadow: 0 0 50px 14px #b0c0d0, 0 0 80px 24px rgba(176,192,208,.4); opacity:1; } 100% { box-shadow: 0 0 36px 8px #8898a8, 0 0 70px 18px rgba(136,152,168,.25); opacity:.8; } }
@keyframes sc5-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* most-brutal-transaction */
.scn-most-brutal-transaction {
  background:
    linear-gradient(180deg, #1c0d14 0%, #2a121a 30%, #3d1e2a 60%, #1c0d14 100%),
    radial-gradient(ellipse at 50% 0%, #4a2a3a 0%, transparent 70%);
}
.scn-most-brutal-transaction .bt-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1822 0%, #1c0d14 100%);
  border-bottom: 2px solid #5e3a4a;
  animation: bt-wall 12s ease-in-out infinite alternate;
}
.scn-most-brutal-transaction .bt-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a22 0%, #120a0e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-most-brutal-transaction .bt-altar {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a4a 0%, #3a2020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: bt-altar 8s ease-in-out infinite;
}
.scn-most-brutal-transaction .bt-figure {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a22 0%, #120a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bt-figure 6s ease-in-out infinite;
}
.scn-most-brutal-transaction .bt-veil {
  position: absolute; bottom: 42%; left: 45%; width: 60px; height: 30px;
  transform: translateX(-10px);
  background: linear-gradient(180deg, rgba(180,140,160,0.3) 0%, rgba(180,140,160,0.1) 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(3px);
  animation: bt-veil 9s ease-in-out infinite alternate;
}
.scn-most-brutal-transaction .bt-lantern {
  position: absolute; bottom: 52%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e0a080 0%, #c07050 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 4px #c07050, 0 0 40px 8px rgba(192,112,80,0.3);
  animation: bt-lantern 4s ease-in-out infinite alternate;
}
.scn-most-brutal-transaction .bt-bar {
  position: absolute; bottom: 50%; left: 30%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5e3a4a 0%, #2a1822 100%);
  border-radius: 2px;
  animation: bt-bar 7s ease-in-out infinite;
}
@keyframes bt-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bt-altar { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes bt-figure { 0%, 100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } }
@keyframes bt-veil { 0% { transform: translateX(-10px) rotate(-5deg) } 50% { transform: translateX(-15px) rotate(0deg) } 100% { transform: translateX(-5px) rotate(5deg) } }
@keyframes bt-lantern { 0% { opacity: 0.7; box-shadow: 0 0 15px 2px #c07050 } 50% { opacity: 1; box-shadow: 0 0 25px 6px #e0a080 } 100% { opacity: 0.8; box-shadow: 0 0 18px 3px #c07050 } }
@keyframes bt-bar { 0%, 100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } }

/* physiologist-and-life */
.scn-physiologist-and-life {
  background:
    linear-gradient(180deg, #1e2a1e 0%, #2a362a 30%, #3a4a3a 60%, #1e2a1e 100%),
    radial-gradient(ellipse at 50% 0%, #4a5a4a 0%, transparent 70%);
}
.scn-physiologist-and-life .pl-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a3a2a 0%, #1e2a1e 100%);
  border-bottom: 2px solid #4a6a4a;
  animation: pl-wall 15s ease-in-out infinite alternate;
}
.scn-physiologist-and-life .pl-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-physiologist-and-life .pl-desk {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 8px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pl-desk 10s ease-in-out infinite;
}
.scn-physiologist-and-life .pl-chair {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: pl-chair 8s ease-in-out infinite;
}
.scn-physiologist-and-life .pl-figure {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pl-figure 6s ease-in-out infinite;
}
.scn-physiologist-and-life .pl-lamp {
  position: absolute; bottom: 55%; left: 35%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #e0c080 0%, #b09050 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #b09050, 0 0 60px 15px rgba(176,144,80,0.3);
  animation: pl-lamp 4s ease-in-out infinite alternate;
}
.scn-physiologist-and-life .pl-books {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: pl-books 7s ease-in-out infinite;
}
.scn-physiologist-and-life .pl-window {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border: 2px solid #4a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,150,100,0.1);
  animation: pl-window 20s ease-in-out infinite alternate;
}
@keyframes pl-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pl-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pl-chair { 0%, 100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes pl-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pl-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px #b09050 } 50% { opacity: 1; box-shadow: 0 0 35px 10px #e0c080 } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px #b09050 } }
@keyframes pl-books { 0%, 100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes pl-window { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }

/* moral-expansion-of-physical */
.scn-moral-expansion-of-physical {
  background:
    linear-gradient(180deg, #0a1220 0%, #162440 30%, #1e3060 60%, #0a1220 100%),
    radial-gradient(ellipse at 50% 50%, #2a4a6a 0%, transparent 70%);
}
.scn-moral-expansion-of-physical .me-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a2a40 0%, transparent 50%, #0a1220 100%);
  animation: me-bg 20s ease-in-out infinite alternate;
}
.scn-moral-expansion-of-physical .me-figure {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 4px rgba(74,106,138,0.3);
  animation: me-figure 8s ease-in-out infinite;
}
.scn-moral-expansion-of-physical .me-aura-1 {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(100,150,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: me-aura-1 6s ease-in-out infinite alternate;
}
.scn-moral-expansion-of-physical .me-aura-2 {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(100,150,200,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: me-aura-2 10s ease-in-out infinite alternate;
}
.scn-moral-expansion-of-physical .me-ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a40 0%, #0a1220 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-moral-expansion-of-physical .me-spark {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,230,255,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,230,255,0.3);
  animation: me-spark 4s ease-in-out infinite;
}
@keyframes me-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes me-figure { 0%, 100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.03) } }
@keyframes me-aura-1 { 0% { transform: translateX(-50%) scale(0.8); opacity: 0.5 } 50% { transform: translateX(-50%) scale(1); opacity: 0.7 } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.6 } }
@keyframes me-aura-2 { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.3 } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.5 } 100% { transform: translateX(-50%) scale(1); opacity: 0.4 } }
@keyframes me-spark { 0%, 100% { opacity: 0; transform: translateY(0) } 50% { opacity: 0.8; transform: translateY(-20px) } }

/* mind-reappearing */
.scn-mind-reappearing {
  background:
    linear-gradient(180deg, #0a0a12 0%, #141420 30%, #1e1e30 60%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a40 0%, transparent 70%);
}
.scn-mind-reappearing .mr-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #141420 50%, #1a1a2a 100%);
  border-bottom: 2px solid #3a3a5a;
  animation: mr-wall 14s ease-in-out infinite alternate;
}
.scn-mind-reappearing .mr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-mind-reappearing .mr-door {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: mr-door 16s ease-in-out infinite;
}
.scn-mind-reappearing .mr-figure {
  position: absolute; bottom: 30%; left: 48%; width: 24px; height: 55px;
  transform: translateX(-50%) scaleX(-1);
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: mr-figure 8s ease-in-out infinite;
}
.scn-mind-reappearing .mr-light {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #e0c080 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 10px rgba(224,192,128,0.4);
  animation: mr-light 5s ease-in-out infinite alternate;
}
.scn-mind-reappearing .mr-shadow {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mr-shadow 9s ease-in-out infinite alternate;
}
.scn-mind-reappearing .mr-clock {
  position: absolute; top: 8%; right: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: mr-clock 12s linear infinite;
}
@keyframes mr-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes mr-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes mr-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } }
@keyframes mr-light { 0% { opacity: 0.4; box-shadow: 0 0 20px 4px rgba(224,192,128,0.2) } 50% { opacity: 0.8; box-shadow: 0 0 50px 15px rgba(224,192,128,0.5) } 100% { opacity: 0.5; box-shadow: 0 0 30px 8px rgba(224,192,128,0.3) } }
@keyframes mr-shadow { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 0.5; transform: scale(1) } 100% { opacity: 0.3; transform: scale(0.9) } }
@keyframes mr-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-imitation-vs-inheritance {
  background: linear-gradient(180deg, #2c2018 0%, #3d2b1f 40%, #4a3424 100%), radial-gradient(ellipse at 50% 100%, #4a3424 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-imitation-vs-inheritance .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2c2018 0%, #3d2b1f 100%); }
.scn-imitation-vs-inheritance .window { position: absolute; top: 10%; left: 20%; width: 40%; height: 35%; background: linear-gradient(180deg, rgba(180,150,120,0.3) 0%, rgba(100,80,60,0.1) 100%); border: 4px solid #5a3e28; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: im-window 12s ease-in-out infinite alternate; }
.scn-imitation-vs-inheritance .desk { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-imitation-vs-inheritance .lamp { position: absolute; bottom: 25%; left: 50%; width: 6px; height: 12px; transform: translateX(-50%); background: #a08060; border-radius: 4px; }
.scn-imitation-vs-inheritance .lamp::after { content: ''; position: absolute; bottom: -8px; left: -6px; width: 18px; height: 18px; background: radial-gradient(circle, #d4a060 0%, transparent 70%); border-radius: 50%; animation: im-lamp 5s ease-in-out infinite alternate; }
.scn-imitation-vs-inheritance .parent-sil { position: absolute; bottom: 17%; left: 25%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-parent 6s ease-in-out infinite alternate; }
.scn-imitation-vs-inheritance .child-sil { position: absolute; bottom: 17%; left: 55%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-child 6s ease-in-out infinite alternate 0.5s; }
.scn-imitation-vs-inheritance .book { position: absolute; bottom: 16%; left: 48%; width: 30px; height: 8px; background: #6a4a2a; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: im-book 8s ease-in-out infinite alternate; }

@keyframes im-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes im-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1.05); } }
@keyframes im-parent { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes im-child { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes im-book { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-8deg); } }

.scn-breeding-for-tenacity {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3520 100%), radial-gradient(ellipse at 30% 80%, #4a3520 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-breeding-for-tenacity .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 100%); }
.scn-breeding-for-tenacity .bookshelf { position: absolute; top: 5%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #4a3520 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); }
.scn-breeding-for-tenacity .bookshelf::before { content: ''; position: absolute; top: 20%; left: 10%; width: 80%; height: 4px; background: #5a4030; border-radius: 2px; }
.scn-breeding-for-tenacity .bookshelf::after { content: ''; position: absolute; top: 55%; left: 10%; width: 80%; height: 4px; background: #5a4030; border-radius: 2px; }
.scn-breeding-for-tenacity .desk { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-breeding-for-tenacity .lamp { position: absolute; bottom: 28%; left: 40%; width: 6px; height: 10px; background: #a08060; border-radius: 3px; }
.scn-breeding-for-tenacity .lamp::after { content: ''; position: absolute; bottom: -6px; left: -5px; width: 16px; height: 16px; background: radial-gradient(circle, #d4a060 0%, transparent 70%); border-radius: 50%; animation: br-lamp 4s ease-in-out infinite alternate; }
.scn-breeding-for-tenacity .figure-seated { position: absolute; bottom: 18%; left: 30%; width: 25px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-figure 8s ease-in-out infinite alternate; }
.scn-breeding-for-tenacity .dog { position: absolute; bottom: 18%; left: 55%; width: 30px; height: 20px; background: #4a3a2a; border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: br-dog 6s ease-in-out infinite alternate; }

@keyframes br-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.8; transform: scale(1.1); } }
@keyframes br-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes br-dog { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-not-by-platonic-device {
  background: linear-gradient(180deg, #1e1814 0%, #2a2018 40%, #3a2a1a 100%), radial-gradient(ellipse at 60% 70%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-not-by-platonic-device .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #1e1814 0%, #2a2018 100%); }
.scn-not-by-platonic-device .pedestal { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 40px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-not-by-platonic-device .bust { position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%); width: 30px; height: 40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pl-bust 10s ease-in-out infinite alternate; }
.scn-not-by-platonic-device .scroll { position: absolute; bottom: 22%; left: 35%; width: 50px; height: 10px; background: #6a5a3a; border-radius: 4px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: pl-scroll 12s ease-in-out infinite alternate; }
.scn-not-by-platonic-device .lamp { position: absolute; bottom: 30%; left: 20%; width: 6px; height: 12px; background: #a08060; border-radius: 3px; }
.scn-not-by-platonic-device .lamp::after { content: ''; position: absolute; bottom: -8px; left: -6px; width: 18px; height: 18px; background: radial-gradient(circle, #d4a060 0%, transparent 70%); border-radius: 50%; animation: pl-lamp 5s ease-in-out infinite alternate; }
.scn-not-by-platonic-device .shadow { position: absolute; bottom: 20%; left: 48%; width: 50px; height: 10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: pl-shadow 10s ease-in-out infinite alternate; }

@keyframes pl-bust { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes pl-scroll { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-12deg); } }
@keyframes pl-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1.05); } }
@keyframes pl-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-like-father-like-son {
  background: linear-gradient(180deg, #2c2018 0%, #3d2b1f 40%, #4a3424 100%), radial-gradient(ellipse at 40% 50%, #4a3424 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-like-father-like-son .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2c2018 0%, #3d2b1f 100%); }
.scn-like-father-like-son .mirror-frame { position: absolute; top: 10%; left: 25%; width: 50%; height: 45%; border: 6px solid #5a3e28; border-radius: 4px; background: linear-gradient(180deg, rgba(80,60,40,0.2) 0%, transparent 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3); animation: fa-mirror 15s ease-in-out infinite alternate; }
.scn-like-father-like-son .father-sil { position: absolute; bottom: 30%; left: 32%; width: 28px; height: 65px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-father 8s ease-in-out infinite alternate; }
.scn-like-father-like-son .son-sil { position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-son 8s ease-in-out infinite alternate 1s; }
.scn-like-father-like-son .ground { position: absolute; bottom: 20%; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #4a3424 0%, #3a2a1a 100%); border-radius: 4px; }
.scn-like-father-like-son .lamp { position: absolute; bottom: 28%; left: 20%; width: 6px; height: 12px; background: #a08060; border-radius: 3px; }
.scn-like-father-like-son .lamp::after { content: ''; position: absolute; bottom: -8px; left: -6px; width: 18px; height: 18px; background: radial-gradient(circle, #d4a060 0%, transparent 70%); border-radius: 50%; animation: fa-lamp 5s ease-in-out infinite alternate; }
.scn-like-father-like-son .rug { position: absolute; bottom: 20%; left: 25%; right: 25%; height: 6%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 50% / 100% 100% 0 0; transform: scaleX(1.2); animation: fa-rug 12s ease-in-out infinite alternate; }

@keyframes fa-mirror { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fa-father { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fa-son { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(4px) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fa-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.8; transform: scale(1.1); } }
@keyframes fa-rug { 0% { transform: scaleX(1.2); } 50% { transform: scaleX(1.25); } 100% { transform: scaleX(1.15); } }

/* Scene: gymnastics-and-diet (calm, bright interior) */
.scn-gymnastics-and-diet {
  background: linear-gradient(180deg, #f0e6d0 0%, #d9c9a5 60%, #b8a88a 100%), radial-gradient(ellipse at 80% 20%, rgba(255,235,200,0.3) 0%, transparent 60%);
}
.scn-gymnastics-and-diet .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #e8ddc0 0%, #f5edde 50%, #e0d4b5 100%); 
  animation: gd-wall 12s ease-in-out infinite alternate;
}
.scn-gymnastics-and-diet .window-frame {
  position: absolute; top: 8%; left: 25%; width: 120px; height: 150px;
  background: linear-gradient(135deg, #c8b088 0%, #a0845c 100%); border: 6px solid #7a5f3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.3);
}
.scn-gymnastics-and-diet .sunbeam {
  position: absolute; top: 8%; left: 25%; width: 120px; height: 150px;
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, rgba(255,240,180,0.1) 80%);
  filter: blur(8px); animation: gd-sunbeam 8s ease-in-out infinite alternate;
}
.scn-gymnastics-and-diet .figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4a37a 0%, #b8845a 50%, #9a6a44 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: gd-stretch 4s ease-in-out infinite;
}
.scn-gymnastics-and-diet .mat {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #6b8a6b 0%, #4a6a4a 100%); border-radius: 10px; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gd-mat 6s ease-in-out infinite;
}
.scn-gymnastics-and-diet .plant {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 30% 20%, #5a7a3a 0%, #3a5a2a 60%, transparent 70%);
  border-radius: 40% 60% 30% 70% / 60% 40% 60% 40%;
  animation: gd-sway 5s ease-in-out infinite alternate;
}
.scn-gymnastics-and-diet .book {
  position: absolute; bottom: 12%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b04030 0%, #8a2a1a 100%); border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4); transform: rotate(-10deg);
  animation: gd-book 10s ease-in-out infinite;
}
@keyframes gd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gd-sunbeam { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes gd-stretch { 0% { transform: translateY(0) rotate(-5deg) scaleY(1); } 25% { transform: translateY(-8px) rotate(5deg) scaleY(1.1); } 50% { transform: translateY(-5px) rotate(0deg) scaleY(0.95); } 75% { transform: translateY(-10px) rotate(-3deg) scaleY(1.05); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes gd-mat { 0%,100% { transform: translateX(0); } 50% { transform: translateX(8px); } }
@keyframes gd-sway { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes gd-book { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } }

/* Scene: homeric-medicine (calm, dim interior - firelit) */
.scn-homeric-medicine {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1c 40%, #4a3322 100%), radial-gradient(ellipse at 60% 50%, rgba(200,120,60,0.15) 0%, transparent 70%);
}
.scn-homeric-medicine .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: hm-wall 15s ease-in-out infinite alternate;
}
.scn-homeric-medicine .fireplace {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a5038 0%, #3a2a1a 100%); border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 30px rgba(200,100,30,0.5); 
}
.scn-homeric-medicine .healer {
  position: absolute; bottom: 20%; left: 45%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 50%, #7a5a3a 100%);
  border-radius: 40% 50% 30% 50% / 60% 40% 50% 50%;
  transform-origin: bottom center; animation: hm-heal 5s ease-in-out infinite;
}
.scn-homeric-medicine .wounded {
  position: absolute; bottom: 18%; left: 55%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #c8a080 0%, #a07858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg);
  animation: hm-wound 4s ease-in-out infinite alternate;
}
.scn-homeric-medicine .cup {
  position: absolute; bottom: 22%; left: 58%; width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 20%, #c8a040 0%, #a08030 60%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: hm-cup 6s ease-in-out infinite;
}
.scn-homeric-medicine .blanket {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 10px;
  animation: hm-blanket 8s ease-in-out infinite alternate;
}
.scn-homeric-medicine .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: hm-shadow 10s ease-in-out infinite;
}
@keyframes hm-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hm-heal { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm-wound { 0% { transform: rotate(15deg) scale(1); } 100% { transform: rotate(10deg) scale(1.02); } }
@keyframes hm-cup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hm-blanket { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }
@keyframes hm-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: phocylides-maxim (funny, dim interior - firelit with bouncy mood) */
.scn-phocylides-maxim {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1c 40%, #4a3322 100%), radial-gradient(ellipse at 70% 30%, rgba(220,160,80,0.3) 0%, transparent 60%);
}
.scn-phocylides-maxim .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  animation: pm-bg 14s ease-in-out infinite alternate;
}
.scn-phocylides-maxim .table {
  position: absolute; bottom: 25%; left: 20%; width: 140px; height: 8px;
  background: linear-gradient(90deg, #6a5040 0%, #8a6a50 50%, #6a5040 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pm-table 3s ease-in-out infinite;
}
.scn-phocylides-maxim .coins {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0b040 0%, #b08830 60%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(220,170,60,0.5);
  animation: pm-coin 2s ease-in-out infinite alternate;
}
.scn-phocylides-maxim .figure-rich {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #a04028 60%, #7a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pm-rich 4s ease-in-out infinite;
}
.scn-phocylides-maxim .figure-virtue {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4a37a 0%, #b8845a 50%, #9a6a44 100%);
  border-radius: 40% 50% 30% 50% / 60% 40% 50% 50%;
  animation: pm-virtue 6s ease-in-out infinite alternate;
}
.scn-phocylides-maxim .glow {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: pm-glow 3s ease-in-out infinite alternate;
}
@keyframes pm-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pm-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes pm-coin { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-6px) rotate(180deg); } }
@keyframes pm-rich { 0% { transform: translateY(0) rotate(-3deg) scale(1); } 25% { transform: translateY(-5px) rotate(3deg) scale(1.05); } 50% { transform: translateY(-2px) rotate(0deg) scale(0.95); } 75% { transform: translateY(-8px) rotate(-2deg) scale(1.1); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes pm-virtue { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pm-glow { 0% { opacity: 0.2; } 100% { opacity: 0.8; } }

/* Scene: pindar-story (calm, dim interior - temple)
   Use muted ambers and deep blues. No reds. */
.scn-pindar-story {
  background: linear-gradient(180deg, #1a2233 0%, #2a3344 40%, #3a4455 100%), radial-gradient(ellipse at 50% 30%, rgba(160,180,200,0.1) 0%, transparent 70%);
}
.scn-pindar-story .bg-temple {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a3344 0%, #1a2233 100%);
  animation: ps-bg 20s ease-in-out infinite alternate;
}
.scn-pindar-story .altar {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); 
  animation: ps-altar 8s ease-in-out infinite;
}
.scn-pindar-story .asclepius {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 50%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ps-asclepius 5s ease-in-out infinite;
}
.scn-pindar-story .thunderbolt {
  position: absolute; top: 10%; left: 50%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #c8b040 0%, #a08830 60%, transparent 100%);
  clip-path: polygon(50% 0%, 60% 30%, 50% 70%, 40% 30%);
  animation: ps-bolt 3s ease-in-out infinite alternate;
}
.scn-pindar-story .rich-man {
  position: absolute; bottom: 18%; left: 55%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #c8a080 0%, #a07858 100%);
  border-radius: 40% 50% 30% 50% / 60% 40% 50% 50%;
  animation: ps-rich 6s ease-in-out infinite alternate;
}
.scn-pindar-story .aura {
  position: absolute; top: 5%; left: 35%; width: 100px; height: 120px;
  background: radial-gradient(circle, rgba(200,180,140,0.2) 0%, transparent 70%);
  filter: blur(12px); animation: ps-aura 10s ease-in-out infinite;
}
@keyframes ps-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ps-altar { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ps-asclepius { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-bolt { 0% { opacity: 0.3; transform: scaleY(0.5); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(0.8); } }
@keyframes ps-rich { 0% { transform: translateX(0); } 100% { transform: translateX(-8px); } }
@keyframes ps-aura { 0% { opacity: 0.2; transform: scale(0.9); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-adeimantus-objection {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #e8d4a8 50%, #dcc89a 100%),
    radial-gradient(ellipse at 30% 40%, #fff8e7 0%, transparent 60%);
}
.scn-adeimantus-objection .bg-room { position:absolute; inset:0;}
.scn-adeimantus-objection .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c9b78a 0%, #a18f66 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-adeimantus-objection .col-left { position:absolute; bottom:20%; left:10%; width:18px; height:70%; background: linear-gradient(90deg, #d4c4a0 0%, #b8a883 50%, #a08e69 100%); border-radius: 6px 6px 0 0; box-shadow: 4px 0 10px rgba(0,0,0,.2); animation: ade-col 6s ease-in-out infinite alternate; }
.scn-adeimantus-objection .col-right { position:absolute; bottom:20%; right:10%; width:18px; height:70%; background: linear-gradient(270deg, #d4c4a0 0%, #b8a883 50%, #a08e69 100%); border-radius: 6px 6px 0 0; box-shadow: -4px 0 10px rgba(0,0,0,.2); animation: ade-col 6s ease-in-out infinite alternate-reverse; }
.scn-adeimantus-objection .podium { position:absolute; bottom:28%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b8a883 0%, #8c7a5a 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: ade-podium 8s ease-in-out infinite alternate; }
.scn-adeimantus-objection .speaker { position:absolute; bottom:30%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ade-speaker 3s ease-in-out infinite; }
.scn-adeimantus-objection .shadow { position:absolute; bottom:28%; left:45%; width:60px; height:10px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(3px); animation: ade-shadow 3s ease-in-out infinite; }
.scn-adeimantus-objection .light-beam { position:absolute; top:0; left:20%; right:20%; height:100%; background: linear-gradient(180deg, rgba(255,248,231,.15) 0%, rgba(255,248,231,.05) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: ade-light 4s ease-in-out infinite alternate; }
@keyframes ade-col { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ade-podium { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ade-speaker { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 75% { transform: translateX(-52%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ade-shadow { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(4px) scaleX(1.1); } 50% { transform: translateX(0) scaleX(1.2); } 75% { transform: translateX(-4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ade-light { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

.scn-war-and-alliances {
  background: 
    linear-gradient(135deg, #e8dcc0 0%, #d4c4a0 50%, #bfaf8a 100%),
    radial-gradient(ellipse at 60% 30%, #f5eec8 0%, transparent 60%);
}
.scn-war-and-alliances .bg-tent { position:absolute; inset:0; background: linear-gradient(180deg, #d9c89a 0%, #c4b38a 100%); }
.scn-war-and-alliances .table { position:absolute; bottom:20%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #b8a070 0%, #8c7850 100%); border-radius: 12px 12px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: war-table 12s ease-in-out infinite alternate; }
.scn-war-and-alliances .map { position:absolute; bottom:22%; left:25%; right:25%; height:12%; background: linear-gradient(135deg, #dcc8a0 0%, #b8a070 50%, #e8d4b0 100%); border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,.15); animation: war-map 18s ease-in-out infinite alternate; }
.scn-war-and-alliances .figure-left { position:absolute; bottom:18%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: war-figure-l 6s ease-in-out infinite; }
.scn-war-and-alliances .figure-right { position:absolute; bottom:18%; right:15%; width:30px; height:60px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: war-figure-r 6s ease-in-out infinite reverse; }
.scn-war-and-alliances .goblet { position:absolute; bottom:21%; left:43%; width:12px; height:16px; background: linear-gradient(180deg, #c8b890 0%, #a09070 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: war-goblet 9s ease-in-out infinite; }
.scn-war-and-alliances .flag { position:absolute; top:10%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: war-flag 4s ease-in-out infinite alternate; }
@keyframes war-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes war-map { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes war-figure-l { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes war-figure-r { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes war-goblet { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes war-flag { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }

.scn-size-of-state {
  background: 
    linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 20% 60%, #4a4a5a 0%, transparent 60%);
}
.scn-size-of-state .bg-darkroom { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2e 0%, #141422 100%); }
.scn-size-of-state .window-glow { position:absolute; top:10%; left:30%; right:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #6a7a8a 0%, transparent 70%); animation: size-window 15s ease-in-out infinite alternate; }
.scn-size-of-state .desk { position:absolute; bottom:18%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-size-of-state .scroll { position:absolute; bottom:22%; left:35%; right:35%; height:10%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: size-scroll 20s ease-in-out infinite alternate; }
.scn-size-of-state .quill { position:absolute; bottom:24%; left:60%; width:4px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: bottom center; animation: size-quill 6s ease-in-out infinite; }
.scn-size-of-state .inkwell { position:absolute; bottom:20%; left:55%; width:14px; height:18px; background: #222; border-radius: 4px 4px 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: size-ink 12s ease-in-out infinite alternate; }
.scn-size-of-state .figure-write { position:absolute; bottom:16%; left:42%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: size-figure 8s ease-in-out infinite; }
@keyframes size-window { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .3; } }
@keyframes size-scroll { 0% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes size-quill { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(-20deg) translateY(0); } 75% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes size-ink { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes size-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-education-covers-all {
  background: 
    linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
    radial-gradient(ellipse at 30% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-education-covers-all .bg-library { position:absolute; inset:0; background: linear-gradient(180deg, #2e1e12 0%, #1e1208 100%); }
.scn-education-covers-all .shelf { position:absolute; top:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3); }
.scn-education-covers-all .book-left { position:absolute; top:20%; left:25%; width:16px; height:20%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 2px 0 6px rgba(0,0,0,.4); animation: edu-book-l 10s ease-in-out infinite alternate; }
.scn-education-covers-all .book-right { position:absolute; top:20%; right:25%; width:16px; height:18%; background: linear-gradient(135deg, #5a5a3a 0%, #3a3a1a 100%); border-radius: 2px; box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: edu-book-r 12s ease-in-out infinite alternate-reverse; }
.scn-education-covers-all .lamp { position:absolute; bottom:35%; left:20%; width:14px; height:24px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 0 20px 6px rgba(200,150,80,.3), 0 0 40px 12px rgba(200,150,80,.15); animation: edu-lamp 4s ease-in-out infinite alternate; }
.scn-education-covers-all .desk-book { position:absolute; bottom:18%; left:30%; right:30%; height:12%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: edu-book-open 20s ease-in-out infinite alternate; }
.scn-education-covers-all .reader { position:absolute; bottom:14%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edu-reader 9s ease-in-out infinite; }
@keyframes edu-book-l { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes edu-book-r { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1.02); } }
@keyframes edu-lamp { 0% { opacity: .8; box-shadow: 0 0 12px 4px rgba(200,150,80,.2), 0 0 24px 8px rgba(200,150,80,.1); } 50% { opacity: 1; box-shadow: 0 0 24px 8px rgba(200,150,80,.4), 0 0 48px 16px rgba(200,150,80,.2); } 100% { opacity: .9; box-shadow: 0 0 16px 6px rgba(200,150,80,.3), 0 0 32px 12px rgba(200,150,80,.15); } }
@keyframes edu-book-open { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.03) rotate(1deg); } 100% { transform: scaleX(0.97) rotate(-1deg); } }
@keyframes edu-reader { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* thrasymachus-roars */
.scn-thrasymachus-roars {
  background: linear-gradient(135deg, #1a1210 0%, #2a1f1a 40%, #1e1410 70%, #0d0806 100%), radial-gradient(ellipse at 60% 20%, #4a2e1a 0%, transparent 60%);
}
.scn-thrasymachus-roars .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #31241e 0%, #1e1612 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-thrasymachus-roars .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2c1f18 0%, #1a120e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-thrasymachus-roars .lamp {
  position: absolute; top: 8%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e8a040 0%, #b06020 50%, #3a1a08 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 20px #c07020, 0 0 120px 40px rgba(192,112,32,0.3);
  animation: tr-lamp 6s ease-in-out infinite alternate;
}
.scn-thrasymachus-roars .shadow.left {
  position: absolute; bottom: 25%; left: 5%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #0d0806 0%, transparent 100%);
  border-radius: 0 50% 50% 0;
  filter: blur(8px);
  animation: tr-shadow 12s ease-in-out infinite alternate;
}
.scn-thrasymachus-roars .shadow.right {
  position: absolute; bottom: 20%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(225deg, #0d0806 0%, transparent 100%);
  border-radius: 50% 0 0 50%;
  filter: blur(10px);
  animation: tr-shadow 14s ease-in-out infinite alternate-reverse;
}
.scn-thrasymachus-roars .thrasymachus {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  transform: rotate(-5deg);
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
  animation: tr-figure 4s ease-in-out infinite;
}
.scn-thrasymachus-roars .socrates {
  position: absolute; bottom: 28%; left: 55%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #a09070 0%, #6a5e44 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: tr-socrates 5s ease-in-out infinite;
}
.scn-thrasymachus-roars .table {
  position: absolute; bottom: 18%; left: 42%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-thrasymachus-roars .cup {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tr-cup 8s ease-in-out infinite alternate;
}
@keyframes tr-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.9 } 50% { transform: translateX(-50%) scaleY(1.02); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.85 } }
@keyframes tr-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes tr-figure { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-7deg) translateY(-2px) } 50% { transform: rotate(-3deg) translateY(1px) } 75% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tr-socrates { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-3px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes tr-cup { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }

/* thrasymachus-demands-clarity */
.scn-thrasymachus-demands-clarity {
  background: linear-gradient(160deg, #1c1310 0%, #2a1e1a 30%, #1a100e 60%, #0a0604 100%), radial-gradient(ellipse at 40% 30%, #3a2216 0%, transparent 60%);
}
.scn-thrasymachus-demands-clarity .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c201c 0%, #1a120e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-thrasymachus-demands-clarity .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a14 0%, #120a08 100%);
  border-radius: 40% 20% 0 0 / 30% 10% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.6);
}
.scn-thrasymachus-demands-clarity .lamp {
  position: absolute; top: 10%; left: 40%; width: 28px; height: 38px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e89a30 0%, #a85518 50%, #2a1006 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 15px #b06020, 0 0 100px 30px rgba(176,96,32,0.25);
  animation: tc-lamp 8s ease-in-out infinite alternate;
}
.scn-thrasymachus-demands-clarity .shadow.left {
  position: absolute; bottom: 30%; left: 0; width: 40%; height: 50%;
  background: linear-gradient(90deg, #0a0604 0%, transparent 100%);
  filter: blur(12px);
  animation: tc-shadow 15s ease-in-out infinite alternate;
}
.scn-thrasymachus-demands-clarity .shadow.right {
  position: absolute; bottom: 20%; right: 0; width: 35%; height: 60%;
  background: linear-gradient(270deg, #0a0604 0%, transparent 100%);
  filter: blur(15px);
  animation: tc-shadow 18s ease-in-out infinite alternate-reverse;
}
.scn-thrasymachus-demands-clarity .thrasymachus {
  position: absolute; bottom: 28%; left: 30%; width: 32px; height: 75px;
  transform: rotate(2deg);
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -12px 0 25px rgba(0,0,0,0.7);
  animation: tc-figure 5s ease-in-out infinite;
}
.scn-thrasymachus-demands-clarity .socrates {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #a09070 0%, #6a5e44 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.75;
  transform: scaleX(-1);
  animation: tc-socrates 6s ease-in-out infinite;
}
.scn-thrasymachus-demands-clarity .chair {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2818 0%, #1e120a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(3deg);
}
.scn-thrasymachus-demands-clarity .scroll {
  position: absolute; bottom: 32%; left: 60%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #b8a888 0%, #8c7a66 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tc-scroll 10s ease-in-out infinite alternate;
}
@keyframes tc-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.85 } 50% { transform: translateX(-50%) scaleY(1.015); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.985); opacity: 0.8 } }
@keyframes tc-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }
@keyframes tc-figure { 0% { transform: rotate(2deg) translateY(0) } 30% { transform: rotate(4deg) translateY(-3px) } 60% { transform: rotate(0deg) translateY(1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes tc-socrates { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-2px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes tc-scroll { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 75% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

/* socrates-quivering */
.scn-socrates-quivering {
  background: linear-gradient(140deg, #140e0c 0%, #221813 40%, #1a100c 70%, #0a0604 100%), radial-gradient(ellipse at 65% 25%, #2a1a12 0%, transparent 60%);
}
.scn-socrates-quivering .bg-wall {
  position: absolute; inset: 0 0 38% 0;
  background: linear-gradient(180deg, #2a1c18 0%, #1a0e0a 100%);
  box-shadow: inset 0 0 70px rgba(0,0,0,0.6);
}
.scn-socrates-quivering .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #241612 0%, #0e0806 100%);
  border-radius: 20% 40% 0 0 / 15% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-socrates-quivering .lamp {
  position: absolute; top: 12%; left: 55%; width: 26px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e09030 0%, #a05018 50%, #2a0e06 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 45px 12px #b05820, 0 0 90px 25px rgba(176,88,32,0.2);
  animation: sq-lamp 7s ease-in-out infinite alternate;
}
.scn-socrates-quivering .shadow.left {
  position: absolute; bottom: 25%; left: 0; width: 45%; height: 55%;
  background: linear-gradient(90deg, #0a0604 0%, transparent 100%);
  filter: blur(14px);
  animation: sq-shadow 16s ease-in-out infinite alternate;
}
.scn-socrates-quivering .shadow.right {
  position: absolute; bottom: 15%; right: 0; width: 40%; height: 65%;
  background: linear-gradient(270deg, #0a0604 0%, transparent 100%);
  filter: blur(18px);
  animation: sq-shadow 20s ease-in-out infinite alternate-reverse;
}
.scn-socrates-quivering .thrasymachus {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 65px;
  transform: rotate(-2deg);
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -8px 0 20px rgba(0,0,0,0.6);
  animation: sq-thrasy 6s ease-in-out infinite;
}
.scn-socrates-quivering .socrates {
  position: absolute; bottom: 24%; left: 25%; width: 20px; height: 48px;
  transform: rotate(10deg) scale(0.9);
  background: linear-gradient(180deg, #a09070 0%, #6a5e44 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.8;
  animation: sq-socrates 3s ease-in-out infinite;
}
.scn-socrates-quivering .pillar {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
}
.scn-socrates-quivering .dust {
  position: absolute; top: 5%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,160,140,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: sq-dust 12s linear infinite;
}
@keyframes sq-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8 } 50% { transform: translateX(-50%) scaleY(1.02); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.97); opacity: 0.75 } }
@keyframes sq-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.85 } 100% { opacity: 0.4 } }
@keyframes sq-thrasy { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(1px) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes sq-socrates { 0% { transform: rotate(10deg) scale(0.9) translateY(0) } 15% { transform: rotate(8deg) scale(0.88) translateY(-1px) } 30% { transform: rotate(12deg) scale(0.92) translateY(1px) } 50% { transform: rotate(9deg) scale(0.89) translateY(-2px) } 70% { transform: rotate(11deg) scale(0.91) translateY(0) } 85% { transform: rotate(7deg) scale(0.9) translateY(1px) } 100% { transform: rotate(10deg) scale(0.9) translateY(0) } }
@keyframes sq-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.3 } 50% { transform: translate(15px, -10px) scale(1.2); opacity: 0.6 } 100% { transform: translate(30px, -20px) scale(0.8); opacity: 0 } }

/* thrasymachus-scoffs */
.scn-thrasymachus-scoffs {
  background: linear-gradient(150deg, #1a120e 0%, #261c18 35%, #1a0e0a 65%, #080402 100%), radial-gradient(ellipse at 50% 20%, #2e1e14 0%, transparent 55%);
}
.scn-thrasymachus-scoffs .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c1e1a 0%, #1a0e0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-thrasymachus-scoffs .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #221612 0%, #0e0806 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.6);
}
.scn-thrasymachus-scoffs .lamp {
  position: absolute; top: 8%; left: 60%; width: 24px; height: 34px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e08828 0%, #a04814 50%, #2a0c04 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px #a85018, 0 0 80px 20px rgba(168,80,24,0.2);
  animation: ts-lamp 9s ease-in-out infinite alternate;
}
.scn-thrasymachus-scoffs .shadow.left {
  position: absolute; bottom: 30%; left: 0; width: 35%; height: 50%;
  background: linear-gradient(90deg, #080402 0%, transparent 100%);
  filter: blur(16px);
  animation: ts-shadow 14s ease-in-out infinite alternate;
}
.scn-thrasymachus-scoffs .shadow.right {
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 60%;
  background: linear-gradient(270deg, #080402 0%, transparent 100%);
  filter: blur(20px);
  animation: ts-shadow 18s ease-in-out infinite alternate-reverse;
}
.scn-thrasymachus-scoffs .thrasymachus {
  position: absolute; bottom: 26%; left: 40%; width: 30px; height: 70px;
  transform: rotate(5deg) scaleX(-1);
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 10px 0 25px rgba(0,0,0,0.6);
  animation: ts-figure 4s ease-in-out infinite;
}
.scn-thrasymachus-scoffs .socrates {
  position: absolute; bottom: 29%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #a09070 0%, #6a5e44 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.7;
  transform: rotate(-5deg);
  animation: ts-socrates 7s ease-in-out infinite;
}
.scn-thrasymachus-scoffs .book {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
}
.scn-thrasymachus-scoffs .cloth {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 18px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ts-cloth 10s ease-in-out infinite alternate;
}
@keyframes ts-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8 } 50% { transform: translateX(-50%) scaleY(1.018); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.75 } }
@keyframes ts-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.75 } 100% { opacity: 0.3 } }
@keyframes ts-figure { 0% { transform: rotate(5deg) scaleX(-1) translateY(0) } 25% { transform: rotate(3deg) scaleX(-1) translateY(-2px) } 50% { transform: rotate(7deg) scaleX(-1) translateY(1px) } 75% { transform: rotate(4deg) scaleX(-1) translateY(-1px) } 100% { transform: rotate(5deg) scaleX(-1) translateY(0) } }
@keyframes ts-socrates { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(-2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes ts-cloth { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }

/* previous-sciences – calm dim interior study */
.scn-previous-sciences {
  background:
    linear-gradient(180deg, #1a1814 0%, #2c241c 40%, #382c20 100%),
    radial-gradient(ellipse at 30% 70%, #3a2e22 0%, transparent 60%);
}
.scn-previous-sciences .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 60%;
  background: linear-gradient(180deg, #2a2218 0%, #1e1812 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: ps-wall 14s ease-in-out infinite alternate;
}
.scn-previous-sciences .wall-right {
  position: absolute;
  right: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(180deg, #1c1610 0%, #120e0a 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.6);
  animation: ps-wall 14s ease-in-out infinite alternate-reverse;
}
.scn-previous-sciences .shelf {
  position: absolute;
  left: 20%; top: 28%; width: 55%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a, #32281c);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-previous-sciences .books {
  position: absolute;
  left: 22%; top: 20%; width: 18%; height: 8%;
  background: repeating-linear-gradient(
    90deg,
    #6b5036 0px, #6b5036 6px,
    #7a5c3e 6px, #7a5c3e 12px,
    #5e442c 12px, #5e442c 18px,
    #8b6a46 18px, #8b6a46 24px
  );
  border-radius: 1px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: ps-books 20s ease-in-out infinite;
}
.scn-previous-sciences .desk {
  position: absolute;
  bottom: 18%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #3e3226, #2a2018);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.4);
}
.scn-previous-sciences .candle {
  position: absolute;
  bottom: 35%; left: 42%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d4b48c, #b8946a);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 20px 6px rgba(200,160,100,0.3);
  animation: ps-candle 6s ease-in-out infinite alternate;
}
.scn-previous-sciences .candle-glow {
  position: absolute;
  bottom: 38%; left: 41.5%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e8b060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ps-glow 4s ease-in-out infinite alternate;
}
.scn-previous-sciences .figure {
  position: absolute;
  bottom: 20%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 8s ease-in-out infinite;
}
@keyframes ps-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ps-books {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes ps-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(0.97) scaleX(1.02); opacity: 1; }
  100% { transform: scaleY(1.02) scaleX(0.98); opacity: 0.9; }
}
@keyframes ps-glow {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes ps-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); }
}

/* repose-in-divine-perfection – warm dim interior figure at rest */
.scn-repose-in-divine-perfection {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3d2b1c 40%, #1f150c 100%),
    radial-gradient(ellipse at 40% 80%, #5a3a22 0%, transparent 60%);
}
.scn-repose-in-divine-perfection .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #1e140c 0%, #2a1e14 30%, #3c281c 60%, #1e140c 100%);
  animation: rdp-wall 18s ease-in-out infinite alternate;
}
.scn-repose-in-divine-perfection .window {
  position: absolute;
  top: 12%; left: 30%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #1a1a2e 0%, #2c2a44 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 40px rgba(100,80,150,0.2);
  border: 3px solid #3a2a1c;
  animation: rdp-window 12s ease-in-out infinite alternate;
}
.scn-repose-in-divine-perfection .window-light {
  position: absolute;
  top: 18%; left: 35%; width: 20%; height: 25%;
  background: radial-gradient(ellipse, rgba(200,170,120,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: rdp-light 8s ease-in-out infinite;
}
.scn-repose-in-divine-perfection .couch {
  position: absolute;
  bottom: 18%; left: 20%; width: 55%; height: 22%;
  background: linear-gradient(180deg, #4a3224, #2e1e14);
  border-radius: 30% 30% 8% 8% / 40% 40% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rdp-couch 10s ease-in-out infinite;
}
.scn-repose-in-divine-perfection .figure {
  position: absolute;
  bottom: 22%; left: 38%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rdp-figure 14s ease-in-out infinite alternate;
}
.scn-repose-in-divine-perfection .lamp {
  position: absolute;
  bottom: 40%; right: 22%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #7a5c3e, #4a3422);
  border-radius: 2px;
}
.scn-repose-in-divine-perfection .lamp-glow {
  position: absolute;
  bottom: 44%; right: 21%; width: 30px; height: 40px;
  background: radial-gradient(circle, #d4a060 0%, #b87838 40%, transparent 70%);
  filter: blur(10px);
  animation: rdp-lamp 5s ease-in-out infinite alternate;
}
.scn-repose-in-divine-perfection .rug {
  position: absolute;
  bottom: 8%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #4a3022 0%, #382418 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rdp-rug 20s ease-in-out infinite;
}
@keyframes rdp-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rdp-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.97); }
  100% { transform: scaleX(1.03); }
}
@keyframes rdp-light {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.05); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.6; }
}
@keyframes rdp-couch {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes rdp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rdp-lamp {
  0% { transform: scale(0.8); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
@keyframes rdp-rug {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1.05); }
}

/* idea-of-good-as-god – calm central light / abstract */
.scn-idea-of-good-as-god {
  background:
    linear-gradient(180deg, #0e121a 0%, #1c2030 40%, #0e121a 100%),
    radial-gradient(ellipse at 50% 40%, #2a3040 0%, transparent 70%);
}
.scn-idea-of-good-as-god .bg-deep {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #2a3448 0%, #0e121a 100%);
  animation: igg-bg 20s ease-in-out infinite alternate;
}
.scn-idea-of-good-as-god .ring-outer {
  position: absolute;
  top: 10%; left: 10%; width: 80%; height: 80%;
  border: 2px solid rgba(200,180,140,0.15);
  border-radius: 50%;
  animation: igg-rotate 30s linear infinite;
}
.scn-idea-of-good-as-god .ring-mid {
  position: absolute;
  top: 25%; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(circle, rgba(220,200,160,0.08) 0%, transparent 70%);
  border: 1.5px solid rgba(200,180,140,0.1);
  border-radius: 50%;
  animation: igg-rotate 20s linear infinite reverse;
}
.scn-idea-of-good-as-god .ring-inner {
  position: absolute;
  top: 38%; left: 38%; width: 24%; height: 24%;
  background: radial-gradient(circle, rgba(240,220,180,0.25) 0%, transparent 60%);
  border: 1px solid rgba(240,220,180,0.2);
  border-radius: 50%;
  animation: igg-pulse 8s ease-in-out infinite alternate;
}
.scn-idea-of-good-as-god .core {
  position: absolute;
  top: 45%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #f0d8a0 0%, #c8a868 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(240,216,160,0.4), 0 0 80px rgba(200,168,104,0.2);
  animation: igg-glow 5s ease-in-out infinite alternate;
}
.scn-idea-of-good-as-god .ray {
  position: absolute;
  top: 48%; left: 49.5%;
  width: 2px; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(240,216,160,0.15) 50%, transparent 100%);
  transform-origin: top center;
  animation: igg-ray 12s ease-in-out infinite;
}
.scn-idea-of-good-as-god .ray-1 { transform: rotate(0deg); animation-delay: 0s; }
.scn-idea-of-good-as-god .ray-2 { transform: rotate(60deg); animation-delay: -4s; }
.scn-idea-of-good-as-god .ray-3 { transform: rotate(120deg); animation-delay: -8s; }
@keyframes igg-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes igg-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes igg-pulse {
  0% { transform: scale(0.95); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes igg-glow {
  0% { box-shadow: 0 0 30px rgba(240,216,160,0.3), 0 0 60px rgba(200,168,104,0.15); transform: scale(1); }
  50% { box-shadow: 0 0 50px rgba(240,216,160,0.5), 0 0 100px rgba(200,168,104,0.25); transform: scale(1.1); }
  100% { box-shadow: 0 0 40px rgba(240,216,160,0.4), 0 0 80px rgba(200,168,104,0.2); transform: scale(1.02); }
}
@keyframes igg-ray {
  0% { opacity: 0.2; transform: scaleY(0.8); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}

/* meeting-point – warm dim interior two figures approaching */
.scn-meeting-point {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1e18 40%, #1a100c 100%),
    radial-gradient(ellipse at 50% 100%, #3a281c 0%, transparent 60%);
}
.scn-meeting-point .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2e221a 0%, #1a120c 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: mp-floor 16s ease-in-out infinite alternate;
}
.scn-meeting-point .wall {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #2a1e18 0%, #3e2c20 50%, #1e140e 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
}
.scn-meeting-point .light-source {
  position: absolute;
  top: 30%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e8b068 0%, #c08038 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 10px rgba(200,128,56,0.4), 0 0 80px 20px rgba(200,128,56,0.2);
  animation: mp-light 6s ease-in-out infinite alternate;
}
.scn-meeting-point .figure-left {
  position: absolute;
  bottom: 38%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mp-walk-left 10s ease-in-out infinite;
}
.scn-meeting-point .figure-right {
  position: absolute;
  bottom: 38%; right: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2218 0%, #140e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mp-walk-right 10s ease-in-out infinite;
}
.scn-meeting-point .table {
  position: absolute;
  bottom: 36%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(180deg, #3a2a1e, #221610);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-meeting-point .shadow-left {
  position: absolute;
  bottom: 36%; left: 24%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: mp-shadow 10s ease-in-out infinite;
}
.scn-meeting-point .shadow-right {
  position: absolute;
  bottom: 36%; right: 24%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  transform: skewX(10deg);
  animation: mp-shadow 10s ease-in-out infinite reverse;
}
@keyframes mp-floor {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(0.97); opacity: 1; }
  100% { transform: scaleY(1.03); opacity: 0.85; }
}
@keyframes mp-light {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}
@keyframes mp-walk-left {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(20px) rotate(-2deg); }
  50% { transform: translateX(30px) rotate(0deg); }
  70% { transform: translateX(20px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mp-walk-right {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-20px) rotate(2deg); }
  50% { transform: translateX(-30px) rotate(0deg); }
  70% { transform: translateX(-20px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mp-shadow {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.3; }
  50% { transform: skewX(-10deg) scaleY(0.8); opacity: 0.5; }
  100% { transform: skewX(-10deg) scaleY(1.1); opacity: 0.2; }
}

/* Scene: thrasymachus-would-leave (tense, dim-interior) */
.scn-thrasymachus-would-leave {
  background:
    linear-gradient(180deg, #2a1e12 0%, #1a1410 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-thrasymachus-would-leave .thw-backwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 0 0 20% 20%;
}
.scn-thrasymachus-would-leave .thw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-thrasymachus-would-leave .thw-table {
  position: absolute; bottom: 28%; left: 35%; width: 130px; height: 20px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-thrasymachus-would-leave .thw-figure {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: thw-walk 2.5s ease-in-out infinite alternate;
}
.scn-thrasymachus-would-leave .thw-restrainer {
  position: absolute; bottom: 27%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: thw-reach 1.8s ease-in-out infinite alternate;
}
.scn-thrasymachus-would-leave .thw-lamp {
  position: absolute; bottom: 35%; left: 62%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 20%, #e8b86a 0%, #c8945a 40%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,148,90,.6);
}
.scn-thrasymachus-would-leave .thw-glow {
  position: absolute; inset: 20% 20% 20% 20%;
  background: radial-gradient(circle at 62% 50%, rgba(200,148,90,.3) 0%, transparent 60%);
  pointer-events: none;
  animation: thw-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes thw-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(-1deg); }
}
@keyframes thw-reach {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-4px); }
}
@keyframes thw-flicker {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

/* Scene: importance-of-question (calm, dim-interior) */
.scn-importance-of-question {
  background:
    linear-gradient(180deg, #1e1a28 0%, #2a2438 50%, #181420 100%),
    radial-gradient(ellipse at 50% 100%, #3a3448 0%, transparent 70%);
}
.scn-importance-of-question .ioq-backwall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2840 0%, #1e1a28 100%);
  border-radius: 0 0 15% 15%;
}
.scn-importance-of-question .ioq-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3448 0%, #1e1a28 100%);
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5);
}
.scn-importance-of-question .ioq-figure {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a2438 0%, #181420 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) scale(0.9);
  animation: ioq-breathe 6s ease-in-out infinite;
}
.scn-importance-of-question .ioq-scroll {
  position: absolute; bottom: 32%; left: 46%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #c8b88a 0%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-importance-of-question .ioq-lamp {
  position: absolute; bottom: 38%; left: 68%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #e0c878 0%, #b89848 50%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(184,152,72,.5);
  animation: ioq-glow 4s ease-in-out infinite alternate;
}
.scn-importance-of-question .ioq-dust1 {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,240,200,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ioq-drift 25s linear infinite;
}
.scn-importance-of-question .ioq-dust2 {
  position: absolute; top: 30%; right: 25%; width: 3px; height: 3px;
  background: rgba(255,240,200,.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: ioq-drift 30s linear infinite reverse;
}
@keyframes ioq-breathe {
  0% { transform: translateX(-50%) scale(0.9) translateY(0); }
  50% { transform: translateX(-50%) scale(0.9) translateY(-3px); }
  100% { transform: translateX(-50%) scale(0.9) translateY(0); }
}
@keyframes ioq-glow {
  0% { box-shadow: 0 0 20px 6px rgba(184,152,72,.4); opacity: .8; }
  50% { box-shadow: 0 0 30px 10px rgba(184,152,72,.6); opacity: 1; }
  100% { box-shadow: 0 0 22px 7px rgba(184,152,72,.45); opacity: .85; }
}
@keyframes ioq-drift {
  0% { transform: translate(0,0); }
  50% { transform: translate(20px, -10px); }
  100% { transform: translate(40px, -20px); }
}

/* Scene: socrates-not-convinced (calm, dim-interior) */
.scn-socrates-not-convinced {
  background:
    linear-gradient(180deg, #1a1812 0%, #2a241e 50%, #12100c 100%),
    radial-gradient(ellipse at 50% 100%, #3a342a 0%, transparent 70%);
}
.scn-socrates-not-convinced .snc-backwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e281e 0%, #1a1812 100%);
  border-radius: 0 0 10% 10%;
}
.scn-socrates-not-convinced .snc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a342a 0%, #1a1812 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-socrates-not-convinced .snc-figure {
  position: absolute; bottom: 25%; left: 48%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1e1a14 0%, #12100c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(5deg);
  animation: snc-lean 5s ease-in-out infinite alternate;
}
.scn-socrates-not-convinced .snc-hand {
  position: absolute; bottom: 30%; left: 43%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1e1a14 0%, #12100c 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: snc-gesture 7s ease-in-out infinite;
}
.scn-socrates-not-convinced .snc-table {
  position: absolute; bottom: 27%; left: 40%; width: 80px; height: 16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-socrates-not-convinced .snc-lamp {
  position: absolute; bottom: 36%; left: 60%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #d8c070 0%, #b09848 40%, #4a3018 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(176,152,72,.5);
  animation: snc-flicker 3s ease-in-out infinite alternate;
}
.scn-socrates-not-convinced .snc-shadow {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 40px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: snc-shadow 6s ease-in-out infinite alternate;
}
@keyframes snc-lean {
  0% { transform: translateX(-50%) rotate(5deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(8deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(3deg) translateY(0); }
}
@keyframes snc-gesture {
  0% { transform: rotate(20deg) translateY(0); }
  33% { transform: rotate(25deg) translateY(-3px); }
  66% { transform: rotate(15deg) translateY(2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes snc-flicker {
  0% { opacity: .8; box-shadow: 0 0 16px 4px rgba(176,152,72,.4); }
  50% { opacity: 1; box-shadow: 0 0 28px 8px rgba(176,152,72,.7); }
  100% { opacity: .85; box-shadow: 0 0 18px 5px rgba(176,152,72,.45); }
}
@keyframes snc-shadow {
  0% { transform: translateX(0) scale(1); opacity: .3; }
  50% { transform: translateX(-5px) scale(1.1); opacity: .4; }
  100% { transform: translateX(0) scale(1); opacity: .3; }
}

/* Scene: how-to-convince? (tense, dim-interior) */
.scn-how-to-convince {
  background:
    linear-gradient(180deg, #1e1210 0%, #2a1a18 50%, #120a08 100%),
    radial-gradient(ellipse at 50% 100%, #3a2020 0%, transparent 70%);
}
.scn-how-to-convince .htc-backwall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  border-radius: 0 0 5% 5%;
}
.scn-how-to-convince .htc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a28 0%, #1a1210 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-how-to-convince .htc-figure1 {
  position: absolute; bottom: 22%; left: 38%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: htc-speak 1.5s ease-in-out infinite alternate;
}
.scn-how-to-convince .htc-figure2 {
  position: absolute; bottom: 22%; right: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.9);
  animation: htc-listen 2.8s ease-in-out infinite alternate;
}
.scn-how-to-convince .htc-lamp {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #e0a060 0%, #c08040 40%, #5a2a10 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(192,128,64,.6);
  animation: htc-flicker 0.6s ease-in-out infinite alternate;
}
.scn-how-to-convince .htc-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(15px);
  animation: htc-shadow 2s ease-in-out infinite alternate;
}
.scn-how-to-convince .htc-pillar {
  position: absolute; bottom: 25%; left: 70%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #3a2a28 0%, #1a1210 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
}
@keyframes htc-speak {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-3px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-1deg) scaleY(1); }
}
@keyframes htc-listen {
  0% { transform: scale(0.9) translateY(0); }
  50% { transform: scale(0.9) translateY(-2px); }
  100% { transform: scale(0.9) translateY(0); }
}
@keyframes htc-flicker {
  0% { box-shadow: 0 0 24px 8px rgba(192,128,64,.5); opacity: .9; }
  50% { box-shadow: 0 0 40px 14px rgba(192,128,64,.8); opacity: 1; }
  100% { box-shadow: 0 0 28px 10px rgba(192,128,64,.55); opacity: .92; }
}
@keyframes htc-shadow {
  0% { transform: translateX(0) scale(1); opacity: .4; }
  100% { transform: translateX(10px) scale(1.2); opacity: .6; }
}

.scn-spindle-and-moon { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2c2c5e 100%), radial-gradient(ellipse at 50% 20%, #3a3a7e 0%, transparent 70%); }
.scn-spindle-and-moon .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, transparent 60%); animation: sm-bg 12s ease-in-out infinite alternate; }
.scn-spindle-and-moon .moon-glow { position:absolute; top:10%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,255,0.3) 0%, transparent 70%); border-radius:50%; filter:blur(12px); animation: sm-glow 4s ease-in-out infinite alternate; }
.scn-spindle-and-moon .moon { position:absolute; top:12%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle at 35% 35%, #e8e8ff 0%, #c0c0e8 50%, #8080b0 100%); border-radius:50%; box-shadow: 0 0 40px 10px #a0a0e0; animation: sm-moon 8s ease-in-out infinite alternate; }
.scn-spindle-and-moon .spindle { position:absolute; bottom:10%; left:50%; width:20px; height:60%; transform:translateX(-50%); background: linear-gradient(180deg, #6a6a8a 0%, #4a4a6a 50%, #3a3a5a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 0 20px 5px #4a4a6a; }
.scn-spindle-and-moon .spindle-axis { position:absolute; bottom:10%; left:50%; width:4px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #a0a0c0 0%, #8080a0 100%); border-radius:2px; animation: sm-axis 6s ease-in-out infinite alternate; }
.scn-spindle-and-moon .ponderer { position:absolute; bottom:25%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-ponder 5s ease-in-out infinite; }
.scn-spindle-and-moon .dust { position:absolute; bottom:30%; left:20%; width:80px; height:80px; background: transparent; border-radius:50%; box-shadow: 2px 2px 0 0 rgba(200,200,255,0.2), 8px 12px 0 0 rgba(200,200,255,0.15), 15px 5px 0 0 rgba(200,200,255,0.1); animation: sm-dust 18s linear infinite; }
.scn-spindle-and-moon .motes { position:absolute; bottom:40%; right:10%; width:60px; height:60px; background: transparent; border-radius:50%; box-shadow: 4px 4px 0 0 rgba(200,200,255,0.25), 12px 20px 0 0 rgba(200,200,255,0.2), 25px 8px 0 0 rgba(200,200,255,0.15); animation: sm-motes 22s linear infinite reverse; }

@keyframes sm-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes sm-glow { 0% { opacity:0.4; transform: translateX(-50%) scale(1) } 50% { opacity:0.7; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95) } }
@keyframes sm-moon { 0% { filter: brightness(1) saturate(1); transform: translateX(-50%) rotate(0deg) } 50% { filter: brightness(1.15) saturate(1.1); transform: translateX(-50%) rotate(2deg) } 100% { filter: brightness(0.9) saturate(0.9); transform: translateX(-50%) rotate(-1deg) } }
@keyframes sm-axis { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes sm-ponder { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(5px) translateY(1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sm-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:0.5 } 50% { transform: translate(40px,-30px) scale(1.3); opacity:0.8 } 90% { opacity:0.3 } 100% { transform: translate(80px,-60px) scale(0.8); opacity:0 } }
@keyframes sm-motes { 0% { transform: translate(0,0) scale(1); opacity:0 } 10% { opacity:0.4 } 50% { transform: translate(-30px,20px) scale(1.2); opacity:0.7 } 90% { opacity:0.2 } 100% { transform: translate(-60px,40px) scale(0.7); opacity:0 } }

.scn-cylinder-and-symbolism { background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 50%, #2a2a5a 100%), radial-gradient(ellipse at 50% 50%, #3a3a6e 0%, transparent 70%); }
.scn-cylinder-and-symbolism .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2e2e5e 0%, transparent 60%); animation: cs-bg 15s ease-in-out infinite alternate; }
.scn-cylinder-and-symbolism .cylinder { position:absolute; top:15%; left:50%; width:160px; height:250px; transform:translateX(-50%); background: linear-gradient(90deg, #1a1a3a 0%, #3a3a6a 30%, #4a4a7a 50%, #3a3a6a 70%, #1a1a3a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 10px #2a2a5a; animation: cs-cylinder 10s ease-in-out infinite alternate; }
.scn-cylinder-and-symbolism .inner-cylinder { position:absolute; top:20%; left:50%; width:120px; height:200px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #2a2a5a 0%, #1a1a3a 100%); border-radius:15% 15% 8% 8%; }
.scn-cylinder-and-symbolism .ring { position:absolute; left:50%; width:140px; height:30px; transform:translateX(-50%); background: linear-gradient(90deg, #4a4a7a 0%, #6a6a9a 50%, #4a4a7a 100%); border-radius:50%; border:1px solid #6a6a9a; }
.scn-cylinder-and-symbolism .ring-outer { top:22%; animation: cs-ring-outer 6s linear infinite; box-shadow: 0 0 15px 5px #4a4a7a; }
.scn-cylinder-and-symbolism .ring-mid { top:40%; width:130px; animation: cs-ring-mid 8s linear infinite reverse; box-shadow: 0 0 12px 3px #4a4a7a; }
.scn-cylinder-and-symbolism .ring-inner { top:58%; width:120px; animation: cs-ring-inner 10s linear infinite; box-shadow: 0 0 10px 2px #4a4a7a; }
.scn-cylinder-and-symbolism .axis { position:absolute; top:10%; left:50%; width:4px; height:80%; transform:translateX(-50%); background: linear-gradient(180deg, #a0a0c0 0%, #8080b0 100%); border-radius:2px; animation: cs-axis 5s ease-in-out infinite alternate; }
.scn-cylinder-and-symbolism .starfield { position:absolute; inset:0; background: transparent; border-radius:50%; }
.scn-cylinder-and-symbolism .starfield-a { box-shadow: 2px 2px 0 0 #fff, 10px 15px 0 0 #fff, 20px 5px 0 0 #ccc, 30px 25px 0 0 #fff, 40px 10px 0 0 #aaa, 5px 35px 0 0 #fff, 50px 20px 0 0 #ddd; animation: cs-stars-a 40s linear infinite; }
.scn-cylinder-and-symbolism .starfield-b { box-shadow: 3px 3px 0 0 #fff, 15px 10px 0 0 #ccc, 25px 30px 0 0 #fff, 8px 20px 0 0 #aaa, 35px 5px 0 0 #fff, 45px 15px 0 0 #ddd, 12px 40px 0 0 #fff; animation: cs-stars-b 50s linear infinite reverse; }

@keyframes cs-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes cs-cylinder { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg) } 50% { transform: translateX(-50%) scaleY(1.02) rotate(0.5deg) } 100% { transform: translateX(-50%) scaleY(0.98) rotate(-0.5deg) } }
@keyframes cs-ring-outer { 0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 33% { transform: translateX(-50%) rotate(120deg) translateY(2px) } 66% { transform: translateX(-50%) rotate(240deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(360deg) translateY(0) } }
@keyframes cs-ring-mid { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-50%) rotate(-120deg) } 66% { transform: translateX(-50%) rotate(-240deg) } 100% { transform: translateX(-50%) rotate(-360deg) } }
@keyframes cs-ring-inner { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-50%) rotate(180deg) } 66% { transform: translateX(-50%) rotate(360deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cs-axis { 0% { transform: translateX(-50%) translateY(0) scaleY(1) } 50% { transform: translateX(-50%) translateY(-5px) scaleY(1.02) } 100% { transform: translateX(-50%) translateY(0) scaleY(0.98) } }
@keyframes cs-stars-a { 0% { transform: rotate(0deg); opacity:0.4 } 50% { opacity:0.8 } 100% { transform: rotate(360deg); opacity:0.4 } }
@keyframes cs-stars-b { 0% { transform: rotate(0deg); opacity:0.5 } 50% { opacity:1 } 100% { transform: rotate(-360deg); opacity:0.5 } }

.scn-column-of-light { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 30%, #2a2a5e 60%, #3a3a7e 100%), radial-gradient(ellipse at 50% 0%, #4a4a9e 0%, transparent 70%); }
.scn-column-of-light .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 10%, #2e2e6e 0%, transparent 60%); animation: cl-bg 14s ease-in-out infinite alternate; }
.scn-column-of-light .column { position:absolute; top:5%; left:50%; width:60px; height:90%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,255,0.2) 40%, rgba(100,100,200,0.1) 70%, transparent 100%); border-radius:30% 30% 10% 10%; filter: blur(2px); animation: cl-column 8s ease-in-out infinite alternate; }
.scn-column-of-light .light-beam { position:absolute; top:5%; left:50%; width:120px; height:90%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(200,200,255,0.05) 60%, transparent 100%); border-radius:40% 40% 20% 20%; filter: blur(12px); animation: cl-beam 6s ease-in-out infinite alternate; }
.scn-column-of-light .pilgrim { position:absolute; bottom:20%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-column-of-light .pilgrim-1 { left:35%; animation: cl-pilgrim1 9s ease-in-out infinite; }
.scn-column-of-light .pilgrim-2 { right:35%; animation: cl-pilgrim2 9s ease-in-out infinite 2s; }
.scn-column-of-light .cloud { position:absolute; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius:50%; filter:blur(8px); }
.scn-column-of-light .cloud-c { top:15%; left:20%; animation: cl-cloud 35s linear infinite; }
.scn-column-of-light .ray { position:absolute; top:30%; left:10%; width:2px; height:60%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); transform:rotate(15deg); animation: cl-ray 5s ease-in-out infinite alternate; }

@keyframes cl-bg { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes cl-column { 0% { opacity:0.6; transform: translateX(-50%) scaleY(1) } 50% { opacity:0.9; transform: translateX(-50%) scaleY(1.05) } 100% { opacity:0.7; transform: translateX(-50%) scaleY(0.95) } }
@keyframes cl-beam { 0% { opacity:0.3; transform: translateX(-50%) scale(1) } 50% { opacity:0.7; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.4; transform: translateX(-50%) scale(0.9) } }
@keyframes cl-pilgrim1 { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-8px) translateY(-1px) rotate(-1deg) } 75% { transform: translateX(-12px) translateY(1px) rotate(3deg) } 100% { transform: translateX(-16px) translateY(0) rotate(0deg) } }
@keyframes cl-pilgrim2 { 0% { transform: translateX(0) translateY(0) rotate(3deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 75% { transform: translateX(12px) translateY(1px) rotate(-3deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes cl-cloud { 0% { transform: translateX(-30px); opacity:0 } 10% { opacity:0.4 } 50% { transform: translateX(80vw); opacity:0.7 } 90% { opacity:0.2 } 100% { transform: translateX(120vw); opacity:0 } }
@keyframes cl-ray { 0% { transform: rotate(15deg) scaleY(1); opacity:0.3 } 50% { transform: rotate(20deg) scaleY(1.2); opacity:0.7 } 100% { transform: rotate(10deg) scaleY(0.9); opacity:0.4 } }

.scn-fixed-stars-and-planets { background: linear-gradient(180deg, #05051a 0%, #0a0a2e 40%, #12123e 100%), radial-gradient(ellipse at 50% 50%, #1a1a4e 0%, transparent 70%); }
.scn-fixed-stars-and-planets .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #1a1a3e 0%, transparent 50%); animation: fp-bg 20s ease-in-out infinite alternate; }
.scn-fixed-stars-and-planets .stars { position:absolute; inset:0; background: transparent; border-radius:50%; }
.scn-fixed-stars-and-planets .stars-small { box-shadow: 1px 2px 0 0 #fff, 5px 8px 0 0 #ddd, 10px 3px 0 0 #fff, 15px 12px 0 0 #ccc, 20px 6px 0 0 #fff, 25px 18px 0 0 #ddd, 30px 10px 0 0 #fff, 35px 22px 0 0 #ccc, 40px 14px 0 0 #fff, 45px 28px 0 0 #ddd; animation: fp-stars-small 30s linear infinite; }
.scn-fixed-stars-and-planets .stars-large { box-shadow: 2px 4px 0 0 #fff, 8px 15px 0 0 #aaa, 15px 6px 0 0 #fff, 22px 20px 0 0 #bbb, 30px 12px 0 0 #fff, 38px 25px 0 0 #aaa, 45px 18px 0 0 #fff, 52px 30px 0 0 #bbb; animation: fp-stars-large 45s linear infinite reverse; }
.scn-fixed-stars-and-planets .planet { position:absolute; top:35%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle at 30% 30%, #6a6a8a 0%, #4a4a6a 50%, #2a2a4a 100%); border-radius:50%; box-shadow: 0 0 30px 10px #4a4a6a; animation: fp-planet 12s ease-in-out infinite alternate; }
.scn-fixed-stars-and-planets .orbit-ring { position:absolute; top:25%; left:50%; width:180px; height:180px; transform:translateX(-50%); border:2px solid rgba(255,255,255,0.15); border-radius:50%; animation: fp-orbit 20s linear infinite; }
.scn-fixed-stars-and-planets .axis-core { position:absolute; top:10%; left:50%; width:4px; height:80%; transform:translateX(-50%); background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%); border-radius:2px; animation: fp-axis 7s ease-in-out infinite alternate; }
.scn-fixed-stars-and-planets .nebula { position:absolute; bottom:20%; left:20%; width:120px; height:80px; background: radial-gradient(ellipse, rgba(100,80,160,0.2) 0%, transparent 70%); border-radius:50%; filter:blur(15px); animation: fp-nebula 25s linear infinite; }

@keyframes fp-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes fp-stars-small { 0% { transform: rotate(0deg); opacity:0.3 } 50% { opacity:0.7 } 100% { transform: rotate(360deg); opacity:0.3 } }
@keyframes fp-stars-large { 0% { transform: rotate(0deg); opacity:0.2 } 50% { opacity:0.6 } 100% { transform: rotate(-360deg); opacity:0.2 } }
@keyframes fp-planet { 0% { transform: translateX(-50%) scale(1) rotate(0deg); filter: brightness(1) } 50% { transform: translateX(-50%) scale(1.05) rotate(5deg); filter: brightness(1.2) } 100% { transform: translateX(-50%) scale(0.95) rotate(-5deg); filter: brightness(0.9) } }
@keyframes fp-orbit { 0% { transform: translateX(-50%) rotate(0deg); opacity:0.3 } 50% { opacity:0.8 } 100% { transform: translateX(-50%) rotate(360deg); opacity:0.3 } }
@keyframes fp-axis { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-6px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes fp-nebula { 0% { transform: translate(0,0) scale(1); opacity:0.2 } 50% { transform: translate(20px,-10px) scale(1.3); opacity:0.5 } 100% { transform: translate(40px,20px) scale(0.8); opacity:0.2 } }

/* Scene 1: limits-not-recognized */
.scn-limits-not-recognized {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f1a 60%, #1a1210 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a20 0%, transparent 70%);
}
.scn-limits-not-recognized .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2018 0%, #3a2a22 50%, #2a2018 100%);
  opacity: 0.8;
}
.scn-limits-not-recognized .window {
  position: absolute; top: 8%; left: 55%; width: 28%; height: 40%;
  background: linear-gradient(135deg, #1a2a3e 0%, #0a1a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px #0a0a1a, 0 0 8px rgba(10,10,26,0.5);
  overflow: hidden;
}
.scn-limits-not-recognized .window::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, #2a4a6a 0%, transparent 60%);
  animation: lr-star 6s ease-in-out infinite alternate;
}
.scn-limits-not-recognized .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6), inset 0 2px 4px rgba(100,80,60,0.3);
}
.scn-limits-not-recognized .lamp {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: lr-lamp-sway 8s ease-in-out infinite;
}
.scn-limits-not-recognized .light {
  position: absolute; bottom: 23%; left: 33%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #e0b060 0%, #c09040 40%, transparent 80%);
  border-radius: 50%;
  opacity: 0.6;
  animation: lr-flicker 3s ease-in-out infinite alternate;
}
.scn-limits-not-recognized .figure {
  position: absolute; bottom: 10%; left: 40%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-breathe 6s ease-in-out infinite;
}
.scn-limits-not-recognized .figure::before {
  content: ''; position: absolute; top: -20%; left: 50%; width: 8%; height: 10%;
  background: radial-gradient(circle, #d0b080 0%, #b09060 60%);
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-limits-not-recognized .book-a {
  position: absolute; bottom: 10%; left: 52%; width: 6%; height: 3%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: lr-book-stack 10s ease-in-out infinite;
}
.scn-limits-not-recognized .book-b {
  position: absolute; bottom: 10%; left: 50%; width: 5%; height: 2.5%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 2%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  transform: rotate(8deg);
  animation: lr-book-stack 10s ease-in-out infinite 2s;
}
@keyframes lr-star { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes lr-lamp-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes lr-flicker { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes lr-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lr-book-stack { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* Scene 2: self-proving-unity */
.scn-self-proving-unity {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4e 100%),
    radial-gradient(circle at 50% 40%, #3a3a6e 0%, transparent 60%);
}
.scn-self-proving-unity .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #1a1a3e 0%, transparent 70%);
  animation: sp-pulse 20s ease-in-out infinite;
}
.scn-self-proving-unity .circle-glow {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(circle, #b0a0e0 0%, #7060a0 40%, transparent 70%);
  border-radius: 50%;
  animation: sp-glow 4s ease-in-out infinite alternate;
}
.scn-self-proving-unity .sphere {
  position: absolute; top: 30%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle at 30% 30%, #d0c0f0 0%, #9080c0 60%, #504070 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px rgba(144,128,192,0.6), 0 0 120px rgba(144,128,192,0.3);
  animation: sp-spin 8s linear infinite;
}
.scn-self-proving-unity .hand {
  position: absolute; bottom: 25%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sp-reach 6s ease-in-out infinite;
}
.scn-self-proving-unity .ray-1,
.scn-self-proving-unity .ray-2 {
  position: absolute; top: 35%; left: 48%; width: 2%; height: 30%;
  background: linear-gradient(180deg, rgba(180,160,240,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: bottom center;
}
.scn-self-proving-unity .ray-1 {
  transform: rotate(-25deg);
  animation: sp-ray 5s ease-in-out infinite;
}
.scn-self-proving-unity .ray-2 {
  transform: rotate(25deg);
  animation: sp-ray 5s ease-in-out infinite 1.5s;
}
.scn-self-proving-unity .geometric {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(45deg, transparent, transparent 5%, rgba(100,80,140,0.1) 5%, rgba(100,80,140,0.1) 6%),
    repeating-linear-gradient(-45deg, transparent, transparent 5%, rgba(100,80,140,0.1) 5%, rgba(100,80,140,0.1) 6%);
  animation: sp-geo 12s linear infinite;
}
@keyframes sp-pulse { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes sp-glow { 0% { transform: scale(0.95); opacity: 0.5; } 50% { transform: scale(1.05); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes sp-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes sp-reach { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-15px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes sp-ray { 0% { opacity: 0.2; transform: rotate(-25deg) scaleY(1); } 50% { opacity: 0.8; transform: rotate(-25deg) scaleY(1.5); } 100% { opacity: 0.2; transform: rotate(-25deg) scaleY(1); } }
@keyframes sp-geo { 0% { transform: translate(0,0); } 50% { transform: translate(10px,10px); } 100% { transform: translate(0,0); } }

/* Scene 3: long-or-short-road */
.scn-long-or-short-road {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 30%, #3a3a5a 70%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 80%, #1a2a1a 0%, transparent 60%);
}
.scn-long-or-short-road .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a6a 0%, #1a1a4a 100%);
  animation: ls-dusk 15s ease-in-out infinite alternate;
}
.scn-long-or-short-road .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
}
.scn-long-or-short-road .road {
  position: absolute; bottom: 20%; height: 25%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-long-or-short-road .road.left {
  left: 0; width: 45%;
  transform: skewX(-10deg);
  transform-origin: left bottom;
  animation: ls-road-left 10s ease-in-out infinite;
}
.scn-long-or-short-road .road.right {
  right: 0; width: 45%;
  transform: skewX(10deg);
  transform-origin: right bottom;
  animation: ls-road-right 10s ease-in-out infinite;
}
.scn-long-or-short-road .figure {
  position: absolute; bottom: 22%; left: 48%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-figure-breathe 4s ease-in-out infinite;
}
.scn-long-or-short-road .tree-1,
.scn-long-or-short-road .tree-2 {
  position: absolute; bottom: 30%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
}
.scn-long-or-short-road .tree-1 {
  left: 25%;
  animation: ls-sway 8s ease-in-out infinite;
}
.scn-long-or-short-road .tree-2 {
  right: 25%;
  animation: ls-sway 8s ease-in-out infinite 3s;
}
.scn-long-or-short-road .dust {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 2%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: ls-dust 6s ease-in-out infinite;
}
@keyframes ls-dusk { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ls-road-left { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-10deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes ls-road-right { 0% { transform: skewX(10deg) translateY(0); } 50% { transform: skewX(10deg) translateY(-2px); } 100% { transform: skewX(10deg) translateY(0); } }
@keyframes ls-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ls-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ls-dust { 0% { opacity: 0; transform: scale(0.8) translateY(0); } 50% { opacity: 0.6; transform: scale(1.2) translateY(-5px); } 100% { opacity: 0; transform: scale(0.8) translateY(-10px); } }

/* Scene 4: true-conception-of-knowledge */
.scn-true-conception-of-knowledge {
  background:
    linear-gradient(180deg, #1a1a10 0%, #2a2218 30%, #3a2a1a 60%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-true-conception-of-knowledge .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1510 0%, #2a2018 50%, #1a1510 100%);
  opacity: 0.7;
}
.scn-true-conception-of-knowledge .window {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.4);
  overflow: hidden;
}
.scn-true-conception-of-knowledge .window::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 20%, #c0a060 0%, transparent 50%);
  animation: tc-sun 8s ease-in-out infinite alternate;
}
.scn-true-conception-of-knowledge .sunbeam {
  position: absolute; top: 10%; left: 35%; width: 5%; height: 50%;
  background: linear-gradient(180deg, rgba(240,220,160,0.3) 0%, rgba(240,220,160,0.05) 100%);
  filter: blur(4px);
  transform: rotate(10deg);
  transform-origin: top center;
  animation: tc-beam 10s ease-in-out infinite;
}
.scn-true-conception-of-knowledge .figure {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 6s ease-in-out infinite;
}
.scn-true-conception-of-knowledge .lectern {
  position: absolute; bottom: 8%; left: 42%; width: 16%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5), inset 0 2px 4px rgba(100,80,60,0.2);
}
.scn-true-conception-of-knowledge .scroll {
  position: absolute; bottom: 12%; left: 46%; width: 8%; height: 2%;
  background: linear-gradient(180deg, #b09060 0%, #906030 100%);
  border-radius: 2%;
  transform: rotate(-5deg);
  animation: tc-scroll 8s ease-in-out infinite;
}
.scn-true-conception-of-knowledge .glow {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(circle, rgba(200,160,80,0.2) 0%, transparent 70%);
  animation: tc-ambient 6s ease-in-out infinite alternate;
}
@keyframes tc-sun { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes tc-beam { 0% { opacity: 0.2; transform: rotate(10deg) scaleY(1); } 50% { opacity: 0.6; transform: rotate(12deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(10deg) scaleY(1); } }
@keyframes tc-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tc-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes tc-ambient { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }

.scn-justice-vs-injustice-gain {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 50%, #d4c8b4 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,220,180,0.4) 0%, transparent 70%);
}
.scn-justice-vs-injustice-gain .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(90deg, #e5dcc8, #f2ede0, #e5dcc8);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.05);
  animation: jvi-wall 20s ease-in-out infinite alternate;
}
.scn-justice-vs-injustice-gain .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #b8a890 0%, #d4c8b4 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-justice-vs-injustice-gain .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #ffe8cc 0%, #c8d8e8 70%, #9ab8d0 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 40px rgba(255,200,120,0.3), 0 0 60px rgba(230,200,160,0.2);
  animation: jvi-window 8s ease-in-out infinite alternate;
}
.scn-justice-vs-injustice-gain .sunbeam {
  position: absolute; top: 25%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(0deg, rgba(255,220,180,0.15) 0%, rgba(255,240,220,0.3) 100%);
  clip-path: polygon(0% 0%, 30% 0%, 70% 100%, 40% 100%);
  filter: blur(20px);
  animation: jvi-beam 12s ease-in-out infinite alternate;
}
.scn-justice-vs-injustice-gain .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jvi-fig-left 4s ease-in-out infinite alternate;
}
.scn-justice-vs-injustice-gain .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jvi-fig-right 4s ease-in-out infinite alternate-reverse;
}
.scn-justice-vs-injustice-gain .platform {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 4%;
  background: linear-gradient(90deg, #8a7a6a, #b8a890, #8a7a6a);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: jvi-platform 6s ease-in-out infinite;
}
.scn-justice-vs-injustice-gain .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.08) 0%, transparent 80%);
  filter: blur(10px);
}
@keyframes jvi-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes jvi-window { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: 0.85; transform: scaleY(0.98) } }
@keyframes jvi-beam { 0% { opacity: 0.4; transform: translateX(-10px) } 100% { opacity: 0.7; transform: translateX(10px) } }
@keyframes jvi-fig-left { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes jvi-fig-right { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes jvi-platform { 0% { transform: scaleX(1); opacity: 0.9 } 50% { transform: scaleX(1.05); opacity: 1 } 100% { transform: scaleX(0.98); opacity: 0.95 } }

.scn-justice-is-virtue {
  background: linear-gradient(180deg, #4a4a5a 0%, #2c2c3c 40%, #15152a 100%),
              radial-gradient(ellipse at 30% 40%, rgba(200,160,80,0.15) 0%, transparent 60%);
}
.scn-justice-is-virtue .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, #0a0a1a 100%);
  animation: jiv-bg 15s ease-in-out infinite alternate;
}
.scn-justice-is-virtue .socrates {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: jiv-socrates 3s ease-in-out infinite alternate;
}
.scn-justice-is-virtue .thrasymachus {
  position: absolute; bottom: 25%; right: 15%; width: 22%; height: 52%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: jiv-thras 3.5s ease-in-out infinite alternate-reverse;
}
.scn-justice-is-virtue .sweat-drop {
  position: absolute; top: 30%; right: 28%; width: 6px; height: 10px;
  background: radial-gradient(ellipse, #c8e0e8 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: jiv-sweat 2s ease-in-out infinite;
}
.scn-justice-is-virtue .spark {
  position: absolute; top: 45%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0e0b0 0%, rgba(240,200,100,0.5) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,200,100,0.3);
  animation: jiv-spark 0.8s ease-in-out infinite alternate;
}
.scn-justice-is-virtue .shadow-diag {
  position: absolute; top: 40%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: jiv-shadow 5s ease-in-out infinite alternate;
}
@keyframes jiv-bg { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes jiv-socrates { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes jiv-thras { 0% { transform: rotate(0deg) translateY(0) scale(1) } 50% { transform: rotate(-4deg) translateY(-2px) scale(1.02) } 100% { transform: rotate(2deg) translateY(0) scale(1) } }
@keyframes jiv-sweat { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(8px) scale(0.6); opacity: 0.4 } 100% { transform: translateY(0) scale(0.8); opacity: 0.9 } }
@keyframes jiv-spark { 0% { transform: scale(0.8); opacity: 0.6 } 100% { transform: scale(1.4); opacity: 1 } }
@keyframes jiv-shadow { 0% { transform: translateX(-10px) skewX(-5deg) } 100% { transform: translateX(10px) skewX(5deg) } }

.scn-art-analogy-again {
  background: linear-gradient(135deg, #f0ead8 0%, #e5dcc8 40%, #d4c8b4 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,220,180,0.3) 0%, transparent 60%);
}
.scn-art-analogy-again .shelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #b8a890, #9a8a7a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-art-analogy-again .lyre {
  position: absolute; bottom: 38%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: aaa-lyre 8s ease-in-out infinite alternate;
}
.scn-art-analogy-again .scroll {
  position: absolute; bottom: 38%; right: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b090 100%);
  border-radius: 4px 4px 2px 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: aaa-scroll 10s ease-in-out infinite alternate;
}
.scn-art-analogy-again .rod {
  position: absolute; bottom: 36%; left: 48%; width: 40%; height: 2%;
  background: linear-gradient(90deg, #4a5a3a, #6a8a5a, #4a5a3a);
  transform: rotate(20deg);
  transform-origin: left center;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  animation: aaa-rod 12s ease-in-out infinite alternate;
}
.scn-art-analogy-again .book {
  position: absolute; bottom: 34%; left: 60%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px 2px 2px 4px;
  transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: aaa-book 6s ease-in-out infinite alternate;
}
.scn-art-analogy-again .light-glare {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.2) 0%, transparent 70%);
  filter: blur(30px);
  animation: aaa-glare 8s ease-in-out infinite alternate;
}
.scn-art-analogy-again .dust {
  position: absolute; top: 20%; left: 20%; width: 100%; height: 60%;
  background: repeating-linear-gradient(90deg, rgba(200,180,150,0.05) 0px, transparent 2px, transparent 8px);
  filter: blur(4px);
  animation: aaa-dust 25s linear infinite;
}
@keyframes aaa-lyre { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(0) } }
@keyframes aaa-scroll { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes aaa-rod { 0% { transform: rotate(20deg) scaleX(1) } 50% { transform: rotate(22deg) scaleX(1.05) } 100% { transform: rotate(18deg) scaleX(0.95) } }
@keyframes aaa-book { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes aaa-glare { 0% { opacity: 0.6 } 100% { opacity: 1 } }
@keyframes aaa-dust { 0% { background-position: 0px; } 100% { background-position: 200px; } }

.scn-thrasymachus-blushes {
  background: linear-gradient(135deg, #f0e0c8 0%, #d8c8a8 40%, #c0b090 100%),
              radial-gradient(ellipse at 60% 20%, rgba(220,160,100,0.3) 0%, transparent 80%);
}
.scn-thrasymachus-blushes .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  animation: tbl-bg 20s ease-in-out infinite alternate;
}
.scn-thrasymachus-blushes .lighting {
  position: absolute; top: -10%; left: 20%; width: 60%; height: 120%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,200,150,0.4) 0%, transparent 60%);
  filter: blur(40px);
  animation: tbl-lighting 8s ease-in-out infinite alternate;
}
.scn-thrasymachus-blushes .figure {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 65%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbl-figure 4s ease-in-out infinite alternate;
}
.scn-thrasymachus-blushes .hand {
  position: absolute; bottom: 35%; left: 48%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a, #5a4a3a);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tbl-hand 2s ease-in-out infinite alternate;
}
.scn-thrasymachus-blushes .sweat-bead {
  position: absolute; top: 28%; left: 45%; width: 8px; height: 10px;
  background: radial-gradient(ellipse, #c8e0e8 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tbl-sweat 3s ease-in-out infinite;
}
.scn-thrasymachus-blushes .blush {
  position: absolute; bottom: 40%; left: 38%; width: 24%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,100,80,0.35) 0%, transparent 70%);
  filter: blur(8px);
  animation: tbl-blush 5s ease-in-out infinite alternate;
}
.scn-thrasymachus-blushes .shadow {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 80%);
  filter: blur(10px);
}
.scn-thrasymachus-blushes .breath {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.08) 0%, transparent 100%);
  filter: blur(12px);
  animation: tbl-breath 3s ease-in-out infinite alternate;
}
@keyframes tbl-bg { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes tbl-lighting { 0% { transform: scale(0.95); opacity: 0.7 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes tbl-figure { 0% { transform: scaleY(1) translateY(0) rotate(0deg) } 50% { transform: scaleY(1.02) translateY(-2px) rotate(1deg) } 100% { transform: scaleY(0.98) translateY(0) rotate(-1deg) } }
@keyframes tbl-hand { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes tbl-sweat { 0% { transform: translateY(0) scale(1); opacity: 0.7 } 50% { transform: translateY(6px) scale(0.6); opacity: 0.3 } 100% { transform: translateY(0) scale(0.9); opacity: 0.8 } }
@keyframes tbl-blush { 0% { opacity: 0.4; transform: scaleX(0.9) } 50% { opacity: 0.8; transform: scaleX(1.1) } 100% { opacity: 0.5; transform: scaleX(1) } }
@keyframes tbl-breath { 0% { transform: scaleY(1); opacity: 0.3 } 100% { transform: scaleY(3); opacity: 0.05 } }

/* will-and-way */
.scn-ww { background: linear-gradient(180deg, #2b1e0e 0%, #1f140a 100%), radial-gradient(ellipse at 40% 30%, #4d3520 0%, transparent 70%); }
.scn-ww .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2b1e0e 0%, #3b2a16 50%, #2b1e0e 100%); animation: ww-wall 16s ease-in-out infinite; }
.scn-ww .window { position:absolute; top:20%; left:15%; width:60px; height:80px; background: radial-gradient(ellipse, #b8984a 0%, #8a6e30 50%, transparent 75%); border-radius:4px; box-shadow: 0 0 30px 8px rgba(184,152,74,.5); animation: ww-window 6s ease-in-out infinite alternate; }
.scn-ww .figure { position:absolute; bottom:28%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-figure 4s ease-in-out infinite; }
.scn-ww .desk   { position:absolute; bottom:20%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #4d3520 0%, #3b2a16 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ww-desk 8s ease-in-out infinite; }
.scn-ww .book   { position:absolute; bottom:20%; left:38%; width:20px; height:28px; background: linear-gradient(90deg, #6b4e2a 0%, #8a6e30 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ww-book 5s ease-in-out infinite; }
.scn-ww .lantern{ position:absolute; bottom:30%; left:60%; width:12px; height:20px; background: radial-gradient(ellipse, #d4b060 0%, #a08030 60%, transparent 80%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(212,176,96,.6); animation: ww-lantern 3s ease-in-out infinite alternate; }
@keyframes ww-wall   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ww-window { 0% { box-shadow: 0 0 20px 4px rgba(184,152,74,.4); opacity:.7 } 50% { box-shadow: 0 0 40px 12px rgba(184,152,74,.7); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(184,152,74,.5); opacity:.85 } }
@keyframes ww-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 70% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ww-desk   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes ww-book   { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-4deg) translateY(-1px) } }
@keyframes ww-lantern{ 0% { box-shadow: 0 0 15px 4px rgba(212,176,96,.4); opacity:.8 } 70% { box-shadow: 0 0 25px 8px rgba(212,176,96,.7); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(212,176,96,.5); opacity:.9 } }

/* waxen-tablet */
.scn-wt { background: linear-gradient(180deg, #2a1c10 0%, #1a1008 100%), radial-gradient(ellipse at 50% 60%, #3d2818 0%, transparent 70%); }
.scn-wt .bg-table { position:absolute; bottom:25%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4d3520 0%, #3b2a16 100%); border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: wt-table 12s ease-in-out infinite; }
.scn-wt .tablet   { position:absolute; bottom:30%; left:35%; width:60px; height:45px; background: linear-gradient(180deg, #7a6030 0%, #b8984a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wt-tablet 8s ease-in-out infinite; }
.scn-wt .stylus   { position:absolute; bottom:35%; left:48%; width:30px; height:4px; background: #4d3520; border-radius: 2px; transform-origin: 0% 50%; animation: wt-stylus 5s ease-in-out infinite; }
.scn-wt .hand     { position:absolute; bottom:32%; left:45%; width:22px; height:28px; background: linear-gradient(180deg, #4d3520 0%, #2a1c10 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom right; animation: wt-hand 5s ease-in-out infinite; }
.scn-wt .candle   { position:absolute; bottom:30%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #e0c060 0%, #8a6e30 100%); border-radius: 3px; box-shadow: 0 0 20px 6px rgba(224,192,96,.5); animation: wt-candle 4s ease-in-out infinite alternate; }
.scn-wt .wax-drip { position:absolute; bottom:26%; left:20%; width:4px; height:8px; background: #e0c060; border-radius: 50% 50% 40% 40%; animation: wt-drip 6s ease-in-out infinite; }
@keyframes wt-table   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes wt-tablet  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wt-stylus  { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes wt-hand    { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) } }
@keyframes wt-candle  { 0% { box-shadow: 0 0 15px 3px rgba(224,192,96,.4); opacity:.8 } 50% { box-shadow: 0 0 28px 8px rgba(224,192,96,.7); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(224,192,96,.5); opacity:.9 } }
@keyframes wt-drip    { 0% { transform: translateY(0); opacity:1 } 50% { transform: translateY(12px); opacity:.6 } 100% { transform: translateY(0); opacity:0 } }

/* self-education-thousand-things */
.scn-se { background: linear-gradient(180deg, #2e1f0f 0%, #1f140a 100%), radial-gradient(ellipse at 30% 50%, #3d2818 0%, transparent 70%); }
.scn-se .bg-shelf  { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2e1f0f 0%, #1f140a 100%); animation: se-bg 20s ease-in-out infinite; }
.scn-se .bookshelf { position:absolute; bottom:35%; left:10%; right:10%; height:40px; background: linear-gradient(90deg, #4d3520 0%, #3b2a16 50%, #4d3520 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: se-shelf 14s ease-in-out infinite; }
.scn-se .figure    { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-figure 6s ease-in-out infinite; }
.scn-se .lamp      { position:absolute; bottom:30%; left:60%; width:14px; height:24px; background: radial-gradient(ellipse, #d4b060 0%, #a08030 60%, transparent 80%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(212,176,96,.5); animation: se-lamp 4s ease-in-out infinite alternate; }
.scn-se .globe     { position:absolute; bottom:38%; left:55%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #8a7a50 0%, #4d3a1a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: se-globe 12s linear infinite; }
.scn-se .telescope { position:absolute; bottom:30%; left:72%; width:8px; height:36px; background: linear-gradient(90deg, #5a4020 0%, #3b2a16 100%); border-radius: 4px; transform: rotate(-15deg); transform-origin: bottom center; animation: se-telescope 8s ease-in-out infinite; }
@keyframes se-bg      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.88 } }
@keyframes se-shelf   { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes se-figure  { 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 se-lamp    { 0% { box-shadow: 0 0 12px 3px rgba(212,176,96,.3); opacity:.8 } 50% { box-shadow: 0 0 25px 8px rgba(212,176,96,.7); opacity:1 } 100% { box-shadow: 0 0 15px 4px rgba(212,176,96,.4); opacity:.9 } }
@keyframes se-globe   { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes se-telescope { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } }

/* counsels-for-after-education */
.scn-ca { background: linear-gradient(180deg, #3a2515 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #4d3520 0%, transparent 70%); }
.scn-ca .bg-room   { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #3a2515 0%, #2a1a0a 100%); animation: ca-bg 18s ease-in-out infinite; }
.scn-ca .shelves   { position:absolute; bottom:40%; left:15%; right:15%; height:20px; background: linear-gradient(90deg, #5a4020 0%, #4d3520 50%, #5a4020 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ca-shelves 10s ease-in-out infinite; }
.scn-ca .figure    { position:absolute; bottom:25%; left:40%; width:22px; height:55px; background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 7s ease-in-out infinite; }
.scn-ca .book-glow { position:absolute; bottom:32%; left:52%; width:16px; height:22px; background: radial-gradient(circle, #e8c050 0%, #b8984a 60%, transparent 80%); border-radius: 2px; box-shadow: 0 0 30px 8px rgba(232,192,80,.6); animation: ca-book 5s ease-in-out infinite alternate; }
.scn-ca .path-light{ position:absolute; bottom:0%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, rgba(232,192,80,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: ca-path 8s ease-in-out infinite; }
@keyframes ca-bg     { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.88 } }
@keyframes ca-shelves { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } }
@keyframes ca-figure  { 0% { transform: translateX(0) rotate(0deg) } 40% { transform: translateX(8px) rotate(3deg) } 80% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ca-book    { 0% { box-shadow: 0 0 20px 4px rgba(232,192,80,.4); opacity:.8 } 50% { box-shadow: 0 0 40px 12px rgba(232,192,80,.8); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(232,192,80,.5); opacity:.9 } }
@keyframes ca-path    { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.2; transform: scaleX(1) } }

.scn-return-to-cephalus {
  background: linear-gradient(180deg, #2d1f1a 0%, #4e2f22 40%, #7a4a2a 100%), radial-gradient(ellipse at 40% 60%, #b86a30 0%, transparent 70%);
}
.scn-return-to-cephalus .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(0deg, #3a2a1e 0%, #2d1f1a 100%); }
.scn-return-to-cephalus .fire   { position:absolute; bottom:30%; left:60%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #ff9a40 0%, #d46a1a 40%, #3d1f0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 60px 20px #ff7f2a, 0 0 120px 40px rgba(255,127,42,.3); animation: rtc-fire 2s ease-in-out infinite alternate; }
.scn-return-to-cephalus .cushion{ position:absolute; bottom:22%; left:20%; width:120px; height:60px; background: linear-gradient(135deg, #8b4e2a 0%, #6a3518 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 8px 6px #1a0e08; transform: rotate(2deg); animation: rtc-cushion 5s ease-in-out infinite; }
.scn-return-to-cephalus .figure { position:absolute; bottom:24%; left:23%; width:50px; height:80px; background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(2deg); animation: rtc-figure 4s ease-in-out infinite; }
.scn-return-to-cephalus .crown  { position:absolute; bottom:76%; left:21%; width:40px; height:16px; background: linear-gradient(90deg, #d4a040 0%, #f0c860 50%, #d4a040 100%); border-radius: 40% 40% 0 0; clip-path: polygon(0 100%, 10% 0, 30% 100%, 50% 0, 70% 100%, 90% 0, 100% 100%); animation: rtc-crown 3s ease-in-out infinite; filter: drop-shadow(0 4px 6px #a08030); }
.scn-return-to-cephalus .halo   { position:absolute; bottom:72%; left:18%; width:70px; height:70px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius:50%; animation: rtc-halo 6s ease-in-out infinite alternate; }
.scn-return-to-cephalus .smoke-a{ position:absolute; bottom:60%; left:62%; width:30px; height:60px; background: rgba(180,120,80,.15); border-radius:50%; filter:blur(8px); animation: rtc-smoke 8s ease-out infinite; }
.scn-return-to-cephalus .smoke-b{ position:absolute; bottom:65%; left:58%; width:20px; height:45px; background: rgba(180,120,80,.12); border-radius:50%; filter:blur(6px); animation: rtc-smoke 12s ease-out infinite reverse; }

@keyframes rtc-fire  { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.08) scaleX(.95); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.8; } }
@keyframes rtc-cushion{ 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes rtc-figure { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes rtc-crown  { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rtc-halo   { 0% { transform: scale(.9); opacity:.4; } 50% { transform: scale(1.1); opacity:.7; } 100% { transform: scale(.95); opacity:.5; } }
@keyframes rtc-smoke  { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-40px) scale(1.5); opacity:.2; } 100% { transform: translateY(-80px) scale(2); opacity:0; } }

.scn-cephalus-on-age {
  background: linear-gradient(180deg, #2a1c14 0%, #3d2a1c 40%, #6a3f22 100%), radial-gradient(ellipse at 50% 60%, #b86a30 0%, transparent 60%);
}
.scn-cephalus-on-age .bg-wall   { position:absolute; inset:0 0 25% 0; background: linear-gradient(0deg, #2a1c14 0%, #1a0e08 100%); }
.scn-cephalus-on-age .floor    { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2518 0%, #1a0e08 100%); }
.scn-cephalus-on-age .fire     { position:absolute; bottom:30%; left:48%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 100%, #ff9a40 0%, #d46a1a 40%, #3d1f0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 50px 15px #ff7f2a, 0 0 100px 30px rgba(255,127,42,.3); animation: age-fire 1.8s ease-in-out infinite alternate; }
.scn-cephalus-on-age .socrates { position:absolute; bottom:24%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%); border-radius: 50% 30% 30% 50% / 50% 50% 50% 50%; transform: rotate(10deg); animation: age-socrates 5s ease-in-out infinite; }
.scn-cephalus-on-age .cephalus{ position:absolute; bottom:24%; right:30%; width:45px; height:75px; background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%); border-radius: 30% 50% 50% 30% / 50% 50% 50% 50%; transform: rotate(-10deg); animation: age-cephalus 5s ease-in-out infinite; }
.scn-cephalus-on-age .chair-s  { position:absolute; bottom:20%; left:26%; width:60px; height:30px; background: linear-gradient(135deg, #5a3a20 0%, #3a2210 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px #1a0e08; }
.scn-cephalus-on-age .chair-c  { position:absolute; bottom:20%; right:26%; width:65px; height:30px; background: linear-gradient(135deg, #5a3a20 0%, #3a2210 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px #1a0e08; }
.scn-cephalus-on-age .shadow   { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, #1a0e08 0%, transparent 70%); animation: age-shadow 4s ease-in-out infinite alternate; }

@keyframes age-fire     { 0% { transform: scaleY(1) scaleX(1); opacity:.85; } 50% { transform: scaleY(1.1) scaleX(.92); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.08); opacity:.8; } }
@keyframes age-socrates { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes age-cephalus { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes age-shadow   { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-cephalus-on-riches {
  background: linear-gradient(180deg, #2a1c14 0%, #4e2f1c 50%, #7a4a2a 100%), radial-gradient(ellipse at 50% 80%, #c07030 0%, transparent 60%);
}
.scn-cephalus-on-riches .table  { position:absolute; bottom:20%; left:50%; width:160px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4018 0%, #4a2a10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px #1a0e08; }
.scn-cephalus-on-riches .arm    { position:absolute; bottom:22%; left:35%; width:50px; height:40px; background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(20deg); animation: ric-arm 5s ease-in-out infinite; }
.scn-cephalus-on-riches .hand   { position:absolute; bottom:24%; left:38%; width:30px; height:30px; background: linear-gradient(135deg, #3a2518 0%, #2b1a10 100%); border-radius: 50% 50% 40% 40% / 50% 50% 60% 60%; transform: rotate(-10deg); z-index:2; animation: ric-hand 5s ease-in-out infinite; }
.scn-cephalus-on-riches .coin   { position:absolute; bottom:28%; left:42%; width:24px; height:24px; background: radial-gradient(circle at 35% 35%, #f0d070 0%, #c09040 80%); border-radius:50%; box-shadow: 0 2px 4px #3d2a1c, inset 0 1px 0 #fff4c0; animation: ric-coin 3s ease-in-out infinite; }
.scn-cephalus-on-riches .lamp   { position:absolute; bottom:30%; right:30%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 80%, #6a3a18 0%, #3d1f0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 40px 15px #ff7f2a; animation: ric-lamp 2s ease-in-out infinite alternate; }
.scn-cephalus-on-riches .glow   { position:absolute; bottom:30%; right:25%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,127,42,.25) 0%, transparent 70%); border-radius:50%; animation: ric-glow 6s ease-in-out infinite alternate; }
.scn-cephalus-on-riches .cloth  { position:absolute; bottom:15%; left:45%; width:80px; height:30px; background: linear-gradient(180deg, #6a3a20 0%, #4a2a12 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(3deg); animation: ric-cloth 8s ease-in-out infinite; }

@keyframes ric-arm  { 0% { transform: rotate(18deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-1px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes ric-hand { 0% { transform: rotate(-12deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(2px,-1px); } 100% { transform: rotate(-12deg) translate(0,0); } }
@keyframes ric-coin { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(15deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes ric-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.1) scaleX(.95); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.8; } }
@keyframes ric-glow { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.2); opacity:.7; } 100% { transform: scale(.9); opacity:.4; } }
@keyframes ric-cloth{ 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }

.scn-question-of-justice {
  background: linear-gradient(180deg, #2a1c14 0%, #4e2f1c 50%, #7a4a2a 100%), radial-gradient(ellipse at 50% 70%, #b86a30 0%, transparent 60%);
}
.scn-question-of-justice .surface   { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a2a12 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-question-of-justice .scroll    { position:absolute; bottom:30%; left:50%; width:120px; height:16px; transform:translateX(-50%) rotate(-2deg); background: linear-gradient(90deg, #d4b87a 0%, #f0dcb0 50%, #c8a870 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px #1a0e08; animation: jus-scroll 8s ease-in-out infinite; }
.scn-question-of-justice .lamp      { position:absolute; bottom:35%; left:30%; width:45px; height:55px; background: radial-gradient(ellipse at 50% 80%, #6a3a18 0%, #3d1f0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 40px 15px #ff7f2a; animation: jus-lamp 2.2s ease-in-out infinite alternate; }
.scn-question-of-justice .hand-left  { position:absolute; bottom:28%; left:38%; width:28px; height:34px; background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform: rotate(-15deg); animation: jus-hand-l 4s ease-in-out infinite; }
.scn-question-of-justice .hand-right { position:absolute; bottom:28%; right:38%; width:28px; height:34px; background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform: rotate(15deg); animation: jus-hand-r 4s ease-in-out infinite; }
.scn-question-of-justice .inkwell   { position:absolute; bottom:26%; left:65%; width:20px; height:24px; background: linear-gradient(180deg, #3d2a1c 0%, #1a0e08 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 4px #0d0604; }
.scn-question-of-justice .shadow    { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, #0d0604 0%, transparent 70%); animation: jus-shadow 7s ease-in-out infinite alternate; }

@keyframes jus-scroll   { 0% { transform: translateX(-50%) rotate(-3deg) translateY(0); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-3deg) translateY(0); } }
@keyframes jus-lamp     { 0% { transform: scaleY(1) scaleX(1); opacity:.85; } 50% { transform: scaleY(1.12) scaleX(.92); opacity:1; } 100% { transform: scaleY(.92) scaleX(1.08); opacity:.75; } }
@keyframes jus-hand-l   { 0% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(2px,-1px); } 100% { transform: rotate(-15deg) translate(0,0); } }
@keyframes jus-hand-r   { 0% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(10deg) translate(-2px,-1px); } 100% { transform: rotate(15deg) translate(0,0); } }
@keyframes jus-shadow   { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-aristotle-on-laws {
  background: linear-gradient(180deg, #2c2418 0%, #1a1510 50%, #0d0a07 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-aristotle-on-laws .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2e22 0%, #241c12 100%);
  animation: al-wall 18s ease-in-out infinite alternate;
}
.scn-aristotle-on-laws .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  animation: al-desk 12s ease-in-out infinite;
}
.scn-aristotle-on-laws .scroll {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #d4b88a 0%, #a6875c 70%, #7a5f3a 100%);
  border-radius: 40% 40% 20% 20%; transform: rotate(-5deg);
  animation: al-scroll 6s ease-in-out infinite;
}
.scn-aristotle-on-laws .lamp {
  position: absolute; bottom: 38%; left: 62%; width: 12%; height: 14%;
  background: radial-gradient(circle at 50% 30%, #f0c060 0%, #b08030 60%, #5a3a10 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(240, 192, 96, 0.3);
  animation: al-lamp 4s ease-in-out infinite alternate;
}
.scn-aristotle-on-laws .figure {
  position: absolute; bottom: 12%; left: 30%; width: 22%; height: 32%;
  background: linear-gradient(180deg, #2a241e 0%, #1a1510 60%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: al-figure 9s ease-in-out infinite;
}
.scn-aristotle-on-laws .books {
  position: absolute; bottom: 16%; left: 55%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: -4px 4px 10px rgba(0,0,0,0.5);
  animation: al-books 15s ease-in-out infinite alternate;
}
.scn-aristotle-on-laws .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: al-shadow 6s ease-in-out infinite alternate;
}
.scn-aristotle-on-laws .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 35%, rgba(240, 192, 96, 0.08) 0%, transparent 60%);
  animation: al-glow 8s ease-in-out infinite;
}

@keyframes al-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes al-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes al-scroll {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes al-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(240, 192, 96, 0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px rgba(240, 192, 96, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 24px 8px rgba(240, 192, 96, 0.25); opacity: 0.85; }
}
@keyframes al-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes al-books {
  0% { transform: scale(1); }
  50% { transform: scale(0.98); }
  100% { transform: scale(1.02); }
}
@keyframes al-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes al-glow {
  0% { opacity: 0.05; }
  50% { opacity: 0.12; }
  100% { opacity: 0.06; }
}

.scn-aristotle-continued {
  background: linear-gradient(180deg, #2e261c 0%, #1e1812 50%, #0e0c08 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-aristotle-continued .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a221a 0%, #1c1612 100%);
  animation: ac-wall 20s ease-in-out infinite alternate;
}
.scn-aristotle-continued .shelf {
  position: absolute; top: 20%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #3a2e24 0%, #221a14 100%);
  border-radius: 4%; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ac-shelf 16s ease-in-out infinite;
}
.scn-aristotle-continued .table {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
  animation: ac-table 14s ease-in-out infinite;
}
.scn-aristotle-continued .figure {
  position: absolute; bottom: 10%; left: 30%; width: 18%; height: 36%;
  background: linear-gradient(180deg, #2c241e 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ac-figure 10s ease-in-out infinite;
}
.scn-aristotle-continued .papers {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #c8b08a 0%, #a08864 100%);
  border-radius: 10% 40% 10% 40%; transform: rotate(8deg);
  animation: ac-papers 5s ease-in-out infinite;
}
.scn-aristotle-continued .candle {
  position: absolute; bottom: 30%; left: 55%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e0c06a 0%, #b08830 70%, #6a4410 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 25px 10px rgba(224, 192, 106, 0.25);
  animation: ac-candle 3s ease-in-out infinite alternate;
}
.scn-aristotle-continued .shadow {
  position: absolute; bottom: 8%; left: 20%; right: 30%; height: 15%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ac-shadow 8s ease-in-out infinite alternate;
}
.scn-aristotle-continued .column {
  position: absolute; left: 8%; top: 0; bottom: 25%; width: 6%;
  background: linear-gradient(180deg, #3a3228 0%, #221c16 100%);
  border-radius: 10% 10% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,0.4);
  animation: ac-column 22s ease-in-out infinite;
}

@keyframes ac-wall {
  0% { opacity: 0.75; }
  50% { opacity: 0.85; }
  100% { opacity: 0.65; }
}
@keyframes ac-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ac-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ac-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ac-papers {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes ac-candle {
  0% { box-shadow: 0 0 18px 6px rgba(224, 192, 106, 0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 35px 14px rgba(224, 192, 106, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 8px rgba(224, 192, 106, 0.25); opacity: 0.85; }
}
@keyframes ac-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes ac-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}

.scn-aristotle-resume {
  background: linear-gradient(180deg, #1e1a14 0%, #14100c 50%, #0a0806 100%),
              radial-gradient(ellipse at 50% 20%, #2a221a 0%, transparent 50%);
}
.scn-aristotle-resume .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a221a 0%, #1a1612 100%);
  animation: ar-bg 20s ease-in-out infinite alternate;
}
.scn-aristotle-resume .column {
  position: absolute; left: 20%; top: 0; bottom: 10%; width: 10%;
  background: linear-gradient(180deg, #3a3028 0%, #221c16 100%);
  border-radius: 12% 12% 0 0; box-shadow: 4px 0 15px rgba(0,0,0,0.5);
  animation: ar-column 25s ease-in-out infinite;
}
.scn-aristotle-resume .books {
  position: absolute; left: 25%; top: 10%; bottom: 20%; width: 8%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,0.4);
  animation: ar-books 18s ease-in-out infinite alternate;
}
.scn-aristotle-resume .figure {
  position: absolute; bottom: 8%; left: 35%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2c241e 0%, #181410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ar-figure 11s ease-in-out infinite;
}
.scn-aristotle-resume .lantern {
  position: absolute; bottom: 35%; left: 55%; width: 5%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #f0c060 0%, #a07830 60%, #503010 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(240, 192, 96, 0.3);
  animation: ar-lantern 4s ease-in-out infinite alternate;
}
.scn-aristotle-resume .beam {
  position: absolute; top: 40%; left: 50%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(240, 192, 96, 0.15) 0%, transparent 100%);
  transform: rotate(-15deg); transform-origin: top left;
  animation: ar-beam 6s ease-in-out infinite;
}

@keyframes ar-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ar-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1.03); }
}
@keyframes ar-books {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.96); }
  100% { transform: scaleX(1.04); }
}
@keyframes ar-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ar-lantern {
  0% { box-shadow: 0 0 20px 6px rgba(240, 192, 96, 0.2); opacity: 0.8; transform: rotate(-3deg); }
  50% { box-shadow: 0 0 45px 16px rgba(240, 192, 96, 0.5); opacity: 1; transform: rotate(3deg); }
  100% { box-shadow: 0 0 24px 8px rgba(240, 192, 96, 0.25); opacity: 0.85; transform: rotate(-1deg); }
}
@keyframes ar-beam {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

.scn-plato-on-laws-relation {
  background: linear-gradient(180deg, #2c2218 0%, #1c1410 50%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a18 0%, transparent 60%);
}
.scn-plato-on-laws-relation .arch {
  position: absolute; left: 10%; top: 0; bottom: 20%; width: 80%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pr-arch 22s ease-in-out infinite alternate;
}
.scn-plato-on-laws-relation .bg {
  position: absolute; left: 15%; top: 5%; right: 15%; bottom: 22%;
  background: linear-gradient(135deg, #3a2e24 0%, #241c16 100%);
  border-radius: 10% 10% 2% 2%;
  animation: pr-bg 18s ease-in-out infinite alternate;
}
.scn-plato-on-laws-relation .figure {
  position: absolute; bottom: 15%; left: 30%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr-figure 10s ease-in-out infinite;
}
.scn-plato-on-laws-relation .scroll {
  position: absolute; bottom: 22%; left: 35%; width: 25%; height: 8%;
  background: linear-gradient(180deg, #d4b88a 0%, #a6875c 70%, #7a5f3a 100%);
  border-radius: 40% 10% 10% 40%; transform: rotate(12deg);
  animation: pr-scroll 7s ease-in-out infinite;
}
.scn-plato-on-laws-relation .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,0.5);
  animation: pr-table 16s ease-in-out infinite;
}
.scn-plato-on-laws-relation .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 20%, #e8c068 0%, #a07830 60%, #503010 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 12px rgba(232, 192, 104, 0.3);
  animation: pr-lamp 5s ease-in-out infinite alternate;
}
.scn-plato-on-laws-relation .motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(232, 192, 104, 0.06) 0%, transparent 40%);
  animation: pr-motes 12s ease-in-out infinite;
}

@keyframes pr-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1.03); }
}
@keyframes pr-bg {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes pr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pr-scroll {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(11deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes pr-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pr-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(232, 192, 104, 0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 45px 16px rgba(232, 192, 104, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 24px 8px rgba(232, 192, 104, 0.25); opacity: 0.85; }
}
@keyframes pr-motes {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.35; transform: scale(0.98); }
}

.scn-mixed-race-offspring {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #0e0e1a 100%), radial-gradient(ellipse at 40% 30%, #2a2a44 0%, transparent 80%);
}
.scn-mixed-race-offspring .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1e1e32 0%, #2a2a44 30%, #1a1a2e 100%);
}
.scn-mixed-race-offspring .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mixed-race-offspring .window {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #40406e 0%, #2a2a4a 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: mro-window 12s ease-in-out infinite alternate;
}
.scn-mixed-race-offspring .candle {
  position: absolute; bottom: 38%; left: 55%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #ffb040, 0 0 40px 16px rgba(255,176,64,0.3);
  animation: mro-candle 4s ease-in-out infinite alternate;
}
.scn-mixed-race-offspring .child {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mro-child 6s ease-in-out infinite;
}
.scn-mixed-race-offspring .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: mro-shadow 6s ease-in-out infinite;
}
.scn-mixed-race-offspring .dust {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,140,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: mro-dust 15s linear infinite;
}
@keyframes mro-window {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes mro-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; box-shadow: 0 0 16px 6px #ffb040, 0 0 36px 12px rgba(255,176,64,0.25); }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; box-shadow: 0 0 24px 10px #ffb040, 0 0 48px 18px rgba(255,176,64,0.4); }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.85; box-shadow: 0 0 12px 4px #d48a20, 0 0 28px 8px rgba(212,138,32,0.2); }
}
@keyframes mro-child {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mro-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.2) translateX(4px); opacity: 0.7; }
  100% { transform: scaleX(0.9) translateX(-2px); opacity: 0.4; }
}
@keyframes mro-dust {
  0% { transform: translate(0,0); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.4; }
  100% { transform: translate(30px, -60px); opacity: 0; }
}

.scn-marriage-of-relatives {
  background: linear-gradient(180deg, #1f1f2e 0%, #2a2a3c 50%, #14141e 100%), radial-gradient(ellipse at 60% 40%, #2a2a3c 0%, transparent 70%);
}
.scn-marriage-of-relatives .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #252540 0%, #1a1a30 100%);
}
.scn-marriage-of-relatives .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-marriage-of-relatives .candle-pair {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a060, #a07030);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px #ffb040, 0 0 32px 12px rgba(255,176,64,0.3);
  animation: mor-candle 5s ease-in-out infinite alternate;
}
.scn-marriage-of-relatives .couple-left {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mor-left 8s ease-in-out infinite;
}
.scn-marriage-of-relatives .couple-right {
  position: absolute; bottom: 24%; right: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mor-right 8s ease-in-out infinite;
}
.scn-marriage-of-relatives .cradle {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: mor-cradle 4s ease-in-out infinite alternate;
}
.scn-marriage-of-relatives .drape {
  position: absolute; top: 0; right: 0; width: 40%; height: 90%;
  background: linear-gradient(90deg, transparent 0%, rgba(20,10,10,0.6) 100%);
  animation: mor-drape 10s ease-in-out infinite alternate;
}
@keyframes mor-candle {
  0% { opacity: 0.85; transform: scaleY(1) translateY(0); box-shadow: 0 0 12px 4px #ffb040, 0 0 28px 8px rgba(255,176,64,0.2); }
  50% { opacity: 1; transform: scaleY(1.15) translateY(-2px); box-shadow: 0 0 20px 8px #ffb040, 0 0 40px 15px rgba(255,176,64,0.35); }
  100% { opacity: 0.8; transform: scaleY(0.9) translateY(1px); box-shadow: 0 0 10px 3px #d48a20, 0 0 20px 6px rgba(212,138,32,0.15); }
}
@keyframes mor-left {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-3deg); }
  75% { transform: translateX(2px) rotate(0); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mor-right {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(1px) rotate(3deg); }
  75% { transform: translateX(-2px) rotate(0); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes mor-cradle {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes mor-drape {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.05); opacity: 0.7; }
  100% { transform: scaleX(0.95); opacity: 0.6; }
}

.scn-primitive-community-of-wives {
  background: linear-gradient(180deg, #1a1a14 0%, #2a241e 40%, #0e0c0a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-primitive-community-of-wives .hut-bg {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #1e1a14 0%, #32281c 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}
.scn-primitive-community-of-wives .fire-pit {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #8a5a1a 0%, #3a2a0a 100%);
  border-radius: 50%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-primitive-community-of-wives .fire-glow {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff7040 0%, rgba(255,112,64,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: pcw-glow 3s ease-in-out infinite alternate;
}
.scn-primitive-community-of-wives .figure-a {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcw-fig-a 7s ease-in-out infinite;
}
.scn-primitive-community-of-wives .figure-b {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcw-fig-b 9s ease-in-out infinite;
}
.scn-primitive-community-of-wives .figure-c {
  position: absolute; bottom: 22%; right: 25%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcw-fig-c 8s ease-in-out infinite;
}
.scn-primitive-community-of-wives .smoke {
  position: absolute; top: 5%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,160,130,0.4) 0%, transparent 80%);
  filter: blur(4px);
  animation: pcw-smoke 10s ease-in-out infinite;
}
@keyframes pcw-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
}
@keyframes pcw-fig-a {
  0% { transform: translateY(0) rotate(2deg); }
  33% { transform: translateY(-2px) rotate(-1deg); }
  66% { transform: translateY(1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pcw-fig-b {
  0% { transform: translateY(0) rotate(-3deg); }
  33% { transform: translateY(1px) rotate(2deg); }
  66% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pcw-fig-c {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(2px) rotate(3deg); }
  66% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pcw-smoke {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(-50%) translateY(-10px) scale(1.3); opacity: 0.5; }
  100% { transform: translateX(-50%) translateY(-20px) scale(1.6); opacity: 0; }
}

.scn-anthropology-and-uncertainty {
  background: linear-gradient(180deg, #1a1e28 0%, #242c3a 30%, #0e1018 100%), radial-gradient(ellipse at 50% 40%, #2a3444 0%, transparent 70%);
}
.scn-anthropology-and-uncertainty .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e2230 0%, #141820 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-anthropology-and-uncertainty .desk {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-anthropology-and-uncertainty .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09060 0%, #705030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3);
  animation: au-lamp 6s ease-in-out infinite alternate;
}
.scn-anthropology-and-uncertainty .scholar {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au-scholar 5s ease-in-out infinite;
}
.scn-anthropology-and-uncertainty .book-pile {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #3a3020 0%, #1e1810 100%);
  border-radius: 6%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: au-books 8s ease-in-out infinite alternate;
}
.scn-anthropology-and-uncertainty .map {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c0a870 0%, #a08850 50%, #807040 100%);
  border-radius: 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: au-map 12s ease-in-out infinite;
}
.scn-anthropology-and-uncertainty .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,220,0.1) 0%, transparent 60%);
  animation: au-fog 20s linear infinite alternate;
}
@keyframes au-lamp {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); box-shadow: 0 0 24px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,0.25); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.1); box-shadow: 0 0 36px 14px #ffd080, 0 0 70px 24px rgba(255,208,128,0.4); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 18px 5px #d4a060, 0 0 36px 10px rgba(212,160,96,0.2); }
}
@keyframes au-scholar {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(1px) rotate(3deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes au-books {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.8; }
}
@keyframes au-map {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes au-fog {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.05); }
  100% { opacity: 0.15; transform: scale(0.95); }
}

.scn-limited-view { background: linear-gradient(180deg, #1e1a2a 0%, #2a2238 60%, #181420 100%), radial-gradient(ellipse at 30% 50%, #2e2840 0%, transparent 70%); }
.scn-limited-view .room-bg  { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #3a2e3c 0%, #1a1620 80%); animation: li-bg 12s ease-in-out infinite alternate; }
.scn-limited-view .room-wall { position:absolute; inset:10% 20% 25% 15%; background: linear-gradient(90deg, #2a2432 0%, #3d3345 40%, #2c2638 100%); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-limited-view .window-frame { position:absolute; inset:20% 25% 40% 30%; border: 8px solid #4a3e4e; border-radius: 6px; background: rgba(10,12,20,.7); box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-limited-view .hills-outside { position:absolute; inset:22% 27% 42% 32%; background: linear-gradient(180deg, #5c6b5a 0%, #3a4a3a 60%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 80% 0 0; filter: blur(2px); animation: li-hills 20s ease-in-out infinite alternate; }
.scn-limited-view .floor     { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #221e1c 0%, #2a2624 40%, #1c1818 100%); border-radius: 30% 0 0 0; }
.scn-limited-view .figure    { position:absolute; bottom:15%; left:35%; width:24px; height:44px; background: linear-gradient(180deg, #2c2630 0%, #1a1620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li-figure 4s ease-in-out infinite; }
.scn-limited-view .lamp      { position:absolute; bottom:40%; left:66%; width:10px; height:14px; background: radial-gradient(circle, #e0c880 0%, #b09850 60%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px #b09850, 0 0 60px 20px rgba(176,152,80,.3); animation: li-lamp 3s ease-in-out infinite alternate; }
@keyframes li-bg   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes li-hills { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes li-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes li-lamp { 0% { box-shadow: 0 0 20px 5px #b09850, 0 0 40px 10px rgba(176,152,80,.2); opacity:.8 } 50% { box-shadow: 0 0 40px 15px #d4c070, 0 0 80px 25px rgba(212,192,112,.4); opacity:1 } 100% { box-shadow: 0 0 25px 8px #b09850, 0 0 50px 15px rgba(176,152,80,.3); opacity:.9 } }

.scn-two-other-ideals { background: linear-gradient(180deg, #0c0e18 0%, #14182a 60%, #1c2040 100%), radial-gradient(ellipse at 40% 60%, #1c2040 0%, transparent 70%); }
.scn-two-other-ideals .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1e3a 0%, transparent 70%); animation: toi-bg 15s ease-in-out infinite alternate; }
.scn-two-other-ideals .horizon { position:absolute; bottom:40%; left:10%; right:10%; height:2px; background: linear-gradient(90deg, transparent, #4a5a7a 30%, #6a8aaa 50%, #4a5a7a 70%, transparent); filter: blur(2px); animation: toi-horizon 8s ease-in-out infinite; }
.scn-two-other-ideals .ideal-left { position:absolute; bottom:50%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #8a96c8 0%, #4a5a8a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(74,90,138,.4); animation: toi-left 12s ease-in-out infinite; }
.scn-two-other-ideals .ideal-right { position:absolute; bottom:45%; right:25%; width:50px; height:50px; background: radial-gradient(circle, #b0b8e8 0%, #6a7aaa 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 25px rgba(106,122,170,.3); animation: toi-right 14s ease-in-out infinite; }
.scn-two-other-ideals .particles { position:absolute; inset:0; background-image: radial-gradient(2px 2px at 20% 30%, #8a96c8, transparent), radial-gradient(2px 2px at 50% 70%, #b0b8e8, transparent), radial-gradient(1px 1px at 80% 40%, #8a96c8, transparent), radial-gradient(1px 1px at 10% 90%, #b0b8e8, transparent); background-size: 200% 200%; animation: toi-particles 20s linear infinite; }
@keyframes toi-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes toi-horizon { 0% { opacity:.5; transform: scaleX(.9) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes toi-left { 0% { transform: translate(0,0) scale(1) rotate(0) } 33% { transform: translate(15px,-8px) scale(1.1) rotate(5deg) } 66% { transform: translate(-10px,5px) scale(.95) rotate(-3deg) } 100% { transform: translate(0,0) scale(1) rotate(0) } }
@keyframes toi-right { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-20px,10px) scale(1.2) } 100% { transform: translate(0,0) scale(1) } }
@keyframes toi-particles { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

.scn-first-ideal-future-of-race { background: linear-gradient(180deg, #f5d6a0 0%, #e8c08a 30%, #d4a06a 60%, #b08050 100%), radial-gradient(ellipse at 30% 0%, #ffe8b0 0%, transparent 60%); }
.scn-first-ideal-future-of-race .sky-dawn { position:absolute; inset:0; background: linear-gradient(180deg, #ffd08a 0%, #f0b070 40%, #d09060 80%, #b08050 100%); animation: fif-sky 20s ease-in-out infinite alternate; }
.scn-first-ideal-future-of-race .sun-rising { position:absolute; bottom:50%; left:50%; width:60px; height:60px; margin-left:-30px; background: radial-gradient(circle, #ffe8a0 0%, #f0c070 40%, #e0a050 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px #f0c070, 0 0 150px 60px rgba(240,192,112,.3); animation: fif-sun 30s ease-in-out infinite; }
.scn-first-ideal-future-of-race .horizon-land { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 40% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-first-ideal-future-of-race .figure-hill { position:absolute; bottom:30%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fif-figure 6s ease-in-out infinite; }
.scn-first-ideal-future-of-race .rays { position:absolute; top:10%; left:20%; right:20%; bottom:40%; background: linear-gradient(0deg, transparent, rgba(255,224,160,.15) 40%, rgba(255,224,160,.3) 80%); clip-path: polygon(20% 100%, 80% 100%, 60% 0%, 40% 0%); animation: fif-rays 10s ease-in-out infinite alternate; }
.scn-first-ideal-future-of-race .grass { position:absolute; bottom:25%; left:0; right:0; height:10%; background: linear-gradient(0deg, #4a6030 0%, #3a5020 40%, transparent 100%); border-radius: 60% 60% 0 0; filter: blur(1px); animation: fif-grass 4s ease-in-out infinite; }
.scn-first-ideal-future-of-race .bird { position:absolute; top:15%; left:60%; width:30px; height:10px; background: radial-gradient(ellipse at 30% 50%, #1a1a1a 0%, transparent 100%); border-radius: 50%; transform: rotate(-20deg); animation: fif-bird 25s linear infinite; }
@keyframes fif-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fif-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-20px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes fif-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fif-rays { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.3; transform: scaleY(1) } }
@keyframes fif-grass { 0% { transform: skewX(0) } 50% { transform: skewX(2deg) } 100% { transform: skewX(0) } }
@keyframes fif-bird { 0% { transform: translateX(0) rotate(-20deg) } 50% { transform: translateX(-80px) rotate(-10deg) } 100% { transform: translateX(-160px) rotate(-20deg) } }

.scn-will-of-god { background: linear-gradient(180deg, #2a1a10 0%, #3a2218 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 30%, #4a2818 0%, transparent 60%); }
.scn-will-of-god .bg-chamber { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, #3a1e12 0%, #1a0e08 80%); animation: wg-bg 20s ease-in-out infinite alternate; }
.scn-will-of-god .floor-stone { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(0deg, #2a1a10 0%, #4a2a18 40%, #2a1a10 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-will-of-god .altar { position:absolute; bottom:18%; left:50%; width:80px; height:30px; margin-left:-40px; background: linear-gradient(180deg, #5a3a24 0%, #3a2214 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-will-of-god .candle { position:absolute; bottom:28%; left:50%; width:10px; height:40px; margin-left:-5px; background: linear-gradient(180deg, #e8d8b0 0%, #b09870 100%); border-radius: 2px; box-shadow: -2px 0 6px rgba(0,0,0,.3); }
.scn-will-of-god .flame { position:absolute; bottom:38%; left:50%; width:8px; height:20px; margin-left:-4px; background: radial-gradient(circle at 50% 20%, #ffe8a0 0%, #f0b050 40%, #e08030 80%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 10px #e08030, 0 0 50px 20px rgba(224,128,48,.4); animation: wg-flame 2s ease-in-out infinite alternate; }
.scn-will-of-god .hands { position:absolute; bottom:24%; left:50%; width:28px; height:30px; margin-left:-14px; background: radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, #3a2214 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: wg-hands 5s ease-in-out infinite; }
.scn-will-of-god .beam-light { position:absolute; top:5%; left:40%; right:40%; bottom:25%; background: linear-gradient(180deg, rgba(255,200,150,.2) 0%, rgba(255,200,150,.05) 60%, transparent 100%); clip-path: polygon(0% 100%, 100% 100%, 60% 0%, 40% 0%); animation: wg-beam 8s ease-in-out infinite alternate; }
.scn-will-of-god .shadow-cross { position:absolute; left:30%; right:30%; top:10%; height:40%; background: linear-gradient(0deg, transparent, rgba(0,0,0,.1) 50%, transparent); clip-path: polygon(45% 0%, 55% 0%, 55% 40%, 100% 40%, 100% 50%, 55% 50%, 55% 100%, 45% 100%, 45% 50%, 0% 50%, 0% 40%, 45% 40%); animation: wg-cross 12s ease-in-out infinite; }
@keyframes wg-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wg-flame { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(.95); opacity:.85 } }
@keyframes wg-hands { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wg-beam { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes wg-cross { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.05) } 100% { opacity:.2; transform: scale(1) } }

.scn-pay-is-additional-art {
  background: 
    linear-gradient(180deg, #1f1812 0%, #3a2a1a 40%, #4a3520 100%),
    radial-gradient(ellipse at 70% 60%, #5a3f1a 0%, transparent 70%);
}
.scn-pay-is-additional-art .table {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e0e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-pay-is-additional-art .coin {
  position: absolute;
  bottom: 28%; left: 55%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #d4a04a 0%, #b08030 60%, #8a6020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(180,120,40,0.4);
  animation: pay-coin 6s ease-in-out infinite;
}
.scn-pay-is-additional-art .hand {
  position: absolute;
  bottom: 26%; left: 42%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pay-hand 4s ease-in-out infinite alternate;
}
.scn-pay-is-additional-art .lamp-glow {
  position: absolute;
  bottom: 50%; left: 30%;
  width: 150px; height: 150px;
  background: radial-gradient(circle, rgba(200,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: pay-lamp 8s ease-in-out infinite alternate;
}
.scn-pay-is-additional-art .shadow-left {
  position: absolute;
  bottom: 20%; left: 0;
  width: 40%; height: 40%;
  background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 0 50% 0 0;
  animation: pay-shadow-drift 12s ease-in-out infinite;
}
.scn-pay-is-additional-art .shadow-right {
  position: absolute;
  bottom: 20%; right: 0;
  width: 35%; height: 50%;
  background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50% 0 0 0;
  animation: pay-shadow-drift 12s ease-in-out infinite reverse;
}
.scn-pay-is-additional-art .air-dust {
  position: absolute;
  top: 20%; left: 20%;
  width: 10px; height: 10px;
  background: rgba(200,180,150,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: pay-dust 20s linear infinite;
}
@keyframes pay-coin {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pay-hand {
  0% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(12px) rotate(2deg); }
}
@keyframes pay-lamp {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes pay-shadow-drift {
  0% { opacity: 0.6; }
  50% { opacity: 0.3; }
  100% { opacity: 0.6; }
}
@keyframes pay-dust {
  0% { transform: translate(0,0); opacity: 0; }
  20% { opacity: 0.3; }
  80% { opacity: 0.3; }
  100% { transform: translate(40px, -30px); opacity: 0; }
}

.scn-working-for-nothing {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2a1c 100%),
    radial-gradient(ellipse at 60% 80%, #4a3520 0%, transparent 70%);
}
.scn-working-for-nothing .desk {
  position: absolute;
  bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-working-for-nothing .profile {
  position: absolute;
  bottom: 28%; left: 20%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: wfn-profile 8s ease-in-out infinite alternate;
}
.scn-working-for-nothing .quill {
  position: absolute;
  bottom: 40%; left: 30%;
  width: 35px; height: 4px;
  background: linear-gradient(90deg, #6a4a2a 0%, #b09070 50%, #6a4a2a 100%);
  border-radius: 50%;
  transform: rotate(30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wfn-quill 5s ease-in-out infinite;
}
.scn-working-for-nothing .inkwell {
  position: absolute;
  bottom: 30%; left: 25%;
  width: 20px; height: 25px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.8);
}
.scn-working-for-nothing .candle {
  position: absolute;
  bottom: 40%; left: 55%;
  width: 12px; height: 45px;
  background: linear-gradient(180deg, #d4a04a 0%, #8a6a20 30%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: wfn-candle 4s ease-in-out infinite;
}
.scn-working-for-nothing .candle-glow {
  position: absolute;
  bottom: 55%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: wfn-glow 6s ease-in-out infinite alternate;
}
.scn-working-for-nothing .paper {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 70px; height: 50px;
  background: linear-gradient(135deg, #e8d8b8 0%, #d0c098 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: wfn-paper 10s ease-in-out infinite;
}
@keyframes wfn-profile {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes wfn-quill {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes wfn-candle {
  0%,100% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
}
@keyframes wfn-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes wfn-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

.scn-three-modes-of-payment {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #3a2a1c 100%),
    radial-gradient(ellipse at 50% 70%, #4a3520 0%, transparent 70%);
}
.scn-three-modes-of-payment .shelf {
  position: absolute;
  bottom: 15%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e0e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-three-modes-of-payment .coin-mode {
  position: absolute;
  bottom: 25%; left: 20%;
  width: 35px; height: 35px;
  background: radial-gradient(circle, #d4a04a 0%, #b08030 60%, #8a6020 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 3px rgba(180,120,40,0.3);
  animation: thr-coin 5s ease-in-out infinite;
}
.scn-three-modes-of-payment .crown-mode {
  position: absolute;
  bottom: 28%; left: 45%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #8a6a20 0%, #5a4020 100%);
  clip-path: polygon(0% 100%, 20% 30%, 50% 0%, 80% 30%, 100% 100%);
  box-shadow: 0 0 10px 2px rgba(120,100,60,0.3);
  animation: thr-crown 7s ease-in-out infinite alternate;
}
.scn-three-modes-of-payment .book-mode {
  position: absolute;
  bottom: 24%; left: 70%;
  width: 30px; height: 40px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: inset 2px 2px 4px rgba(255,255,200,0.1);
  transform: rotate(3deg);
  animation: thr-book 6s ease-in-out infinite;
}
.scn-three-modes-of-payment .lamp-beam {
  position: absolute;
  top: 0; left: 40%; right: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(200,160,80,0.1) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 30% 100%, 70% 100%);
  animation: thr-beam 9s ease-in-out infinite alternate;
}
.scn-three-modes-of-payment .shadow-panel {
  position: absolute;
  bottom: 20%; left: 15%;
  width: 20%; height: 30%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 0 50% 0 0;
  animation: thr-shadow 12s ease-in-out infinite;
}
.scn-three-modes-of-payment .shadow-panel-2 {
  position: absolute;
  bottom: 20%; right: 15%;
  width: 20%; height: 30%;
  background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50% 0 0 0;
  animation: thr-shadow 12s ease-in-out infinite reverse;
}
@keyframes thr-coin {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes thr-crown {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes thr-book {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes thr-beam {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}
@keyframes thr-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

.scn-penalty-for-refusing {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #3a2a1c 100%),
    radial-gradient(ellipse at 30% 60%, #4a3520 0%, transparent 70%);
}
.scn-penalty-for-refusing .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-penalty-for-refusing .figure-back {
  position: absolute;
  bottom: 20%; left: 25%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pen-figure 6s ease-in-out infinite alternate;
}
.scn-penalty-for-refusing .purses {
  position: absolute;
  bottom: 25%; left: 40%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #8a6a20 0%, #5a4020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pen-purses 5s ease-in-out infinite;
}
.scn-penalty-for-refusing .reject-hand {
  position: absolute;
  bottom: 28%; left: 35%;
  width: 20px; height: 35px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: pen-hand 4s ease-in-out infinite alternate;
}
.scn-penalty-for-refusing .lantern {
  position: absolute;
  bottom: 45%; left: 15%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4a04a 0%, #8a6a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 5px rgba(200,160,80,0.3);
  animation: pen-lantern 7s ease-in-out infinite;
}
.scn-penalty-for-refusing .lantern-halo {
  position: absolute;
  bottom: 40%; left: 10%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: pen-halo 9s ease-in-out infinite alternate;
}
.scn-penalty-for-refusing .wall-shadow {
  position: absolute;
  bottom: 20%; right: 0;
  width: 60%; height: 60%;
  background: linear-gradient(270deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50% 0 0 50%;
  animation: pen-shadow 10s ease-in-out infinite;
}
@keyframes pen-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pen-purses {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pen-hand {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-4px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes pen-lantern {
  0%,100% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
}
@keyframes pen-halo {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes pen-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.2; }
  100% { opacity: 0.5; }
}

/* reverse-of-family */
.scn-reverse-of-family {
  background: 
    linear-gradient(180deg, #1f1a14 0%, #3a2e24 40%, #2c231e 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2e 0%, transparent 70%);
}
.scn-reverse-of-family .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2b241f 0%, #1f1a14 50%, #3d3228 100%);
  animation: rf-room 20s ease-in-out infinite alternate;
}
.scn-reverse-of-family .window-frame {
  position: absolute; top: 10%; left: 55%; width: 35%; height: 40%;
  background: #3d2f24;
  border: 10px solid #4a3728;
  border-radius: 6%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-reverse-of-family .window-glow {
  position: absolute; top: 13%; left: 58%; width: 28%; height: 34%;
  background: radial-gradient(ellipse, #b0885a 0%, transparent 70%);
  opacity: 0.3;
  animation: rf-glow 6s ease-in-out infinite alternate;
}
.scn-reverse-of-family .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #5c3f2b 0%, #3a2518 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-reverse-of-family .chair {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3320 0%, #2e1e12 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: rf-chair 8s ease-in-out infinite;
}
.scn-reverse-of-family .figure-reader {
  position: absolute; bottom: 18%; left: 52%; width: 16%; height: 35%;
  background: linear-gradient(135deg, #35261b 0%, #1f140e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rf-reader 10s ease-in-out infinite;
}
.scn-reverse-of-family .child-figure {
  position: absolute; bottom: 18%; left: 70%; width: 12%; height: 22%;
  background: linear-gradient(135deg, #2d2016 0%, #1a110c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: rf-child 12s ease-in-out infinite alternate;
}
.scn-reverse-of-family .candle {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #e8d0a0 0%, #b89860 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(2deg);
}
.scn-reverse-of-family .candle-glow {
  position: absolute; bottom: 35%; left: 45%; width: 12%; height: 15%;
  background: radial-gradient(circle, #ffd080 0%, #c09050 40%, transparent 70%);
  animation: rf-flame 4s ease-in-out infinite alternate;
}
@keyframes rf-room {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes rf-glow {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.35; transform: scale(1.05); }
  100% { opacity: 0.25; transform: scale(1); }
}
@keyframes rf-chair {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes rf-reader {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rf-child {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes rf-flame {
  0% { opacity: 0.7; transform: scale(1) translateY(0); }
  50% { opacity: 1; transform: scale(1.15) translateY(-3px); }
  100% { opacity: 0.8; transform: scale(0.95) translateY(0); }
}

/* idea-of-state */
.scn-idea-of-state {
  background:
    linear-gradient(180deg, #1a1f2a 0%, #2a3342 40%, #1a1f2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3342 0%, transparent 70%);
}
.scn-idea-of-state .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a3342 0%, #1a1f2a 50%, #3a4455 100%);
  animation: is-wall 25s ease-in-out infinite alternate;
}
.scn-idea-of-state .column {
  position: absolute; bottom: 0; width: 8%; height: 70%;
  background: linear-gradient(180deg, #4a5265 0%, #2a3342 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4), inset 4px 0 8px rgba(255,255,255,0.05);
}
.scn-idea-of-state .column.left {
  left: 10%;
  animation: is-col-left 15s ease-in-out infinite;
}
.scn-idea-of-state .column.right {
  right: 10%;
  animation: is-col-right 15s ease-in-out infinite reverse;
}
.scn-idea-of-state .desk {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5c4a3e 0%, #3a2e24 100%);
  border-radius: 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-idea-of-state .thinker {
  position: absolute; bottom: 15%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(135deg, #2e332e 0%, #1a1f1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: is-think 18s ease-in-out infinite alternate;
}
.scn-idea-of-state .lamp {
  position: absolute; bottom: 25%; left: 35%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #d4b070 0%, #8a6e44 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #b09050;
  animation: is-lamp-glow 6s ease-in-out infinite alternate;
}
.scn-idea-of-state .scroll {
  position: absolute; bottom: 15%; left: 55%; width: 20%; height: 6%;
  background: linear-gradient(135deg, #d4c4a4 0%, #b8a888 100%);
  border-radius: 10%;
  transform: rotate(10deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: is-scroll 20s ease-in-out infinite;
}
.scn-idea-of-state .window-night {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 35%;
  border: 8px solid #3a4455;
  border-radius: 6%;
  background: linear-gradient(180deg, #0a0f1a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-idea-of-state .moonlight {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 70% 20%, #9bb8d4 0%, transparent 60%);
  opacity: 0.2;
  animation: is-moon 30s ease-in-out infinite alternate;
}
@keyframes is-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes is-col-left {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(0.98); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes is-col-right {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(0.98); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes is-think {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes is-lamp-glow {
  0% { box-shadow: 0 0 20px 4px #b09050; opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #d4b070; opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #b09050; opacity: 0.8; }
}
@keyframes is-scroll {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(12deg) translateY(-1px); }
  100% { transform: rotate(10deg); }
}
@keyframes is-moon {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

/* state-all-sufficing */
.scn-state-all-sufficing {
  background:
    linear-gradient(180deg, #1c1814 0%, #2c2420 40%, #201c18 100%),
    radial-gradient(ellipse at 50% 90%, #3a2e26 0%, transparent 70%);
}
.scn-state-all-sufficing .fortress-wall {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2c221c 100%);
  border-radius: 20% 20% 4% 4% / 80% 80% 4% 4%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-state-all-sufficing .guard {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 45%;
  background: linear-gradient(135deg, #2c2630 0%, #18141a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sa-guard 12s ease-in-out infinite alternate;
}
.scn-state-all-sufficing .shield {
  position: absolute; bottom: 25%; left: 42%; width: 10%; height: 20%;
  background: radial-gradient(ellipse, #6a565a 0%, #3a2e30 100%);
  border-radius: 50%;
  border: 4px solid #5a464a;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sa-shield 8s ease-in-out infinite alternate;
}
.scn-state-all-sufficing .torch {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #b89050 0%, #7a623a 100%);
  border-radius: 10% 10% 15% 15%;
  transform: rotate(-5deg);
  animation: sa-torch 5s ease-in-out infinite alternate;
}
.scn-state-all-sufficing .torch-glow {
  position: absolute; bottom: 40%; left: 50%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffb070 0%, #c08040 30%, transparent 70%);
  animation: sa-torch-glow 3s ease-in-out infinite alternate;
}
.scn-state-all-sufficing .map-table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2c241c 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-state-all-sufficing .map {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #b8a888 0%, #9a8a6a 100%);
  border-radius: 2%;
  transform: perspective(300px) rotateX(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sa-map 20s ease-in-out infinite alternate;
}
.scn-state-all-sufficing .rampart-shadow {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}
@keyframes sa-guard {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes sa-shield {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sa-torch {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes sa-torch-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes sa-map {
  0% { transform: perspective(300px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(18deg) translateY(-1px); }
  100% { transform: perspective(300px) rotateX(20deg) translateY(0); }
}

/* second-novitiate */
.scn-second-novitiate {
  background:
    linear-gradient(180deg, #1a181c 0%, #2a262e 40%, #1e1c22 100%),
    radial-gradient(ellipse at 50% 80%, #3a3642 0%, transparent 70%);
}
.scn-second-novitiate .cell-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a262e 0%, #1a181c 50%, #3a3642 100%);
  animation: sn-wall 30s ease-in-out infinite alternate;
}
.scn-second-novitiate .shelf {
  position: absolute; top: 15%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a4238 0%, #2e2820 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-second-novitiate .bookline {
  position: absolute; top: 15%; left: 12%; width: 56%; height: 6%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, #4a3a2a 4px, #4a3a2a 8px, #7a6a5a 8px, #7a6a5a 12px);
  border-radius: 2%;
  animation: sn-books 40s linear infinite;
}
.scn-second-novitiate .elder-figure {
  position: absolute; bottom: 15%; left: 35%; width: 18%; height: 45%;
  background: linear-gradient(135deg, #2e2a32 0%, #1a1820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sn-elder 16s ease-in-out infinite alternate;
}
.scn-second-novitiate .candle-stick {
  position: absolute; bottom: 20%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8a7655 0%, #5a4a32 100%);
  border-radius: 10% 10% 15% 15%;
  transform: rotate(2deg);
}
.scn-second-novitiate .candle-flame {
  position: absolute; bottom: 38%; left: 53%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 40%, transparent 70%);
  animation: sn-flame 4s ease-in-out infinite alternate;
}
.scn-second-novitiate .cross-symbol {
  position: absolute; top: 8%; left: 80%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  clip-path: polygon(35% 0%, 65% 0%, 65% 40%, 100% 40%, 100% 60%, 65% 60%, 65% 100%, 35% 100%, 35% 60%, 0% 60%, 0% 40%, 35% 40%);
  animation: sn-cross 10s ease-in-out infinite alternate;
}
.scn-second-novitiate .window-arch {
  position: absolute; top: 8%; left: 5%; width: 25%; height: 30%;
  background: #1a181c;
  border: 8px solid #3a3642;
  border-radius: 50% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-second-novitiate .moon-beam {
  position: absolute; top: 8%; left: 5%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 30% 20%, #9cb8d4 0%, transparent 60%);
  opacity: 0.15;
  animation: sn-moon 35s ease-in-out infinite alternate;
}
@keyframes sn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sn-books {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes sn-elder {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateY(-4px) rotate(0deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(2deg) scaleY(1); }
}
@keyframes sn-flame {
  0% { opacity: 0.7; transform: scale(0.9) translateY(0); }
  50% { opacity: 1; transform: scale(1.15) translateY(-4px); }
  100% { opacity: 0.8; transform: scale(1) translateY(0); }
}
@keyframes sn-cross {
  0% { transform: rotate(-2deg); opacity: 0.8; }
  50% { transform: rotate(0deg); opacity: 1; }
  100% { transform: rotate(2deg); opacity: 0.8; }
}
@keyframes sn-moon {
  0% { opacity: 0.1; }
  50% { opacity: 0.25; }
  100% { opacity: 0.15; }
}

.scn-books-of-mysteries { background: 
  linear-gradient(180deg, #1a1a2e 0%, #2c1f1f 50%, #1a0f0a 100%),
  radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-books-of-mysteries .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1e1a 0%, #3a2a22 40%, #2a1e1a 100%); }
.scn-books-of-mysteries .shelf-a { position:absolute; bottom:40%; left:10%; width:80%; height:6px; background: #4a3a2a; border-radius:2px; box-shadow: 0 12px 0 #3a2a1a, 0 24px 0 #4a3a2a; }
.scn-books-of-mysteries .shelf-b { position:absolute; bottom:22%; left:10%; width:80%; height:6px; background: #3a2a1a; border-radius:2px; box-shadow: 0 -12px 0 #4a3a2a; }
.scn-books-of-mysteries .books-left { position:absolute; bottom:42%; left:15%; width:30%; height:13%; background: linear-gradient(90deg, #6a4a3a 0%, #5a3a2a 20%, #4a2a1a 40%, #5a3a2a 60%, #6a4a3a 80%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-books-of-mysteries .books-right { position:absolute; bottom:42%; right:15%; width:30%; height:13%; background: linear-gradient(90deg, #4a2a1a 0%, #6a4a3a 20%, #5a3a2a 40%, #4a2a1a 60%, #6a4a3a 80%, #5a3a2a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-books-of-mysteries .candle { position:absolute; bottom:20%; left:50%; width:8px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #d4c4a0 0%, #a09070 100%); border-radius: 2px 2px 4px 4px; }
.scn-books-of-mysteries .flame { position:absolute; bottom:40%; left:50%; width:6px; height:14px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #ffd060 0%, #ffa030 40%, #e06030 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,160,48,0.5), 0 0 40px 16px rgba(224,96,48,0.2); animation: bm-flame 2s ease-in-out infinite alternate; }
.scn-books-of-mysteries .reader { position:absolute; bottom:20%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bm-read 6s ease-in-out infinite; }
.scn-books-of-mysteries .mote { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #ffd080 0%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-books-of-mysteries .mote-1 { top:45%; left:30%; animation: bm-mote1 12s linear infinite; }
.scn-books-of-mysteries .mote-2 { top:55%; left:60%; animation: bm-mote2 15s linear infinite; animation-delay: -5s; }

@keyframes bm-flame { 
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 
  50% { transform: translateX(-50%) scaleY(1.3) scaleX(0.8); opacity:1; } 
  100% { transform: translateX(-48%) scaleY(0.9) scaleX(1.1); opacity:0.85; } 
}
@keyframes bm-read { 
  0% { transform: translateX(0) rotate(0deg); } 
  25% { transform: translateX(3px) rotate(2deg); } 
  50% { transform: translateX(0) rotate(-1deg); } 
  75% { transform: translateX(-3px) rotate(2deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes bm-mote1 { 
  0% { transform: translate(0, 0) scale(1); opacity:0; } 
  20% { opacity:0.7; } 
  40% { transform: translate(20px, -30px) scale(1.5); opacity:0.4; } 
  60% { transform: translate(40px, -60px) scale(0.8); opacity:0.6; } 
  80% { opacity:0.3; } 
  100% { transform: translate(60px, -100px) scale(0.5); opacity:0; } 
}
@keyframes bm-mote2 { 
  0% { transform: translate(0, 0) scale(0.8); opacity:0; } 
  25% { opacity:0.5; } 
  50% { transform: translate(-30px, -40px) scale(1.2); opacity:0.7; } 
  75% { opacity:0.3; } 
  100% { transform: translate(-50px, -80px) scale(0.6); opacity:0; } 
}

.scn-youth-affected { background: 
  linear-gradient(180deg, #1c1c2e 0%, #2a1f2a 50%, #0f0f1a 100%),
  radial-gradient(ellipse at 50% 70%, #4a3a5a 0%, transparent 60%); }
.scn-youth-affected .bg-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #2a202a 0%, #3a2e3a 50%, #2a202a 100%); }
.scn-youth-affected .bg-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #1a1a2a 0%, #2a1f2a 100%); }
.scn-youth-affected .youth { position:absolute; bottom:15%; left:50%; width:22px; height:34px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ya-youth 5s ease-in-out infinite; }
.scn-youth-affected .bee { position:absolute; width:8px; height:8px; background: radial-gradient(circle, #d4a040 0%, #a07020 100%); border-radius:50%; filter: blur(0.5px); }
.scn-youth-affected .bee-a { top:30%; left:20%; animation: ya-bee-a 7s ease-in-out infinite; }
.scn-youth-affected .bee-b { top:50%; left:70%; animation: ya-bee-b 9s ease-in-out infinite; animation-delay: -3s; }
.scn-youth-affected .bee-c { top:40%; left:45%; width:6px; height:6px; background: radial-gradient(circle, #c0a040 0%, #907020 100%); animation: ya-bee-c 12s ease-in-out infinite; animation-delay: -6s; }
.scn-youth-affected .ripple { position:absolute; bottom:15%; left:50%; width:40px; height:40px; transform:translate(-50%, 50%); background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%); border-radius:50%; animation: ya-ripple 4s ease-out infinite; }
.scn-youth-affected .shadow { position:absolute; bottom:15%; left:50%; width:30px; height:6px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: ya-shadow 5s ease-in-out infinite; }

@keyframes ya-youth { 
  0% { transform: translateX(-50%) rotate(0deg); } 
  25% { transform: translateX(-48%) rotate(3deg); } 
  50% { transform: translateX(-52%) rotate(-2deg); } 
  75% { transform: translateX(-48%) rotate(2deg); } 
  100% { transform: translateX(-50%) rotate(0deg); } 
}
@keyframes ya-bee-a { 
  0% { transform: translate(0, 0) scale(1); } 
  20% { transform: translate(30px, -20px) scale(1.2); } 
  40% { transform: translate(10px, -50px) scale(0.8); } 
  60% { transform: translate(-20px, -30px) scale(1.1); } 
  80% { transform: translate(-40px, -10px) scale(0.9); } 
  100% { transform: translate(0, 0) scale(1); } 
}
@keyframes ya-bee-b { 
  0% { transform: translate(0, 0) rotate(0deg); } 
  25% { transform: translate(-40px, -30px) rotate(20deg); } 
  50% { transform: translate(-10px, -60px) rotate(-10deg); } 
  75% { transform: translate(30px, -20px) rotate(15deg); } 
  100% { transform: translate(0, 0) rotate(0deg); } 
}
@keyframes ya-bee-c { 
  0% { transform: translate(0, 0) scale(0.8); } 
  33% { transform: translate(20px, -40px) scale(1.3); } 
  66% { transform: translate(-20px, -20px) scale(0.7); } 
  100% { transform: translate(0, 0) scale(0.8); } 
}
@keyframes ya-ripple { 
  0% { transform: translate(-50%, 50%) scale(0.2); opacity:0.6; } 
  50% { transform: translate(-50%, 50%) scale(1.2); opacity:0.2; } 
  100% { transform: translate(-50%, 50%) scale(2); opacity:0; } 
}
@keyframes ya-shadow { 
  0% { transform: translateX(-50%) scaleX(1); opacity:0.5; } 
  25% { transform: translateX(-50%) scaleX(1.2); opacity:0.4; } 
  50% { transform: translateX(-50%) scaleX(0.9); opacity:0.6; } 
  75% { transform: translateX(-50%) scaleX(1.1); opacity:0.5; } 
  100% { transform: translateX(-50%) scaleX(1); opacity:0.5; } 
}

.scn-what-men-say { background: 
  linear-gradient(180deg, #1f1f30 0%, #2a1f2f 40%, #0f0f1a 100%),
  radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, transparent 70%); }
.scn-what-men-say .room { position:absolute; inset:0; background: linear-gradient(90deg, #2a202a 0%, #3a2e3a 50%, #2a202a 100%); }
.scn-what-men-say .pedestal { position:absolute; bottom:20%; left:50%; width:40px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-what-men-say .figure { position:absolute; bottom:20%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-figure 8s ease-in-out infinite; }
.scn-what-men-say .light { position:absolute; top:20%; left:50%; width:12px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,0.6), 0 0 80px 40px rgba(176,128,64,0.3); animation: wm-light 4s ease-in-out infinite alternate; }
.scn-what-men-say .glow { position:absolute; top:20%; left:50%; width:100px; height:100px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(255,208,128,0.2) 0%, transparent 70%); border-radius:50%; animation: wm-glow 4s ease-in-out infinite alternate; }
.scn-what-men-say .dust { position:absolute; width:3px; height:3px; background: rgba(255,240,200,0.6); border-radius:50%; filter: blur(1px); }
.scn-what-men-say .dust-1 { top:35%; left:30%; animation: wm-dust1 15s linear infinite; }
.scn-what-men-say .dust-2 { top:40%; left:60%; animation: wm-dust2 18s linear infinite; animation-delay: -6s; }
.scn-what-men-say .dust-3 { top:50%; left:50%; animation: wm-dust3 20s linear infinite; animation-delay: -10s; }

@keyframes wm-figure { 
  0% { transform: translateX(-50%) rotate(0deg); } 
  20% { transform: translateX(-50%) rotate(2deg); } 
  40% { transform: translateX(-50%) rotate(-1deg); } 
  60% { transform: translateX(-50%) rotate(3deg); } 
  80% { transform: translateX(-50%) rotate(-2deg); } 
  100% { transform: translateX(-50%) rotate(0deg); } 
}
@keyframes wm-light { 
  0% { transform: translateX(-50%) scale(0.8); opacity:0.7; box-shadow: 0 0 30px 15px rgba(255,208,128,0.5); } 
  50% { transform: translateX(-50%) scale(1.1); opacity:1; box-shadow: 0 0 50px 25px rgba(255,208,128,0.7), 0 0 100px 50px rgba(176,128,64,0.4); } 
  100% { transform: translateX(-50%) scale(0.9); opacity:0.8; box-shadow: 0 0 40px 20px rgba(255,208,128,0.6); } 
}
@keyframes wm-glow { 
  0% { transform: translate(-50%, -50%) scale(0.9); opacity:0.3; } 
  50% { transform: translate(-50%, -50%) scale(1.1); opacity:0.5; } 
  100% { transform: translate(-50%, -50%) scale(1); opacity:0.4; } 
}
@keyframes wm-dust1 { 
  0% { transform: translate(0, 0) scale(0.5); opacity:0; } 
  20% { opacity:0.6; } 
  40% { transform: translate(20px, -40px) scale(1); opacity:0.4; } 
  60% { transform: translate(40px, -80px) scale(0.7); opacity:0.5; } 
  80% { opacity:0.2; } 
  100% { transform: translate(60px, -120px) scale(0.3); opacity:0; } 
}
@keyframes wm-dust2 { 
  0% { transform: translate(0, 0) scale(0.8); opacity:0; } 
  25% { opacity:0.5; } 
  50% { transform: translate(-30px, -50px) scale(1.2); opacity:0.7; } 
  75% { opacity:0.3; } 
  100% { transform: translate(-50px, -100px) scale(0.5); opacity:0; } 
}
@keyframes wm-dust3 { 
  0% { transform: translate(0, 0) scale(0.6); opacity:0; } 
  30% { opacity:0.4; } 
  60% { transform: translate(10px, -30px) scale(1); opacity:0.6; } 
  80% { opacity:0.2; } 
  100% { transform: translate(20px, -70px) scale(0.4); opacity:0; } 
}

.scn-concealment-difficult { background: 
  linear-gradient(0deg, #0a0a14 0%, #1a1a2e 50%, #0f0f1a 100%),
  radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%); }
.scn-concealment-difficult .dark-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%); }
.scn-concealment-difficult .door { position:absolute; bottom:0; left:50%; width:44px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-concealment-difficult .crack { position:absolute; bottom:20%; left:50%; width:4px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffc060 0%, transparent 80%); box-shadow: 0 0 20px 8px rgba(255,192,96,0.4); animation: cd-crack 3s ease-in-out infinite alternate; }
.scn-concealment-difficult .figure-crouch { position:absolute; bottom:0; left:40%; width:18px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cd-crouch 6s ease-in-out infinite; }
.scn-concealment-difficult .shadow { position:absolute; bottom:0; left:40%; width:30px; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); transform: translateX(-50%); animation: cd-shadow 6s ease-in-out infinite; }
.scn-concealment-difficult .edge { position:absolute; bottom:0; left:50%; width:100px; height:100%; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 40%, rgba(0,0,0,0.6) 60%, transparent 100%); }
.scn-concealment-difficult .mote { position:absolute; width:3px; height:3px; background: rgba(255,230,200,0.4); border-radius:50%; filter: blur(1px); }
.scn-concealment-difficult .mote-a { top:30%; left:20%; animation: cd-mote-a 20s linear infinite; }
.scn-concealment-difficult .mote-b { top:40%; left:70%; animation: cd-mote-b 18s linear infinite; animation-delay: -7s; }

@keyframes cd-crack { 
  0% { transform: translateX(-50%) scaleY(1); opacity:0.6; box-shadow: 0 0 15px 5px rgba(255,192,96,0.3); } 
  50% { transform: translateX(-50%) scaleY(1.2); opacity:1; box-shadow: 0 0 30px 12px rgba(255,192,96,0.6); } 
  100% { transform: translateX(-50%) scaleY(0.9); opacity:0.7; box-shadow: 0 0 20px 8px rgba(255,192,96,0.4); } 
}
@keyframes cd-crouch { 
  0% { transform: translateX(0) rotate(0deg); } 
  20% { transform: translateX(2px) rotate(2deg); } 
  40% { transform: translateX(-2px) rotate(-1deg); } 
  60% { transform: translateX(0) rotate(0deg); } 
  80% { transform: translateX(-1px) rotate(1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes cd-shadow { 
  0% { transform: translateX(-50%) scaleX(1); opacity:0.6; } 
  20% { transform: translateX(-50%) scaleX(1.1); opacity:0.5; } 
  40% { transform: translateX(-50%) scaleX(0.9); opacity:0.7; } 
  60% { transform: translateX(-50%) scaleX(1.05); opacity:0.6; } 
  80% { transform: translateX(-50%) scaleX(0.95); opacity:0.7; } 
  100% { transform: translateX(-50%) scaleX(1); opacity:0.6; } 
}
@keyframes cd-mote-a { 
  0% { transform: translate(0, 0) scale(0.5); opacity:0; } 
  15% { opacity:0.4; } 
  30% { transform: translate(15px, -20px) scale(0.8); opacity:0.6; } 
  50% { transform: translate(35px, -50px) scale(1); opacity:0.3; } 
  70% { transform: translate(50px, -80px) scale(0.6); opacity:0.5; } 
  85% { opacity:0.2; } 
  100% { transform: translate(70px, -110px) scale(0.3); opacity:0; } 
}
@keyframes cd-mote-b { 
  0% { transform: translate(0, 0) scale(0.7); opacity:0; } 
  20% { opacity:0.5; } 
  40% { transform: translate(-25px, -30px) scale(1.1); opacity:0.7; } 
  60% { transform: translate(-45px, -60px) scale(0.8); opacity:0.4; } 
  80% { opacity:0.2; } 
  100% { transform: translate(-65px, -90px) scale(0.4); opacity:0; } 
}

/* just-cannot-harm – calm, dim interior, warm amber */
.scn-just-cannot-harm {
  background:
    linear-gradient(180deg, #2a1a0f 0%, #1a0f08 60%, #0f0800 100%),
    radial-gradient(ellipse at 50% 80%, rgba(200,140,60,0.15) 0%, transparent 70%);
}
.scn-just-cannot-harm .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, transparent 0%, #1a0f08 100%);
}
.scn-just-cannot-harm .window {
  position:absolute; top:18%; left:35%; width:28%; height:22%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0f 100%);
  border-radius:4% 4% 8% 8%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
  animation: jch-window 12s ease-in-out infinite;
}
.scn-just-cannot-harm .lantern {
  position:absolute; bottom:38%; left:22%; width:8px; height:10px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,0.6), 0 0 40px 16px rgba(255,214,128,0.3);
  animation: jch-glow 3s ease-in-out infinite alternate;
}
.scn-just-cannot-harm .figure {
  position:absolute; bottom:18%; left:40%; width:22px; height:40px;
  background: linear-gradient(180deg, #1a0f08 0%, #0f0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jch-sway 6s ease-in-out infinite;
}
.scn-just-cannot-harm .lyre {
  position:absolute; bottom:12%; left:48%; width:16px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
  animation: jch-lyre 8s ease-in-out infinite;
}
.scn-just-cannot-harm .shadow-floor {
  position:absolute; bottom:0; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.7) 100%);
  border-radius: 50% 60% 0 0;
  animation: jch-shadow 10s ease-in-out infinite alternate;
}
@keyframes jch-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes jch-glow { 0% { box-shadow:0 0 15px 4px rgba(255,214,128,0.4); opacity:0.8 } 50% { box-shadow:0 0 25px 8px rgba(255,214,128,0.7); opacity:1 } 100% { box-shadow:0 0 18px 5px rgba(255,214,128,0.5); opacity:0.9 } }
@keyframes jch-sway { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jch-lyre { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes jch-shadow { 0% { transform: scaleY(1); opacity:0.6 } 50% { transform: scaleY(1.1) translateY(-1px); opacity:0.8 } 100% { transform: scaleY(0.9); opacity:0.5 } }

/* true-saying – calm, dim interior, soft amber */
.scn-true-saying {
  background:
    linear-gradient(180deg, #2e1f12 0%, #1a1008 60%, #0f0800 100%),
    radial-gradient(ellipse at 50% 70%, rgba(200,160,100,0.1) 0%, transparent 70%);
}
.scn-true-saying .wall {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, transparent 0%, #1a1008 100%);
}
.scn-true-saying .table {
  position:absolute; bottom:12%; left:25%; right:25%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius:4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-true-saying .lamp {
  position:absolute; bottom:24%; left:48%; width:10px; height:12px;
  background: radial-gradient(circle, #ffe090 0%, #c09040 70%);
  border-radius:50%;
  box-shadow: 0 0 18px 6px rgba(255,224,144,0.5), 0 0 36px 12px rgba(255,224,144,0.2);
  animation: ts-glow 4s ease-in-out infinite alternate;
}
.scn-true-saying .figure-left {
  position:absolute; bottom:20%; left:22%; width:20px; height:38px;
  background: linear-gradient(180deg, #1a1008 0%, #0f0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-nod-left 7s ease-in-out infinite;
}
.scn-true-saying .figure-right {
  position:absolute; bottom:22%; right:22%; width:18px; height:36px;
  background: linear-gradient(180deg, #1a1008 0%, #0f0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-nod-right 7s ease-in-out infinite 2s;
}
.scn-true-saying .scroll {
  position:absolute; bottom:16%; left:44%; width:20px; height:8px;
  background: linear-gradient(180deg, #c8a868 0%, #a08050 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ts-scroll 12s ease-in-out infinite;
}
@keyframes ts-glow { 0% { box-shadow:0 0 12px 4px rgba(255,224,144,0.4); opacity:0.8 } 50% { box-shadow:0 0 22px 8px rgba(255,224,144,0.7); opacity:1 } 100% { box-shadow:0 0 14px 5px rgba(255,224,144,0.5); opacity:0.85 } }
@keyframes ts-nod-left { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ts-nod-right { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ts-scroll { 0%,100% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(0.9) translateY(-1px); opacity:0.8 } }

/* ready-for-battle – funny, dim interior, warm with bright accents */
.scn-ready-for-battle {
  background:
    linear-gradient(180deg, #2a1a0f 0%, #1a0f08 50%, #0f0800 100%),
    radial-gradient(ellipse at 40% 50%, rgba(220,120,40,0.15) 0%, transparent 70%);
}
.scn-ready-for-battle .wall {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, transparent 0%, #1a0f08 100%);
}
.scn-ready-for-battle .torch {
  position:absolute; bottom:50%; left:15%; width:8px; height:20px;
  background: linear-gradient(180deg, #6a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0;
  animation: rb-torch 8s ease-in-out infinite;
}
.scn-ready-for-battle .figure {
  position:absolute; bottom:10%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1a0f 0%, #0f0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-bounce 3s ease-in-out infinite;
}
.scn-ready-for-battle .shield {
  position:absolute; bottom:15%; left:60%; width:40px; height:40px;
  background: radial-gradient(circle at 40% 40%, #c8a868 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: inset -2px -2px 6px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.5);
  animation: rb-shield 4s ease-in-out infinite alternate;
}
.scn-ready-for-battle .spear {
  position:absolute; bottom:20%; left:55%; width:4px; height:40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: rb-spear 5s ease-in-out infinite;
}
.scn-ready-for-battle .floor {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 60% 50% 0 0;
}
@keyframes rb-torch { 0% { transform: rotate(-2deg); opacity:0.8 } 50% { transform: rotate(2deg); opacity:1 } 100% { transform: rotate(-1deg); opacity:0.7 } }
@keyframes rb-bounce { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(-6px) scaleY(0.95) } 50% { transform: translateY(0) scaleY(1) } 80% { transform: translateY(-3px) scaleY(0.97) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rb-shield { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(-5deg) scale(0.98) } }
@keyframes rb-spear { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(20deg) } }

/* thrasymachus-bursts-in – tense, dim interior, cool blue */
.scn-thrasymachus-bursts-in {
  background:
    linear-gradient(180deg, #0f1a2a 0%, #080f1a 50%, #00050f 100%),
    radial-gradient(ellipse at 80% 70%, rgba(80,120,200,0.1) 0%, transparent 70%);
}
.scn-thrasymachus-bursts-in .wall {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, transparent 0%, #080f1a 100%);
}
.scn-thrasymachus-bursts-in .door-frame {
  position:absolute; top:10%; right:10%; width:30%; height:80%;
  border: 3px solid #1a2a3a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-thrasymachus-bursts-in .door {
  position:absolute; top:10%; right:10%; width:30%; height:80%;
  background: linear-gradient(90deg, #2a3a4a 0%, #1a2a3a 100%);
  transform-origin: left center;
  animation: tb-door 1.5s ease-out infinite;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
}
.scn-thrasymachus-bursts-in .figure-burst {
  position:absolute; bottom:18%; right:35%; width:28px; height:50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tb-burst 2s ease-in-out infinite;
}
.scn-thrasymachus-bursts-in .figure-seated-1 {
  position:absolute; bottom:12%; left:20%; width:20px; height:36px;
  background: linear-gradient(180deg, #0f1a2a 0%, #050f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb-seated 6s ease-in-out infinite;
}
.scn-thrasymachus-bursts-in .figure-seated-2 {
  position:absolute; bottom:10%; left:40%; width:18px; height:34px;
  background: linear-gradient(180deg, #0f1a2a 0%, #050f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb-seated 6s ease-in-out infinite 2s;
}
.scn-thrasymachus-bursts-in .candle {
  position:absolute; bottom:20%; left:50%; width:6px; height:14px;
  background: linear-gradient(180deg, #c8a868 0%, #806030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,224,144,0.5);
  animation: tb-candle 0.8s ease-in-out infinite alternate;
}
@keyframes tb-door { 0% { transform: rotateY(0deg) } 25% { transform: rotateY(-80deg) } 100% { transform: rotateY(0deg) } }
@keyframes tb-burst { 0% { transform: translateX(0) scale(1) } 30% { transform: translateX(-10px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes tb-seated { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tb-candle { 0% { opacity:0.7; box-shadow:0 0 10px 3px rgba(255,224,144,0.4) } 50% { opacity:1; box-shadow:0 0 20px 8px rgba(255,224,144,0.7) } 100% { opacity:0.8; box-shadow:0 0 12px 4px rgba(255,224,144,0.5) } }

/* Scene: method-chosen (calm, dim interior) */
.scn-method-chosen {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 50%, #141428 100%),
              radial-gradient(ellipse at 60% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-method-chosen .wall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2e2e42 0%, #1e1e32 70%, #0e0e1a 100%);
}
.scn-method-chosen .wall-shadow {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
  animation: mc-shadow 12s ease-in-out infinite alternate;
}
.scn-method-chosen .column-left {
  position: absolute; left: 8%; top: 0; bottom: 0; width: 6%;
  background: linear-gradient(180deg, #3d3d55 0%, #2a2a40 50%, #1a1a2e 100%);
  box-shadow: 3px 0 8px rgba(0,0,0,0.5);
}
.scn-method-chosen .column-right {
  position: absolute; right: 8%; top: 0; bottom: 0; width: 6%;
  background: linear-gradient(180deg, #3d3d55 0%, #2a2a40 50%, #1a1a2e 100%);
  box-shadow: -3px 0 8px rgba(0,0,0,0.5);
}
.scn-method-chosen .lamp {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #b8975a 0%, #8c6c3e 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 -4px 10px rgba(184,151,90,0.3);
}
.scn-method-chosen .lamp-glow {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(230,195,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mc-glow 4s ease-in-out infinite alternate;
}
.scn-method-chosen .figure-sitting {
  position: absolute; bottom: 24%; left: 35%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #222233 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-sit 6s ease-in-out infinite;
}
.scn-method-chosen .figure-standing {
  position: absolute; bottom: 24%; left: 55%;
  width: 26px; height: 65px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mc-stand 8s ease-in-out infinite;
}
.scn-method-chosen .dust {
  position: absolute; inset: 10% 0 0 0;
  background: radial-gradient(circle at 30% 20%, rgba(200,180,150,0.05) 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, rgba(200,180,150,0.03) 0%, transparent 50%);
  filter: blur(3px);
  animation: mc-dust 20s linear infinite;
}
@keyframes mc-shadow {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes mc-glow {
  0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
}
@keyframes mc-sit {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(0); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mc-stand {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(-3px) translateY(-1px); }
  66% { transform: translateX(3px) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes mc-dust {
  0% { background-position: 0 0; }
  100% { background-position: 1000px 200px; }
}

/* Scene: justice-vice? (tense, dim interior) */
.scn-justice-vice\? {
  background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 70%, #050510 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a3e 0%, transparent 60%);
}
.scn-justice-vice\? .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #14141c 0%, #0a0a12 100%);
}
.scn-justice-vice\? .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a34 0%, #1a1a20 100%);
  box-shadow: 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-justice-vice\? .wall-crack {
  position: absolute; top: 15%; left: 30%; width: 2px; height: 40%;
  background: #3a3a4a;
  box-shadow: 1px 0 2px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: jv-crack 3s ease-in-out infinite;
}
.scn-justice-vice\? .figure-left {
  position: absolute; bottom: 22%; left: 30%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a2a3c 0%, #12121c 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  box-shadow: 5px 0 15px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: jv-fig-left 2.5s ease-in-out infinite alternate;
}
.scn-justice-vice\? .figure-right {
  position: absolute; bottom: 22%; left: 55%;
  width: 30px; height: 75px;
  background: linear-gradient(180deg, #22223a 0%, #10101a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: -5px 0 15px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: jv-fig-right 2s ease-in-out infinite alternate;
}
.scn-justice-vice\? .table {
  position: absolute; bottom: 15%; left: 42%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-justice-vice\? .candle {
  position: absolute; bottom: 23%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #a07840 60%, #705028 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 6px rgba(200,160,96,0.4);
}
.scn-justice-vice\? .flicker {
  animation: jv-flicker 0.08s infinite alternate;
}
.scn-justice-vice\? .candle-glow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(230,180,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: jv-glow 0.15s infinite alternate;
}
@keyframes jv-crack {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes jv-fig-left {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(4px) rotate(2deg); }
}
@keyframes jv-fig-right {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(-4px) rotate(-2deg); }
}
@keyframes jv-flicker {
  0% { opacity: 0.9; box-shadow: 0 0 6px rgba(200,160,96,0.4); }
  100% { opacity: 1; box-shadow: 0 0 12px rgba(200,160,96,0.6); }
}
@keyframes jv-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
}

/* Scene: thrasymachus-classifies (calm, dim interior) */
.scn-thrasymachus-classifies {
  background: linear-gradient(180deg, #28283a 0%, #1c1c2e 60%, #0e0e1a 100%),
              radial-gradient(ellipse at 40% 50%, #3a3a52 0%, transparent 70%);
}
.scn-thrasymachus-classifies .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #242436 0%, #161624 100%);
}
.scn-thrasymachus-classifies .window-frame {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 60px;
  border: 4px solid #3a3a4a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}
.scn-thrasymachus-classifies .window-light {
  position: absolute; top: 12%; right: 17%; width: 32px; height: 52px;
  background: linear-gradient(180deg, rgba(200,190,170,0.1) 0%, rgba(200,190,170,0.05) 100%);
  animation: tc-light 8s ease-in-out infinite alternate;
}
.scn-thrasymachus-classifies .bookshelf {
  position: absolute; left: 5%; top: 20%; bottom: 30%; width: 20%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 2px;
  box-shadow: 3px 0 8px rgba(0,0,0,0.4);
}
.scn-thrasymachus-classifies .figure-profile {
  position: absolute; bottom: 22%; left: 45%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #22222e 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: tc-profile 7s ease-in-out infinite;
}
.scn-thrasymachus-classifies .arm-gesture {
  position: absolute; bottom: 25%; left: 44%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5e 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: tc-arm 4s ease-in-out infinite alternate;
}
.scn-thrasymachus-classifies .desk {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-thrasymachus-classifies .scroll {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tc-scroll 10s ease-in-out infinite;
}
@keyframes tc-light {
  0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; }
}
@keyframes tc-profile {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tc-arm {
  0% { transform: rotate(-10deg) scaleX(1); }
  100% { transform: rotate(20deg) scaleX(1.1); }
}
@keyframes tc-scroll {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}

/* Scene: thrasymachus-in-earnest (calm, dim interior) */
.scn-thrasymachus-in-earnest {
  background: linear-gradient(180deg, #22223a 0%, #161630 50%, #0e0e20 100%),
              radial-gradient(ellipse at 70% 20%, #3a3a5e 0%, transparent 70%);
}
.scn-thrasymachus-in-earnest .deep-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e34 0%, #121224 100%);
}
.scn-thrasymachus-in-earnest .archway {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  border: 4px solid #3a3a4e;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 15px rgba(0,0,0,0.3);
}
.scn-thrasymachus-in-earnest .lantern {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #b8975a 0%, #7a5a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px rgba(184,151,90,0.5);
  animation: te-lantern 5s ease-in-out infinite alternate;
}
.scn-thrasymachus-in-earnest .lantern-light {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: radial-gradient(ellipse, rgba(230,195,120,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: te-glow 6s ease-in-out infinite alternate;
}
.scn-thrasymachus-in-earnest .figure-thrasymachus {
  position: absolute; bottom: 20%; left: 40%;
  width: 30px; height: 68px;
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2a 100%);
  border-radius: 50% 45% 40% 50% / 65% 60% 40% 35%;
  transform-origin: bottom center;
  animation: te-thras 9s ease-in-out infinite;
}
.scn-thrasymachus-in-earnest .figure-socrates {
  position: absolute; bottom: 20%; left: 55%;
  width: 28px; height: 62px;
  background: linear-gradient(180deg, #3a3a4e 0%, #222230 100%);
  border-radius: 45% 50% 45% 40% / 60% 65% 35% 40%;
  transform-origin: bottom center;
  animation: te-soc 7s ease-in-out infinite;
}
.scn-thrasymachus-in-earnest .ground-pattern {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #2a2a34 0px, #2a2a34 15px, #1e1e28 15px, #1e1e28 30px);
  opacity: 0.5;
}
.scn-thrasymachus-in-earnest .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(200,190,180,0.04) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 40%, rgba(200,190,180,0.03) 0%, transparent 50%);
  filter: blur(8px);
  animation: te-fog 25s linear infinite;
}
@keyframes te-lantern {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes te-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
}
@keyframes te-thras {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes te-soc {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(-3px) translateY(-1px); }
  66% { transform: translateX(2px) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes te-fog {
  0% { background-position: 0 0; }
  100% { background-position: 800px 400px; }
}

/* Scene: mathematics-as-education */
.scn-mathematics-as-education {
  background: linear-gradient(135deg, #2c2518 0%, #3e3120 50%, #1f1a10 100%), radial-gradient(ellipse at 30% 40%, #4a3f28 0%, transparent 70%);
  overflow: hidden;
}
.scn-mathematics-as-education .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a3322 0%, transparent 60%, #1a1510 100%);
  animation: mae-breath 12s ease-in-out infinite;
}
.scn-mathematics-as-education .desk {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 22%;
  background: linear-gradient(180deg, #5c4b32 0%, #3c2f20 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: mae-float 8s ease-in-out infinite;
}
.scn-mathematics-as-education .lamp {
  position: absolute; bottom: 38%; left: 55%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #b09868 0%, #705a38 100%);
  border-radius: 40% 40% 8px 8px;
  box-shadow: 0 0 36px 12px rgba(220,190,120,0.5);
  animation: mae-glow 4s ease-in-out infinite alternate;
}
.scn-mathematics-as-education .books {
  position: absolute; bottom: 14%; left: 38%; width: 48px; height: 16px;
  background: linear-gradient(180deg, #7a684a 0%, #4a3c28 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: mae-settle 10s ease-in-out infinite;
}
.scn-mathematics-as-education .figure {
  position: absolute; bottom: 14%; left: 42%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #2a221a 0%, #120e0a 100%);
  border-radius: 48% 48% 36% 36% / 64% 64% 36% 36%;
  transform-origin: bottom center;
  animation: mae-bow 6s ease-in-out infinite;
}
.scn-mathematics-as-education .geometry {
  position: absolute; bottom: 24%; left: 28%; width: 18px; height: 18px;
  background: linear-gradient(135deg, #807050 0%, #504030 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: mae-spin 20s linear infinite;
}
.scn-mathematics-as-education .window {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 60px;
  background: #2c2a20; border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: mae-window 14s ease-in-out infinite;
}
@keyframes mae-breath {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes mae-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mae-glow {
  0% { box-shadow: 0 0 24px 8px rgba(220,190,120,0.4), 0 0 48px 16px rgba(220,190,120,0.2); }
  50% { box-shadow: 0 0 40px 16px rgba(240,210,140,0.7), 0 0 72px 24px rgba(240,210,140,0.4); }
  100% { box-shadow: 0 0 28px 10px rgba(220,190,120,0.5), 0 0 56px 18px rgba(220,190,120,0.25); }
}
@keyframes mae-settle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.96); }
  100% { transform: scaleY(1); }
}
@keyframes mae-bow {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(0deg); }
  60% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes mae-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes mae-window {
  0%,100% { opacity: 0.3; filter: blur(2px); }
  50% { opacity: 0.5; filter: blur(1px); }
}

/* Scene: analysis-of-vision */
.scn-analysis-of-vision {
  background: linear-gradient(180deg, #1a1828 0%, #26223a 50%, #1a1628 100%), radial-gradient(circle at 50% 20%, #3a2e5a 0%, transparent 70%);
}
.scn-analysis-of-vision .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2640 0%, transparent 60%);
  animation: aov-bg 12s ease-in-out infinite;
}
.scn-analysis-of-vision .light-source {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0e8c0 0%, #c0b888 50%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 0 60px 20px rgba(240,232,192,0.3);
  animation: aov-pulse 4s ease-in-out infinite alternate;
}
.scn-analysis-of-vision .eye {
  position: absolute; top: 26%; left: 50%; width: 40px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #f0e0b0 0%, #c0a880 60%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: aov-blink 6s ease-in-out infinite;
}
.scn-analysis-of-vision .eye::before {
  content: ''; position: absolute; top: 6px; left: 10px; width: 6px; height: 6px;
  background: #1a1828; border-radius: 50%;
}
.scn-analysis-of-vision .figure {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2e2a3a 0%, #1a1828 100%);
  border-radius: 48% 48% 36% 36% / 64% 64% 32% 32%;
  transform-origin: bottom center;
  animation: aov-turn 12s ease-in-out infinite;
}
.scn-analysis-of-vision .rays {
  position: absolute; top: 20%; left: 40%; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent 0, rgba(240,232,192,0.08) 2px, transparent 4px);
  animation: aov-ray 30s linear infinite;
}
.scn-analysis-of-vision .scroll {
  position: absolute; bottom: 22%; left: 56%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8b888 0%, #a09060 100%);
  border-radius: 4px; transform: skewX(-10deg);
  animation: aov-unroll 10s ease-in-out infinite alternate;
}
@keyframes aov-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.65; }
}
@keyframes aov-pulse {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.06); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98); opacity: 0.8; }
}
@keyframes aov-blink {
  0%, 45%, 55%, 100% { transform: translateX(-50%) scaleY(1); }
  48% { transform: translateX(-50%) scaleY(0.2); }
  52% { transform: translateX(-50%) scaleY(0.2); }
}
@keyframes aov-turn {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(12px) rotate(3deg); }
  70% { transform: translateX(6px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes aov-ray {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes aov-unroll {
  0% { transform: skewX(-10deg) scaleX(1); }
  50% { transform: skewX(-5deg) scaleX(1.2); }
  100% { transform: skewX(-10deg) scaleX(1); }
}

/* Scene: conception-of-harmonics */
.scn-conception-of-harmonics {
  background: linear-gradient(180deg, #1e1a28 0%, #2e283a 50%, #1e1a28 100%), radial-gradient(ellipse at 50% 30%, #3a3050 0%, transparent 70%);
}
.scn-conception-of-harmonics .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2440 0%, transparent 60%);
  animation: coh-bg 14s ease-in-out infinite;
}
.scn-conception-of-harmonics .lyre {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a09070 0%, #605040 100%);
  clip-path: polygon(30% 0%, 70% 0%, 80% 30%, 80% 100%, 70% 100%, 50% 60%, 30% 100%, 20% 100%, 20% 30%);
  transform-origin: bottom center;
  animation: coh-sway 5s ease-in-out infinite;
}
.scn-conception-of-harmonics .strings {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 34px;
  background: repeating-linear-gradient(0deg, #c8b898 0px, #c8b898 2px, transparent 2px, transparent 6px);
  animation: coh-pluck 3s ease-in-out infinite;
}
.scn-conception-of-harmonics .musician {
  position: absolute; bottom: 16%; left: 50%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #2e2840 0%, #1a1828 100%);
  border-radius: 48% 48% 40% 40% / 64% 64% 36% 36%;
  transform-origin: bottom center;
  animation: coh-play 4s ease-in-out infinite alternate;
}
.scn-conception-of-harmonics .sound-waves {
  position: absolute; top: 30%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle at 30% 50%, rgba(200,200,180,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: coh-ripple 6s ease-out infinite;
}
.scn-conception-of-harmonics .table {
  position: absolute; bottom: 10%; left: 30%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #4a4030 0%, #2a2018 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: coh-float 8s ease-in-out infinite;
}
@keyframes coh-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.75; }
  100% { opacity: 0.55; }
}
@keyframes coh-sway {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes coh-pluck {
  0%,100% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.6); opacity: 0.8; }
}
@keyframes coh-play {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes coh-ripple {
  0% { transform: scale(0.5); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 0.2; }
  100% { transform: scale(0.5); opacity: 0.6; }
}
@keyframes coh-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* Scene: allegory-political-and-philosophical */
.scn-allegory-political-and-philosophical {
  background: linear-gradient(180deg, #0a0a0a 0%, #141410 40%, #1a1610 100%), radial-gradient(ellipse at 50% 70%, #2a2218 0%, transparent 60%);
}
.scn-allegory-political-and-philosophical .cave-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #14120e 0%, #1e1a14 20%, #0e0e0a 80%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 80%, 10% 60%, 0 40%);
  animation: apa-flicker 8s ease-in-out infinite;
}
.scn-allegory-political-and-philosophical .fire {
  position: absolute; bottom: 20%; left: 15%; width: 28px; height: 40px;
  background: radial-gradient(circle at 50% 70%, #e06020 0%, #a04010 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: apa-flame 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 60px 20px rgba(224,96,32,0.3);
}
.scn-allegory-political-and-philosophical .shadows {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #1a1610 0%, transparent 70%);
  filter: blur(8px);
  animation: apa-dance 5s ease-in-out infinite;
}
.scn-allegory-political-and-philosophical .chained-figure {
  position: absolute; bottom: 14%; left: 38%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: apa-chain 6s ease-in-out infinite;
}
.scn-allegory-political-and-philosophical .chained-figure::after {
  content: ''; position: absolute; top: 12px; left: 0; width: 100%; height: 4px;
  background: #4a3a20;
  border-radius: 2px;
}
.scn-allegory-political-and-philosophical .escapee {
  position: absolute; bottom: 16%; left: 60%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #3a3020 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: apa-crawl 10s ease-in-out infinite;
}
.scn-allegory-political-and-philosophical .light-source {
  position: absolute; bottom: 28%; left: 12%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0b060 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,176,96,0.4);
  animation: apa-pulse 3s ease-in-out infinite alternate;
}
@keyframes apa-flicker {
  0% { opacity: 0.5; filter: brightness(1); }
  50% { opacity: 0.7; filter: brightness(1.1); }
  100% { opacity: 0.5; filter: brightness(0.9); }
}
@keyframes apa-flame {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1.15) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.7; }
}
@keyframes apa-dance {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.2); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes apa-chain {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes apa-crawl {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(8px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes apa-pulse {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.4); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-tyranny-and-corruption { background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 20%, #3a2818 0%, transparent 70%); }
.scn-tyranny-and-corruption .bg-columns { position:absolute; inset: 0 0 35% 0; background: linear-gradient(90deg, #2a2018 0%, #4a3828 15%, #2a2018 30%, #4a3828 50%, #2a2018 70%, #4a3828 85%, #2a2018 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-tyranny-and-corruption .bg-throne { position:absolute; bottom:25%; left:50%; width:140px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow:0 0 30px rgba(0,0,0,.5); }
.scn-tyranny-and-corruption .crown { position:absolute; bottom:72%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c8a050 0%, #6a4a20 100%); border-radius: 50% 50% 0 0; box-shadow:0 -4px 12px rgba(200,160,80,.3); animation:ty1-crown 6s ease-in-out infinite alternate; }
.scn-tyranny-and-corruption .figure-tyrant { position:absolute; bottom:38%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.8); animation:ty1-figure 8s ease-in-out infinite; }
.scn-tyranny-and-corruption .chain { position:absolute; bottom:42%; left:35%; width:20px; height:40px; border: 2px solid #6a5a3a; border-radius: 50%; transform: rotate(-15deg); box-shadow: 0 0 6px rgba(0,0,0,.5); animation:ty1-chain 5s ease-in-out infinite alternate; }
.scn-tyranny-and-corruption .lamp { position:absolute; top:15%; right:20%; width:14px; height:24px; background: radial-gradient(ellipse at 50% 80%, #c89440 0%, transparent 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 8px rgba(200,148,64,.3); animation:ty1-lamp 4s ease-in-out infinite; }
.scn-tyranny-and-corruption .scroll { position:absolute; bottom:22%; left:30%; width:40px; height:6px; background: #6a5a3a; border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.4); }
.scn-tyranny-and-corruption .shadow-figure { position:absolute; bottom:30%; left:20%; width:30px; height:50px; background: rgba(10,6,4,.6); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:skewX(10deg); filter: blur(2px); animation:ty1-shadow 12s linear infinite alternate; }
@keyframes ty1-crown { 0%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 50%{transform:translateX(-50%) translateY(-2px) rotate(2deg)} 100%{transform:translateX(-50%) translateY(0) rotate(-1deg)} }
@keyframes ty1-figure { 0%{transform:translateX(-50%) translateY(0)} 30%{transform:translateX(-50%) translateY(-3px) scale(1.01)} 70%{transform:translateX(-50%) translateY(2px) scale(.99)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes ty1-chain { 0%{transform: rotate(-15deg) translateX(0)} 50%{transform: rotate(-10deg) translateX(2px)} 100%{transform: rotate(-20deg) translateX(-2px)} }
@keyframes ty1-lamp { 0%{opacity:.8;box-shadow:0 0 30px 6px rgba(200,148,64,.3)} 50%{opacity:1;box-shadow:0 0 50px 12px rgba(200,148,64,.5)} 100%{opacity:.85;box-shadow:0 0 35px 8px rgba(200,148,64,.35)} }
@keyframes ty1-shadow { 0%{transform:skewX(10deg) translateX(0)} 100%{transform:skewX(10deg) translateX(-10px)} }

.scn-plato-and-greek-tyrants { background: linear-gradient(180deg, #1a1a22 0%, #2a2a36 40%, #1a1a22 100%), radial-gradient(ellipse at 70% 40%, #3a3a4a 0%, transparent 60%); }
.scn-plato-and-greek-tyrants .bg-arch { position:absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 80px rgba(0,0,0,.5); }
.scn-plato-and-greek-tyrants .desk { position:absolute; bottom:28%; left:50%; width:120px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-plato-and-greek-tyrants .poet { position:absolute; bottom:38%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e1a 0%, #120e0c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 16px rgba(0,0,0,.6); animation:pl2-poet 10s ease-in-out infinite; }
.scn-plato-and-greek-tyrants .lyre { position:absolute; bottom:44%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); box-shadow: 0 0 8px rgba(200,160,80,.3); animation:pl2-lyre 6s ease-in-out infinite alternate; }
.scn-plato-and-greek-tyrants .mask { position:absolute; bottom:48%; left:35%; width:18px; height:20px; background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation:pl2-mask 8s ease-in-out infinite; }
.scn-plato-and-greek-tyrants .lamp-pl2 { position:absolute; top:18%; left:25%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 90%, #c89440 0%, transparent 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px rgba(200,148,64,.3); animation:pl2-lamp 5s ease-in-out infinite; }
.scn-plato-and-greek-tyrants .scroll-pl2 { position:absolute; bottom:22%; left:48%; width:50px; height:6px; background: #6a5a3a; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 0 10px rgba(0,0,0,.4); }
@keyframes pl2-poet { 0%{transform:translateX(-50%) translateY(0) rotate(0)} 30%{transform:translateX(-50%) translateY(-3px) rotate(1deg)} 60%{transform:translateX(-50%) translateY(2px) rotate(-1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes pl2-lyre { 0%{transform: rotate(15deg) translateY(0)} 50%{transform: rotate(18deg) translateY(-2px)} 100%{transform: rotate(12deg) translateY(0)} }
@keyframes pl2-mask { 0%{opacity:.7;transform: translateY(0)} 50%{opacity:1;transform: translateY(-2px)} 100%{opacity:.8;transform: translateY(0)} }
@keyframes pl2-lamp { 0%{opacity:.75;box-shadow:0 0 30px 6px rgba(200,148,64,.3)} 50%{opacity:1;box-shadow:0 0 50px 12px rgba(200,148,64,.5)} 100%{opacity:.8;box-shadow:0 0 35px 8px rgba(200,148,64,.35)} }

.scn-poets-emotions-objection { background: linear-gradient(180deg, #2a2a2a 0%, #1e1e1e 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 60%, #3a3a3a 0%, transparent 70%); }
.scn-poets-emotions-objection .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 0 60px rgba(0,0,0,.4); }
.scn-poets-emotions-objection .poet-em3 { position:absolute; bottom:30%; left:50%; width:44px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a221e 0%, #120e0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.7); animation:em3-poet 12s ease-in-out infinite; }
.scn-poets-emotions-objection .book-open { position:absolute; bottom:28%; left:50%; width:60px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.5); animation:em3-book 8s ease-in-out infinite alternate; }
.scn-poets-emotions-objection .candle { position:absolute; bottom:40%; left:40%; width:6px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a870 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(200,168,112,.2); }
.scn-poets-emotions-objection .flame { position:absolute; bottom:62%; left:40.5%; width:4px; height:8px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ff8840 50%, transparent 100%); border-radius: 50% 50% 20% 20%; animation:em3-flame 2s ease-in-out infinite; }
.scn-poets-emotions-objection .emotion-orb { position:absolute; width:14px; height:14px; background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-poets-emotions-objection .orb-a { top:25%; left:20%; animation:em3-orb-a 18s ease-in-out infinite; }
.scn-poets-emotions-objection .orb-b { top:40%; right:15%; animation:em3-orb-b 22s ease-in-out infinite reverse; }
.scn-poets-emotions-objection .orb-c { bottom:50%; left:65%; animation:em3-orb-c 15s ease-in-out infinite; }
@keyframes em3-poet { 0%{transform:translateX(-50%) translateY(0) scale(1)} 30%{transform:translateX(-50%) translateY(-2px) scale(1.01)} 60%{transform:translateX(-50%) translateY(2px) scale(.99)} 100%{transform:translateX(-50%) translateY(0) scale(1)} }
@keyframes em3-book { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-2deg)} }
@keyframes em3-flame { 0%{transform:scaleY(1) translateY(0);opacity:.9} 50%{transform:scaleY(1.3) translateY(-2px);opacity:1} 100%{transform:scaleY(.9) translateY(1px);opacity:.8} }
@keyframes em3-orb-a { 0%{transform:translate(0,0);opacity:.4} 50%{transform:translate(10px,-8px);opacity:.7} 100%{transform:translate(5px,5px);opacity:.3} }
@keyframes em3-orb-b { 0%{transform:translate(0,0);opacity:.5} 50%{transform:translate(-12px,6px);opacity:.8} 100%{transform:translate(8px,-4px);opacity:.4} }
@keyframes em3-orb-c { 0%{transform:translate(0,0);opacity:.6} 50%{transform:translate(6px,10px);opacity:.9} 100%{transform:translate(-8px,-6px);opacity:.5} }

.scn-art-good-and-evil { background: linear-gradient(180deg, #2a2a2a 0%, #1e1e1e 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, transparent 60%); }
.scn-art-good-and-evil .bg-pedestal { position:absolute; bottom:20%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-art-good-and-evil .statue-good { position:absolute; bottom:50%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(232,224,208,.3); animation:ar4-statue 10s ease-in-out infinite; }
.scn-art-good-and-evil .figure-evil { position:absolute; bottom:48%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: skewX(-10deg); box-shadow: 0 0 30px rgba(0,0,0,.8); animation:ar4-figure 12s ease-in-out infinite; }
.scn-art-good-and-evil .palette { position:absolute; bottom:25%; left:28%; width:40px; height:30px; background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); box-shadow: 0 0 10px rgba(0,0,0,.4); animation:ar4-palette 15s ease-in-out infinite alternate; }
.scn-art-good-and-evil .brush-brush { position:absolute; bottom:28%; left:32%; width:4px; height:24px; background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%); border-radius: 2px; transform: rotate(20deg); box-shadow: 0 0 6px rgba(0,0,0,.3); }
.scn-art-good-and-evil .glow-good { position:absolute; bottom:56%; left:33%; width:40px; height:40px; background: radial-gradient(circle, rgba(232,224,208,.15) 0%, transparent 70%); border-radius: 50%; animation:ar4-glow-g 8s ease-in-out infinite; }
.scn-art-good-and-evil .glow-evil { position:absolute; bottom:54%; right:28%; width:40px; height:40px; background: radial-gradient(circle, rgba(100,20,20,.2) 0%, transparent 70%); border-radius: 50%; animation:ar4-glow-e 8s ease-in-out infinite reverse; }
@keyframes ar4-statue { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes ar4-figure { 0%{transform:skewX(-10deg) translateY(0)} 30%{transform:skewX(-8deg) translateY(-2px) scale(1.01)} 70%{transform:skewX(-12deg) translateY(3px) scale(.99)} 100%{transform:skewX(-10deg) translateY(0)} }
@keyframes ar4-palette { 0%{transform: rotate(-15deg) translateX(0)} 50%{transform: rotate(-10deg) translateX(4px)} 100%{transform: rotate(-20deg) translateX(-4px)} }
@keyframes ar4-glow-g { 0%{opacity:.5;transform:scale(1)} 50%{opacity:.8;transform:scale(1.2)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes ar4-glow-e { 0%{opacity:.6;transform:scale(1)} 50%{opacity:.9;transform:scale(1.3)} 100%{opacity:.5;transform:scale(.8)} }

.scn-more-satirical-reflections {
  background:
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, #1a1210 70%),
    linear-gradient(180deg, #2a1e18 0%, #3a2a20 50%, #1a120e 100%);
  overflow: hidden;
}
.scn-more-satirical-reflections .sc1-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a1e18 0%, #3a2a20 50%, #2a1e18 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-more-satirical-reflections .sc1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%);
  border-radius: 30% 30% 0 0;
}
.scn-more-satirical-reflections .sc1-figure {
  position: absolute; bottom: 16%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 5s ease-in-out infinite;
}
.scn-more-satirical-reflections .sc1-table {
  position: absolute; bottom: 20%; left: 52%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-more-satirical-reflections .sc1-lamp {
  position: absolute; bottom: 34%; left: 56%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a32 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-more-satirical-reflections .sc1-lampglow {
  position: absolute; bottom: 36%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d8a060 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: sc1-lampglow 3s ease-in-out infinite alternate;
}
.scn-more-satirical-reflections .sc1-mirror {
  position: absolute; bottom: 42%; right: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c0b8a8 0%, #a09888 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 10px rgba(160,152,136,0.5);
}
.scn-more-satirical-reflections .sc1-reflection {
  position: absolute; bottom: 42%; right: 20%; width: 50px; height: 60px;
  background: radial-gradient(circle at 40% 30%, #d0c8b8 0%, transparent 70%);
  opacity: 0.4;
  animation: sc1-reflection 6s ease-in-out infinite alternate;
}
.scn-more-satirical-reflections .sc1-shadow {
  position: absolute; bottom: 14%; left: 28%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: sc1-shadow 5s ease-in-out infinite;
}
@keyframes sc1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sc1-lampglow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes sc1-reflection {
  0% { opacity: 0.3; transform: scale(0.95) translateY(0); }
  50% { opacity: 0.5; transform: scale(1.05) translateY(2px); }
  100% { opacity: 0.4; transform: scale(0.98) translateY(-1px); }
}
@keyframes sc1-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-more-second-intentions {
  background:
    radial-gradient(circle at 30% 40%, #4a3a2a 0%, #1a1210 70%),
    linear-gradient(180deg, #3a2a1e 0%, #2a1e14 50%, #1a120e 100%);
  overflow: hidden;
}
.scn-more-second-intentions .sc2-bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1e 0%, #4a3a2a 50%, #3a2a1e 100%);
  border-radius: 0 0 20% 20%;
}
.scn-more-second-intentions .sc2-board {
  position: absolute; bottom: 40%; left: 15%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #2a2218 0%, #1e1810 100%);
  border: 3px solid #5a4230;
  border-radius: 4px;
}
.scn-more-second-intentions .sc2-symbol-eq {
  position: absolute; bottom: 72%; left: 22%; width: 16px; height: 8px;
  background: #c8b88a;
  border-radius: 2px;
  animation: sc2-eq 4s ease-in-out infinite;
}
.scn-more-second-intentions .sc2-symbol-arrow {
  position: absolute; bottom: 62%; left: 30%; width: 30px; height: 6px;
  background: #a8a070;
  clip-path: polygon(0 50%, 100% 50%, 80% 0, 100% 50%, 80% 100%);
  animation: sc2-arrow 3s ease-in-out infinite alternate;
}
.scn-more-second-intentions .sc2-symbol-venn {
  position: absolute; bottom: 52%; left: 28%; width: 40px; height: 30px;
  background: radial-gradient(circle, #b8a878 0%, #8a7050 50%, transparent 60%);
  border-radius: 50%;
  animation: sc2-venn 5s ease-in-out infinite;
}
.scn-more-second-intentions .sc2-figure {
  position: absolute; bottom: 12%; left: 40%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure 2s ease-in-out infinite;
}
.scn-more-second-intentions .sc2-candle {
  position: absolute; bottom: 22%; left: 75%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-more-second-intentions .sc2-candlelight {
  position: absolute; bottom: 30%; left: 74%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0c868 0%, #d8a040 40%, transparent 70%);
  border-radius: 50%;
  animation: sc2-candlelight 2s ease-in-out infinite alternate;
}
@keyframes sc2-eq {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes sc2-arrow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(0.8); }
  100% { transform: translateX(-5px) scaleX(1.1); }
}
@keyframes sc2-venn {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(10deg); }
  100% { transform: scale(0.9) rotate(-5deg); }
}
@keyframes sc2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(3px) rotate(3deg); }
  70% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc2-candlelight {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}

.scn-more-hunting {
  background:
    linear-gradient(180deg, #2a2a38 0%, #3a3a4a 30%, #4a4a5a 60%, #2a2a38 100%),
    radial-gradient(ellipse at 60% 80%, #4a4a5a 0%, transparent 70%);
  overflow: hidden;
}
.scn-more-hunting .sc3-bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 100%);
  border-radius: 0 0 30% 30%;
}
.scn-more-hunting .sc3-window {
  position: absolute; top: 15%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a6a80 0%, #5a5a70 100%);
  border: 4px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,130,0.5);
}
.scn-more-hunting .sc3-cloud {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 16px;
  background: rgba(200,200,220,0.4);
  filter: blur(8px);
  border-radius: 50%;
  animation: sc3-cloud 12s linear infinite;
}
.scn-more-hunting .sc3-rain {
  position: absolute; top: 18%; left: 28%; width: 60px; height: 50px;
  background: repeating-linear-gradient(180deg, rgba(180,180,210,0.3) 0px, rgba(180,180,210,0.1) 2px, transparent 4px);
  opacity: 0.5;
  animation: sc3-rain 1s linear infinite;
}
.scn-more-hunting .sc3-arch {
  position: absolute; bottom: 20%; left: 20%; width: 160px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 -12px 24px rgba(0,0,0,0.6);
}
.scn-more-hunting .sc3-hunter {
  position: absolute; bottom: 12%; left: 32%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-hunter 3s ease-in-out infinite;
}
.scn-more-hunting .sc3-spear {
  position: absolute; bottom: 22%; left: 38%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: sc3-spear 3s ease-in-out infinite;
}
@keyframes sc3-cloud {
  0% { transform: translateX(-40px); opacity: 0.5; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(60px); opacity: 0.5; }
}
@keyframes sc3-rain {
  0% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(10px); opacity: 0.6; }
  100% { transform: translateY(20px); opacity: 0.3; }
}
@keyframes sc3-hunter {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-3px) rotate(-3deg) scaleY(1.02); }
  60% { transform: translateX(3px) rotate(3deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes sc3-spear {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

.scn-more-christian-precepts {
  background:
    radial-gradient(circle at 50% 70%, #4a3a2a 0%, #2a1e18 60%),
    linear-gradient(180deg, #3a2a20 0%, #1a120e 100%);
  overflow: hidden;
}
.scn-more-christian-precepts .sc4-bg-bookcase {
  position: absolute; inset: 0 0 0 0;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, #3a2a1e 20px, #3a2a1e 22px);
  opacity: 0.3;
}
.scn-more-christian-precepts .sc4-lectern {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a32 0%, #4a3222 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-more-christian-precepts .sc4-book {
  position: absolute; bottom: 44%; left: 50%; width: 44px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a32 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sc4-book 8s ease-in-out infinite alternate;
}
.scn-more-christian-precepts .sc4-figure {
  position: absolute; bottom: 8%; right: 20%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-figure 6s ease-in-out infinite;
}
.scn-more-christian-precepts .sc4-candle {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-more-christian-precepts .sc4-lightglow {
  position: absolute; bottom: 34%; left: 58%; width: 24px; height: 24px;
  background: radial-gradient(circle, #f0c868 0%, #d8a040 40%, transparent 70%);
  border-radius: 50%;
  animation: sc4-lightglow 4s ease-in-out infinite alternate;
}
.scn-more-christian-precepts .sc4-dust {
  position: absolute; top: 30%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 60%);
  filter: blur(4px);
  animation: sc4-dust 12s linear infinite;
}
@keyframes sc4-book {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); }
}
@keyframes sc4-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sc4-lightglow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes sc4-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0.3; }
  50% { transform: translateY(-10px) translateX(5px); opacity: 0.6; }
  100% { transform: translateY(0) translateX(0); opacity: 0.3; }
}

.scn-tyrannical-man-origin { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #1a0a0a 0%, transparent 80%); }
.scn-tyrannical-man-origin .bg-void { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #141428 40%, #1a0e0e 100%); animation: tmo-void 20s ease-in-out infinite alternate; }
.scn-tyrannical-man-origin .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius: 30% 70% 0 0 / 100% 80% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-tyrannical-man-origin .father-fig { position:absolute; bottom:18%; left:20%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: tmo-father 6s ease-in-out infinite; }
.scn-tyrannical-man-origin .youth-fig { position:absolute; bottom:20%; right:22%; width:24px; height:44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 60%, #1a1a0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: tmo-youth 4s ease-in-out infinite; }
.scn-tyrannical-man-origin .coin-1 { position:absolute; bottom:30%; left:30%; width:14px; height:14px; background: radial-gradient(circle, #d4a040 0%, #b08030 60%, #806020 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(180,120,40,.3); animation: tmo-coin-a 8s linear infinite; }
.scn-tyrannical-man-origin .coin-2 { position:absolute; bottom:32%; left:36%; width:10px; height:10px; background: radial-gradient(circle, #d4a040 0%, #b08030 60%, #806020 100%); border-radius:50%; box-shadow: 0 0 4px 1px rgba(180,120,40,.3); animation: tmo-coin-b 10s linear infinite 2s; }
.scn-tyrannical-man-origin .lamp { position:absolute; bottom:28%; left:45%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #e0b060 0%, #b08040 50%, #5a3a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,150,60,.4), 0 0 40px 12px rgba(200,150,60,.2); animation: tmo-lamp 3s ease-in-out infinite alternate; }
.scn-tyrannical-man-origin .shadow-bars { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 6%, rgba(0,0,0,.3) 6%, rgba(0,0,0,.3) 8%, transparent 8%, transparent 14%); animation: tmo-bars 15s ease-in-out infinite; }
@keyframes tmo-void { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tmo-father { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(2deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes tmo-youth { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-6px) rotate(-3deg) } 60% { transform: translateX(-12px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tmo-coin-a { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-20px) rotate(90deg) } 50% { transform: translateY(-40px) rotate(180deg) } 75% { transform: translateY(-20px) rotate(270deg) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes tmo-coin-b { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-16px) rotate(-90deg) } 50% { transform: translateY(-32px) rotate(-180deg) } 75% { transform: translateY(-16px) rotate(-270deg) } 100% { transform: translateY(0) rotate(-360deg) } }
@keyframes tmo-lamp { 0% { box-shadow: 0 0 16px 4px rgba(200,150,60,.3), 0 0 32px 8px rgba(200,150,60,.15); opacity:.85 } 50% { box-shadow: 0 0 24px 8px rgba(220,170,80,.5), 0 0 48px 16px rgba(220,170,80,.3); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(200,150,60,.35), 0 0 36px 10px rgba(200,150,60,.18); opacity:.9 } }
@keyframes tmo-bars { 0% { opacity:.5 } 50% { opacity:.3 } 100% { opacity:.5 } }

.scn-tyrannical-man-life { background: linear-gradient(180deg, #0a0a12 0%, #1a0e0e 40%, #2a1414 100%), radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 80%); }
.scn-tyrannical-man-life .bg-den { position:absolute; inset:0; background: linear-gradient(135deg, #120808 0%, #1a0e0e 50%, #0e0e1a 100%); animation: tml-den 25s ease-in-out infinite alternate; }
.scn-tyrannical-man-life .table { position:absolute; bottom:15%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-tyrannical-man-life .reveler-a { position:absolute; bottom:20%; left:20%; width:22px; height:40px; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tml-revel-a 3s ease-in-out infinite; }
.scn-tyrannical-man-life .reveler-b { position:absolute; bottom:22%; left:40%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tml-revel-b 3.5s ease-in-out infinite 0.5s; }
.scn-tyrannical-man-life .reveler-c { position:absolute; bottom:18%; right:25%; width:24px; height:42px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 60%, #1a1a0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tml-revel-c 4s ease-in-out infinite 1s; }
.scn-tyrannical-man-life .goblet { position:absolute; bottom:25%; left:50%; width:10px; height:18px; background: linear-gradient(180deg, #b09050 0%, #806040 60%, #5a3a1a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 0 6px 2px rgba(180,140,80,.3); animation: tml-goblet 5s ease-in-out infinite; }
.scn-tyrannical-man-life .coin-rain { position:absolute; top:-10%; left:30%; right:30%; height:120%; background: repeating-linear-gradient(180deg, transparent, transparent 20px, rgba(180,120,40,.15) 20px, rgba(180,120,40,.15) 22px, transparent 22px, transparent 40px); animation: tml-coinrain 4s linear infinite; }
.scn-tyrannical-man-life .harlot { position:absolute; bottom:24%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #6a3a4a 0%, #4a2a3a 60%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tml-harlot 3s ease-in-out infinite 0.2s; }
@keyframes tml-den { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes tml-revel-a { 0% { transform: translateX(0) rotate(-5deg) } 20% { transform: translateX(4px) rotate(3deg) } 40% { transform: translateX(8px) rotate(-2deg) } 60% { transform: translateX(12px) rotate(5deg) } 80% { transform: translateX(8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes tml-revel-b { 0% { transform: translateX(0) rotate(4deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(3deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(4deg) } }
@keyframes tml-revel-c { 0% { transform: translateY(0) rotate(-3deg) } 33% { transform: translateY(-4px) rotate(2deg) } 66% { transform: translateY(-8px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes tml-goblet { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(-4px) rotate(-5deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tml-coinrain { 0% { transform: translateY(0) } 100% { transform: translateY(40px) } }
@keyframes tml-harlot { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(8px) rotate(8deg) } 60% { transform: translateX(16px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-tyrant-vs-king { background: linear-gradient(90deg, #0e0e1a 0%, #1a0e0e 50%, #0e1a1a 100%), radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 80%); }
.scn-tyrant-vs-king .bg-split { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e0e 0%, #1a0e0e 48%, #0e1a1a 52%, #0e1a1a 100%); animation: tvk-split 30s ease-in-out infinite alternate; }
.scn-tyrant-vs-king .tyrant-throne { position:absolute; bottom:15%; left:18%; width:60px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-tyrant-vs-king .tyrant { position:absolute; bottom:20%; left:25%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tvk-tyrant 8s ease-in-out infinite; }
.scn-tyrant-vs-king .satellite-1 { position:absolute; bottom:18%; left:12%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: tvk-sat1 10s ease-in-out infinite 1s; }
.scn-tyrant-vs-king .satellite-2 { position:absolute; bottom:22%; left:30%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: tvk-sat2 9s ease-in-out infinite 0.5s; }
.scn-tyrant-vs-king .king-throne { position:absolute; bottom:15%; right:18%; width:60px; height:65px; background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-tyrant-vs-king .king { position:absolute; bottom:20%; right:25%; width:20px; height:42px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 60%, #0e1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tvk-king 8s ease-in-out infinite; }
.scn-tyrant-vs-king .crown { position:absolute; bottom:38%; right:26%; width:16px; height:8px; background: linear-gradient(180deg, #d0b050 0%, #b09040 60%, #806030 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; box-shadow: 0 0 8px 2px rgba(180,140,60,.4); animation: tvk-crown 6s ease-in-out infinite; }
.scn-tyrant-vs-king .divide-line { position:absolute; top:5%; bottom:5%; left:49.5%; width:1%; background: linear-gradient(180deg, transparent 0%, #6a4a4a 30%, #4a6a6a 70%, transparent 100%); animation: tvk-divide 20s ease-in-out infinite; }
@keyframes tvk-split { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tvk-tyrant { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(4deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes tvk-sat1 { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-3px) translateX(2px) } 50% { transform: translateY(-6px) translateX(4px) } 75% { transform: translateY(-3px) translateX(2px) } 100% { transform: translateY(0) translateX(0) } }
@keyframes tvk-sat2 { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(5deg) } 60% { transform: translateY(-8px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tvk-king { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(-4px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-4deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes tvk-crown { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(-4px) rotate(-3deg) } 75% { transform: translateY(-2px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tvk-divide { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-tyrant-misery { background: linear-gradient(180deg, #0a0a12 0%, #0e0a0a 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 80%); }
.scn-tyrant-misery .bg-cell { position:absolute; inset:0; background: linear-gradient(135deg, #080808 0%, #120808 50%, #0e0e12 100%); animation: tm-bg 30s ease-in-out infinite alternate; }
.scn-tyrant-misery .wall { position:absolute; bottom:0; left:10%; right:10%; height:80%; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); }
.scn-tyrant-misery .bars-a { position:absolute; top:5%; bottom:5%; left:20%; width:2%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: tm-bars 12s ease-in-out infinite; }
.scn-tyrant-misery .bars-b { position:absolute; top:5%; bottom:5%; left:35%; width:2%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: tm-bars 14s ease-in-out infinite 2s; }
.scn-tyrant-misery .chained-fig { position:absolute; bottom:15%; left:28%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 60%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tm-fig 5s ease-in-out infinite; }
.scn-tyrant-misery .chain { position:absolute; bottom:30%; left:30%; width:30px; height:4px; background: repeating-linear-gradient(90deg, #5a4a4a 0%, #5a4a4a 4px, transparent 4px, transparent 8px); border-radius: 10%; animation: tm-chain 4s ease-in-out infinite; }
.scn-tyrant-misery .window-light { position:absolute; top:10%; right:15%; width:40px; height:50px; background: radial-gradient(circle at 50% 50%, rgba(200,180,140,.3) 0%, rgba(200,180,140,.1) 50%, transparent 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; animation: tm-window 8s ease-in-out infinite alternate; }
.scn-tyrant-misery .freedom-glow { position:absolute; top:8%; right:18%; width:20px; height:20px; background: radial-gradient(circle, rgba(220,200,160,.6) 0%, rgba(220,200,160,.2) 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(220,200,160,.3); animation: tm-glow 4s ease-in-out infinite alternate; }
@keyframes tm-bg { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes tm-bars { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes tm-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes tm-chain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes tm-window { 0% { opacity:.3; transform: scale(.95) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(.98) } }
@keyframes tm-glow { 0% { opacity:.4; transform: scale(.8) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }

/* scene: complain-about-age */
.scn-complain-about-age {
  background: radial-gradient(ellipse at 40% 60%, #3a1a0e 0%, #1a0a05 40%, #0d0502 70%), linear-gradient(180deg, #29120a 0%, #1a0a05 100%);
}
.scn-complain-about-age .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #29120a 0%, #1a0a05 80%);
  animation: cmp-wall 12s ease-in-out infinite alternate;
}
.scn-complain-about-age .bg-hearth {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, #1a0a05 60%);
  border-radius: 30% 30% 0 0;
}
.scn-complain-about-age .fire-core {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ff7f50 0%, #d2691e 40%, #8b4513 70%, transparent 100%);
  border-radius: 50%;
  animation: cmp-fire 1.5s ease-in-out infinite alternate;
}
.scn-complain-about-age .fire-glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(255,127,80,0.3) 0%, rgba(139,69,19,0.1) 50%, transparent 70%);
  filter: blur(15px);
  animation: cmp-glow 3s ease-in-out infinite alternate;
}
.scn-complain-about-age .figure-hunched {
  position: absolute; bottom: 15%; left: 30%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cmp-hunch 5s ease-in-out infinite;
}
.scn-complain-about-age .shadow-foot {
  position: absolute; bottom: 0; left: 28%; width: 22%; height: 10%;
  background: radial-gradient(ellipse, #0d0502 0%, transparent 70%);
  transform: scaleX(1.5);
  animation: cmp-shadow 3s ease-in-out infinite alternate;
}
.scn-complain-about-age .embers {
  position: absolute; bottom: 28%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ff7f50 0%, #d2691e 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-complain-about-age .ember-a {
  left: 44%; animation: cmp-ember 2s ease-in-out infinite alternate;
}
.scn-complain-about-age .ember-b {
  left: 50%; animation: cmp-ember 2.3s ease-in-out infinite alternate-reverse;
}
.scn-complain-about-age .smoke {
  position: absolute; bottom: 45%; left: 46%; width: 8%; height: 10%;
  background: radial-gradient(ellipse, rgba(100,60,40,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cmp-smoke 8s ease-in-out infinite;
}
@keyframes cmp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cmp-fire { 0% { transform: scale(1) translateY(0); opacity:0.8 } 50% { transform: scale(1.1) translateY(-4px); opacity:1 } 100% { transform: scale(0.95) translateY(0); opacity:0.9 } }
@keyframes cmp-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:0.7; transform: scale(1.05) } }
@keyframes cmp-hunch { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-5px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes cmp-shadow { 0% { opacity:0.7; transform: scaleX(1.5) } 50% { opacity:1; transform: scaleX(1.8) } 100% { opacity:0.8; transform: scaleX(1.5) } }
@keyframes cmp-ember { 0% { transform: scale(1) translate(0,0); opacity:0.8 } 50% { transform: scale(1.5) translate(-2px,-3px); opacity:1 } 100% { transform: scale(0.8) translate(2px,0); opacity:0.6 } }
@keyframes cmp-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.4 } 50% { transform: translate(10px,-20px) scale(1.5); opacity:0.2 } 100% { transform: translate(-5px,-40px) scale(2); opacity:0 } }

/* scene: sophocles-on-love */
.scn-sophocles-on-love {
  background: radial-gradient(ellipse at 60% 50%, #4a2a1a 0%, #1a0a05 50%, #0d0502 80%), linear-gradient(180deg, #29120a 0%, #1a0a05 100%);
}
.scn-sophocles-on-love .bg-chamber {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 40%, transparent 70%);
  opacity: 0.15;
  animation: sop-chamber 10s ease-in-out infinite alternate;
}
.scn-sophocles-on-love .fire-source {
  position: absolute; bottom: 25%; right: 20%; width: 12%; height: 18%;
  background: radial-gradient(circle, #ff7f50 0%, #d2691e 50%, transparent 100%);
  border-radius: 50%;
  animation: sop-fire 2s ease-in-out infinite alternate;
}
.scn-sophocles-on-love .figure-profile {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 40%;
  background: linear-gradient(90deg, #1a0a05 0%, #2a1a0a 50%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-5%);
  animation: sop-profile 4s ease-in-out infinite;
}
.scn-sophocles-on-love .scroll {
  position: absolute; bottom: 35%; left: 35%; width: 10%; height: 5%;
  background: linear-gradient(180deg, #e8d5a8 0%, #c8b878 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-15deg);
  animation: sop-scroll 6s ease-in-out infinite alternate;
}
.scn-sophocles-on-love .table {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 8%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-sophocles-on-love .cup {
  position: absolute; bottom: 26%; left: 35%; width: 4%; height: 6%;
  background: linear-gradient(135deg, #d2691e 0%, #a0522d 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-5deg);
  animation: sop-cup 3s ease-in-out infinite alternate;
}
.scn-sophocles-on-love .light-cast {
  position: absolute; bottom: 10%; left: 5%; width: 50%; height: 40%;
  background: linear-gradient(135deg, rgba(255,127,80,0.2) 0%, transparent 70%);
  filter: blur(20px);
  animation: sop-light 5s ease-in-out infinite alternate;
}
@keyframes sop-chamber { 0% { opacity:0.1 } 50% { opacity:0.2 } 100% { opacity:0.12 } }
@keyframes sop-fire { 0% { transform: scale(1) translateY(0); opacity:0.8 } 50% { transform: scale(1.2) translateY(-3px); opacity:1 } 100% { transform: scale(0.9) translateY(1px); opacity:0.7 } }
@keyframes sop-profile { 0% { transform: translateX(-5%) rotate(0deg) } 50% { transform: translateX(-3%) rotate(2deg) } 100% { transform: translateX(-5%) rotate(0deg) } }
@keyframes sop-scroll { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-10deg) translate(2px,-2px) } 100% { transform: rotate(-15deg) translate(0,0) } }
@keyframes sop-cup { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(0deg) scale(1.05) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes sop-light { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }

/* scene: freedom-in-old-age */
.scn-freedom-in-old-age {
  background: radial-gradient(ellipse at 50% 30%, #8b4513 0%, #3a1a0e 40%, #1a0a05 70%), linear-gradient(180deg, #4a2a1a 0%, #1a0a05 100%);
}
.scn-freedom-in-old-age .bg-wall-wide {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #29120a 0%, #1a0a05 60%, transparent 80%);
  animation: frd-wall 15s ease-in-out infinite alternate;
}
.scn-freedom-in-old-age .fire-pit {
  position: absolute; bottom: 15%; left: 50%; width: 20%; height: 15%;
  background: radial-gradient(circle at 50% 100%, #ff7f50 0%, #d2691e 40%, #8b4513 70%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 50% 50% 30% 30%;
  animation: frd-firepit 2.5s ease-in-out infinite alternate;
}
.scn-freedom-in-old-age .figure-standing {
  position: absolute; bottom: 15%; left: 40%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: frd-stand 6s ease-in-out infinite;
}
.scn-freedom-in-old-age .arms-out {
  position: absolute; bottom: 35%; left: 36%; width: 22%; height: 12%;
  background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateY(-5px);
  animation: frd-arms 4s ease-in-out infinite alternate;
}
.scn-freedom-in-old-age .shadow-long {
  position: absolute; bottom: 0; left: 30%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, #0d0502 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: frd-shadow 8s ease-in-out infinite alternate;
}
.scn-freedom-in-old-age .light-ray {
  position: absolute; top: 20%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,127,80,0.15) 0%, transparent 100%);
  filter: blur(12px);
}
.scn-freedom-in-old-age .ray-left {
  left: 35%; transform: rotate(-30deg);
  animation: frd-ray-left 7s ease-in-out infinite alternate;
}
.scn-freedom-in-old-age .ray-right {
  right: 35%; transform: rotate(30deg);
  animation: frd-ray-right 9s ease-in-out infinite alternate-reverse;
}
.scn-freedom-in-old-age .chair-empty {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: scale(0.9);
  animation: frd-chair 12s ease-in-out infinite alternate;
}
@keyframes frd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes frd-firepit { 0% { transform: translateX(-50%) scale(1) translateY(0); opacity:0.8 } 50% { transform: translateX(-50%) scale(1.1) translateY(-5px); opacity:1 } 100% { transform: translateX(-50%) scale(0.95) translateY(0); opacity:0.7 } }
@keyframes frd-stand { 0% { transform: scaleX(0.8) translateY(0) } 50% { transform: scaleX(0.85) translateY(-3px) } 100% { transform: scaleX(0.8) translateY(0) } }
@keyframes frd-arms { 0% { transform: translateY(-5px) rotate(-5deg) } 50% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(-5px) rotate(-3deg) } }
@keyframes frd-shadow { 0% { opacity:0.5; transform: skewX(-20deg) scaleX(1) } 50% { opacity:0.8; transform: skewX(-15deg) scaleX(1.2) } 100% { opacity:0.6; transform: skewX(-20deg) scaleX(1) } }
@keyframes frd-ray-left { 0% { opacity:0.2; transform: rotate(-30deg) scaleX(1) } 50% { opacity:0.5; transform: rotate(-25deg) scaleX(1.3) } 100% { opacity:0.3; transform: rotate(-30deg) scaleX(1) } }
@keyframes frd-ray-right { 0% { opacity:0.2; transform: rotate(30deg) scaleX(1) } 50% { opacity:0.5; transform: rotate(25deg) scaleX(1.3) } 100% { opacity:0.3; transform: rotate(30deg) scaleX(1) } }
@keyframes frd-chair { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(0.95) translateY(-2px) } 100% { transform: scale(0.9) translateY(0) } }

/* scene: socrates-praises-wealth */
.scn-socrates-praises-wealth {
  background: radial-gradient(ellipse at 40% 50%, #a0522d 0%, #3a1a0e 40%, #1a0a05 70%), linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
}
.scn-socrates-praises-wealth .bg-room-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #29120a 0%, #1a0a05 30%, #0d0502 70%, #1a0a05 100%);
  opacity: 0.8;
  animation: soc-bg 18s ease-in-out infinite alternate;
}
.scn-socrates-praises-wealth .couch {
  position: absolute; bottom: 15%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: soc-couch 6s ease-in-out infinite alternate;
}
.scn-socrates-praises-wealth .figure-reclining {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) translateY(-5%);
  animation: soc-recline 5s ease-in-out infinite;
}
.scn-socrates-praises-wealth .lamp {
  position: absolute; bottom: 30%; left: 45%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #d2691e 0%, #a0522d 50%, #8b4513 100%);
  border-radius: 10% 10% 30% 30%;
  animation: soc-lamp 4s ease-in-out infinite alternate;
}
.scn-socrates-praises-wealth .table-small {
  position: absolute; bottom: 20%; left: 48%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2a0a 100%);
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-socrates-praises-wealth .scroll-open {
  position: absolute; bottom: 25%; left: 50%; width: 10%; height: 4%;
  background: linear-gradient(180deg, #e8d5a8 0%, #c8b878 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(5deg);
  animation: soc-scroll 8s ease-in-out infinite alternate;
}
.scn-socrates-praises-wealth .shadow-calm {
  position: absolute; bottom: 0; left: 15%; width: 50%; height: 15%;
  background: radial-gradient(ellipse, #0d0502 0%, transparent 60%);
  animation: soc-shadow 10s ease-in-out infinite alternate;
}
@keyframes soc-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes soc-couch { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes soc-recline { 0% { transform: rotate(-10deg) translateY(-5%) } 50% { transform: rotate(-8deg) translateY(-8%) } 100% { transform: rotate(-10deg) translateY(-5%) } }
@keyframes soc-lamp { 0% { transform: scale(1) rotate(0deg); opacity:0.8 } 50% { transform: scale(1.05) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(0deg); opacity:0.9 } }
@keyframes soc-scroll { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.1) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes soc-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(1) } }

/* Scene: physicians-needed */
.scn-physicians-needed {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-physicians-needed .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-physicians-needed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-physicians-needed .bed {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.7);
  animation: phy-bed 6s ease-in-out infinite;
}
.scn-physicians-needed .patient-figure {
  position: absolute; bottom: 24%; left: 28%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: phy-patient 4s ease-in-out infinite alternate;
}
.scn-physicians-needed .physician-figure {
  position: absolute; bottom: 18%; right: 25%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform: scaleX(-1);
  animation: phy-doctor 7s ease-in-out infinite;
}
.scn-physicians-needed .candle-glow {
  position: absolute; bottom: 35%; left: 55%; width: 2%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.3);
  animation: phy-candle 3s ease-in-out infinite alternate;
}
.scn-physicians-needed .window-light {
  position: absolute; top: 8%; right: 10%; width: 18%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,140,0.4) 0%, transparent 70%);
  border-radius: 4% 4% 8% 8%;
  filter: blur(4px);
  animation: phy-window 12s ease-in-out infinite alternate;
}
.scn-physicians-needed .dust {
  position: absolute; width: 1%; height: 1%;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 50%;
}
.scn-physicians-needed .particle1 {
  top: 20%; left: 30%;
  animation: phy-dust1 20s linear infinite;
}
.scn-physicians-needed .particle2 {
  top: 40%; left: 60%;
  animation: phy-dust2 25s linear infinite reverse;
}
@keyframes phy-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes phy-patient { 0% { opacity: 0.9; transform: rotate(-5deg) translateY(0); } 100% { opacity: 1; transform: rotate(-5deg) translateY(-2px); } }
@keyframes phy-doctor { 0%,100% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-5px); } }
@keyframes phy-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 5px #c08040; } 50% { opacity: 1; box-shadow: 0 0 25px 10px #ffd080; } 100% { opacity: 0.9; box-shadow: 0 0 20px 8px #c08040; } }
@keyframes phy-window { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes phy-dust1 { 0% { transform: translate(0,0); opacity: 0; } 10% { opacity: 0.4; } 90% { opacity: 0.4; } 100% { transform: translate(60px, -30px); opacity: 0; } }
@keyframes phy-dust2 { 0% { transform: translate(0,0); opacity: 0; } 10% { opacity: 0.3; } 90% { opacity: 0.3; } 100% { transform: translate(-40px, 20px); opacity: 0; } }

/* Scene: war-from-wealth */
.scn-war-from-wealth {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 40%, #000010 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-war-from-wealth .wall-shadow {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-war-from-wealth .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 2%;
  box-shadow: 0 -5px 20px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(10deg);
}
.scn-war-from-wealth .coin-pile {
  position: absolute; bottom: 20%; left: 25%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #d4a050 0%, #8a6030 50%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(180,140,60,0.3);
  animation: war-coin 4s ease-in-out infinite alternate;
}
.scn-war-from-wealth .sword {
  position: absolute; bottom: 25%; right: 20%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 2% 2%;
  transform: rotate(-15deg);
  box-shadow: 0 0 10px 2px rgba(100,100,100,0.3);
  animation: war-sword 8s ease-in-out infinite;
}
.scn-war-from-wealth .map-scroll {
  position: absolute; bottom: 18%; left: 15%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2%;
  transform: skewX(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: war-map 12s ease-in-out infinite alternate;
}
.scn-war-from-wealth .shadowy-figure {
  position: absolute; bottom: 10%; left: 50%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%) scaleX(-1);
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.8);
  animation: war-figure 7s ease-in-out infinite alternate;
}
.scn-war-from-wealth .lamp-swing {
  position: absolute; top: 5%; left: 20%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffa040 0%, #c07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,100,20,0.3);
  animation: war-lamp 5s ease-in-out infinite alternate;
}
.scn-war-from-wealth .coin-glint {
  position: absolute; bottom: 22%; left: 28%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(255,208,128,0.8);
  animation: war-glint 3s ease-in-out infinite;
}
@keyframes war-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes war-sword { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes war-map { 0% { opacity: 0.7; transform: skewX(-5deg) scale(1); } 100% { opacity: 1; transform: skewX(-5deg) scale(1.02); } }
@keyframes war-figure { 0% { opacity: 0.6; transform: translateX(-50%) scaleX(-1) translateY(0); } 100% { opacity: 0.9; transform: translateX(-50%) scaleX(-1) translateY(-5px); } }
@keyframes war-lamp { 0% { transform: rotate(-10deg) translateX(0); } 100% { transform: rotate(10deg) translateX(5px); } }
@keyframes war-glint { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0; transform: scale(0.8); } }

/* Scene: war-as-art */
.scn-war-as-art {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-war-as-art .workshop-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-war-as-art .bench {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2%;
  transform: perspective(500px) rotateX(5deg);
  box-shadow: 0 -5px 15px rgba(0,0,0,0.6);
}
.scn-war-as-art .shoe-last {
  position: absolute; bottom: 22%; left: 20%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: art-last 5s ease-in-out infinite alternate;
}
.scn-war-as-art .hammer {
  position: absolute; bottom: 28%; left: 35%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: art-hammer 3s ease-in-out infinite;
}
.scn-war-as-art .shield {
  position: absolute; bottom: 25%; right: 15%; width: 15%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #7a6a5a 0%, #4a3a2a 80%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.4);
  transform: rotate(15deg);
  animation: art-shield 8s ease-in-out infinite alternate;
}
.scn-war-as-art .craftsman-arm {
  position: absolute; bottom: 20%; left: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: art-arm 4s ease-in-out infinite alternate;
}
.scn-war-as-art .foot-pedal {
  position: absolute; bottom: 12%; left: 40%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: art-pedal 2s ease-in-out infinite;
}
.scn-war-as-art .lamp-light {
  position: absolute; top: 10%; left: 50%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(192,128,64,0.3);
  animation: art-lamp 6s ease-in-out infinite alternate;
}
@keyframes art-last { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(12deg) translateY(-2px); } }
@keyframes art-hammer { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-30deg); } }
@keyframes art-shield { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes art-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes art-pedal { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes art-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(192,128,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,208,128,0.4); } }

/* Scene: soldier-dedication */
.scn-soldier-dedication {
  background: 
    linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 30%, #0a1a0a 100%),
    radial-gradient(ellipse at 40% 30%, #3a4a2a 0%, transparent 60%);
}
.scn-soldier-dedication .interior-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-soldier-dedication .window-frame {
  position: absolute; top: 10%; left: 30%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: sol-window 10s ease-in-out infinite alternate;
}
.scn-soldier-dedication .soldier-silhouette {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.8);
  animation: sol-soldier 6s ease-in-out infinite alternate;
}
.scn-soldier-dedication .spear {
  position: absolute; bottom: 25%; left: 38%; width: 2%; height: 40%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 2% 2%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: sol-spear 5s ease-in-out infinite;
}
.scn-soldier-dedication .scythe {
  position: absolute; bottom: 20%; right: 30%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sol-scythe 7s ease-in-out infinite alternate;
}
.scn-soldier-dedication .wheat-stalks {
  position: absolute; bottom: 18%; right: 15%; width: 20%; height: 25%;
  background: repeating-linear-gradient(0deg, #8a7a4a 0px, #6a5a3a 2px, transparent 4px);
  border-radius: 0 0 20% 20%;
  opacity: 0.6;
  animation: sol-wheat 12s ease-in-out infinite alternate;
}
.scn-soldier-dedication .morning-light {
  position: absolute; top: 5%; left: 25%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(240,220,180,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: sol-light 15s ease-in-out infinite alternate;
}
.scn-soldier-dedication .shadow-patch {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: sol-shadow 8s ease-in-out infinite alternate;
}
@keyframes sol-window { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.02); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes sol-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sol-spear { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }
@keyframes sol-scythe { 0% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }
@keyframes sol-wheat { 0% { opacity: 0.4; transform: translateY(0); } 100% { opacity: 0.6; transform: translateY(-2px); } }
@keyframes sol-light { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }
@keyframes sol-shadow { 0% { opacity: 0.6; } 100% { opacity: 0.8; } }

.scn-evoils-of-identification {
    background: linear-gradient(180deg, #1c1c3a 0%, #2a2244 40%, #3a2a5a 100%),
                radial-gradient(ellipse at 50% 80%, #2a2244 0%, transparent 70%);
}
.scn-evoils-of-identification .room-bg {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, #1a1a2e 0%, #12121a 100%);
    animation: eoi-room 20s ease-in-out infinite alternate;
}
.scn-evoils-of-identification .wall {
    position: absolute; left: 0; right: 0; top: 30%; height: 70%;
    background: linear-gradient(180deg, #2a2244 0%, #1a1a2e 100%);
    border-radius: 10% 10% 0 0;
    box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-evoils-of-identification .window {
    position: absolute; top: 12%; left: 50%; width: 70px; height: 90px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, #3a4a7a 0%, #2a3a5a 100%);
    border-radius: 4px;
    box-shadow: inset 0 0 20px rgba(100,130,200,.3), 0 0 40px rgba(100,130,200,.1);
    animation: eoi-window 8s ease-in-out infinite alternate;
}
.scn-evoils-of-identification .desk {
    position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
    background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
    border-radius: 2px;
    box-shadow: 0 5px 15px rgba(0,0,0,.6);
    animation: eoi-desk 12s ease-in-out infinite;
}
.scn-evoils-of-identification .figure {
    position: absolute; bottom: 28%; left: 32%; 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: eoi-figure 6s ease-in-out infinite;
}
.scn-evoils-of-identification .mirror {
    position: absolute; top: 20%; right: 18%; width: 50px; height: 70px;
    background: linear-gradient(180deg, rgba(200,200,255,.15) 0%, rgba(100,100,150,.08) 100%);
    border: 2px solid rgba(200,200,255,.1);
    border-radius: 4px;
    box-shadow: 0 0 30px rgba(100,100,200,.1);
    animation: eoi-mirror 10s ease-in-out infinite alternate;
}
.scn-evoils-of-identification .shadow {
    position: absolute; bottom: 28%; left: 28%; width: 40px; height: 20px;
    background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(3px);
    animation: eoi-shadow 6s ease-in-out infinite;
}
.scn-evoils-of-identification .particles {
    position: absolute; inset: 0;
    background: radial-gradient(circle at 20% 40%, rgba(200,200,255,.03) 0%, transparent 50%),
                radial-gradient(circle at 80% 60%, rgba(200,200,255,.02) 0%, transparent 50%);
    animation: eoi-particles 15s ease-in-out infinite;
}
@keyframes eoi-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes eoi-window { 0% { box-shadow: inset 0 0 15px rgba(100,130,200,.2), 0 0 30px rgba(100,130,200,.05); } 50% { box-shadow: inset 0 0 30px rgba(130,160,230,.4), 0 0 60px rgba(130,160,230,.1); } 100% { box-shadow: inset 0 0 20px rgba(100,130,200,.3), 0 0 40px rgba(100,130,200,.08); } }
@keyframes eoi-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes eoi-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eoi-mirror { 0% { opacity: .4; filter: blur(1px); } 50% { opacity: .7; filter: blur(0); } 100% { opacity: .5; filter: blur(2px); } }
@keyframes eoi-shadow { 0%,100% { opacity: .5; transform: scaleX(1); } 50% { opacity: .3; transform: scaleX(1.2); } }
@keyframes eoi-particles { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }

.scn-maxims-as-reaction {
    background: linear-gradient(180deg, #1c1c3a 0%, #2a2244 50%, #1a1a2e 100%),
                radial-gradient(ellipse at 50% 60%, #2a2244 0%, transparent 60%);
}
.scn-maxims-as-reaction .pillar-left {
    position: absolute; bottom: 0; left: 15%; width: 12px; height: 80%;
    background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
    border-radius: 2px;
    box-shadow: 5px 0 10px rgba(0,0,0,.4);
    animation: mxr-pillar 20s ease-in-out infinite;
}
.scn-maxims-as-reaction .pillar-right {
    position: absolute; bottom: 0; right: 15%; width: 12px; height: 80%;
    background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
    border-radius: 2px;
    box-shadow: -5px 0 10px rgba(0,0,0,.4);
    animation: mxr-pillar 20s ease-in-out infinite reverse;
}
.scn-maxims-as-reaction .pendulum {
    position: absolute; top: 5%; left: 50%; width: 4px; height: 60%;
    transform-origin: top center;
    background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
    border-radius: 2px;
    animation: mxr-pendulum 4s ease-in-out infinite;
}
.scn-maxims-as-reaction .weight-left {
    position: absolute; top: 65%; left: 44%; width: 20px; height: 20px;
    background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 80%);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0,0,0,.5);
    animation: mxr-weight 4s ease-in-out infinite;
}
.scn-maxims-as-reaction .weight-right {
    position: absolute; top: 65%; left: 56%; width: 20px; height: 20px;
    margin-left: -10px;
    background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 80%);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0,0,0,.5);
    animation: mxr-weight 4s ease-in-out infinite reverse;
}
.scn-maxims-as-reaction .shadow {
    position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
    background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(5px);
    animation: mxr-shadow 4s ease-in-out infinite;
}
@keyframes mxr-pillar { 0%,100% { opacity: .6; } 50% { opacity: .9; } }
@keyframes mxr-pendulum { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes mxr-weight { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes mxr-shadow { 0%,100% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.2); } }

.scn-education-through-life {
    background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #5a3a1a 100%),
                radial-gradient(ellipse at 50% 20%, #4a2a0a 0%, transparent 60%);
}
.scn-education-through-life .bg-warm {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, #3a2010 0%, #2a1000 100%);
    animation: edt-bg 25s ease-in-out infinite alternate;
}
.scn-education-through-life .desk {
    position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
    background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
    border-radius: 4px;
    box-shadow: 0 8px 20px rgba(0,0,0,.6);
    animation: edt-desk 10s ease-in-out infinite;
}
.scn-education-through-life .book {
    position: absolute; bottom: 28%; left: 30%; width: 50px; height: 40px;
    background: linear-gradient(150deg, #5a3a1a 0%, #8a5a2a 50%, #5a3a1a 100%);
    border-radius: 2px;
    transform: rotate(-5deg);
    box-shadow: 2px 2px 10px rgba(0,0,0,.5);
    animation: edt-book 15s ease-in-out infinite;
}
.scn-education-through-life .plant {
    position: absolute; bottom: 25%; right: 25%; width: 30px; height: 60px;
    background: linear-gradient(180deg, #2a5a1a 0%, #1a3a0a 100%);
    border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
    transform-origin: bottom center;
    animation: edt-plant 8s ease-in-out infinite;
}
.scn-education-through-life .candle {
    position: absolute; bottom: 28%; left: 40%; width: 10px; height: 30px;
    background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
    border-radius: 2px;
    box-shadow: 0 0 20px rgba(200,150,50,.5);
    animation: edt-candle 3s ease-in-out infinite;
}
.scn-education-through-life .thread {
    position: absolute; top: 20%; left: 10%; width: 80%; height: 2px;
    background: linear-gradient(90deg, transparent, #c0a060 20%, #d0b070 50%, #c0a060 80%, transparent);
    filter: blur(1px);
    animation: edt-thread 10s ease-in-out infinite;
}
.scn-education-through-life .glow {
    position: absolute; bottom: 30%; left: 38%; width: 30px; height: 30px;
    background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%);
    border-radius: 50%;
    animation: edt-glow 4s ease-in-out infinite alternate;
}
@keyframes edt-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes edt-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes edt-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-5deg); } }
@keyframes edt-plant { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes edt-candle { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: .9; } }
@keyframes edt-thread { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }
@keyframes edt-glow { 0% { opacity: .3; transform: scale(1); } 100% { opacity: .6; transform: scale(1.3); } }

.scn-socratic-doctrine {
    background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 30%, #0a0a1a 100%),
                radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-socratic-doctrine .bg-dark {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
    animation: sdc-bg 30s ease-in-out infinite alternate;
}
.scn-socratic-doctrine .seat {
    position: absolute; bottom: 15%; left: 50%; width: 40px; height: 15px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
    border-radius: 40% 40% 0 0;
    box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-socratic-doctrine .figure {
    position: absolute; bottom: 15%; left: 50%; width: 24px; height: 50px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
    border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
    transform-origin: bottom center;
    animation: sdc-figure 6s ease-in-out infinite;
}
.scn-socratic-doctrine .inner-light {
    position: absolute; bottom: 40%; left: 50%; width: 14px; height: 16px;
    transform: translateX(-50%);
    background: radial-gradient(circle, #a0c0ff 0%, #6080c0 50%, transparent 70%);
    border-radius: 50%;
    box-shadow: 0 0 30px rgba(100,150,255,.6), 0 0 60px rgba(100,150,255,.3);
    animation: sdc-inner 3s ease-in-out infinite alternate;
}
.scn-socratic-doctrine .outer-glow {
    position: absolute; bottom: 35%; left: 50%; width: 50px; height: 50px;
    transform: translateX(-50%);
    background: radial-gradient(circle, rgba(150,200,255,.15) 0%, transparent 70%);
    border-radius: 50%;
    animation: sdc-outer 8s ease-in-out infinite alternate;
}
.scn-socratic-doctrine .wisps {
    position: absolute; inset: 0;
    background: radial-gradient(circle at 40% 30%, rgba(150,200,255,.03) 0%, transparent 50%),
                radial-gradient(circle at 60% 70%, rgba(150,200,255,.02) 0%, transparent 50%);
    animation: sdc-wisps 20s ease-in-out infinite;
}
@keyframes sdc-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes sdc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sdc-inner { 0% { opacity: .6; box-shadow: 0 0 20px rgba(100,150,255,.4), 0 0 40px rgba(100,150,255,.2); } 100% { opacity: 1; box-shadow: 0 0 40px rgba(150,200,255,.8), 0 0 80px rgba(150,200,255,.4); } }
@keyframes sdc-outer { 0% { opacity: .2; transform: translateX(-50%) scale(1); } 100% { opacity: .5; transform: translateX(-50%) scale(1.2); } }
@keyframes sdc-wisps { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }

.scn-persons-of-dialogue { background: linear-gradient(180deg, #1a1a2e 0%, #2c2030 30%, #1e1820 70%, #0f0b0f 100%), radial-gradient(ellipse at 50% 40%, #3a2838 0%, transparent 70%); }
.scn-persons-of-dialogue .room-bg { position:absolute; inset:10% 8% 8% 8%; background: linear-gradient(180deg, #2a2030 0%, #1a1520 100%); border-radius: 4% / 6%; box-shadow: inset 0 0 60px rgba(0,0,0,.7); animation: pod-breath 12s ease-in-out infinite alternate; }
.scn-persons-of-dialogue .wall-shadow { position:absolute; inset:12% 10% 10% 10%; background: radial-gradient(ellipse at 55% 50%, transparent 30%, rgba(0,0,0,.35) 80%); border-radius: 3%; animation: pod-shadow-pulse 9s ease-in-out infinite alternate; }
.scn-persons-of-dialogue .table { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 15px rgba(0,0,0,.6); }
.scn-persons-of-dialogue .oil-lamp { position:absolute; bottom:20%; left:48%; width:10px; height:16px; background: radial-gradient(circle at 50% 30%, #d4a050 0%, #a07030 60%, #604020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,140,60,.4), 0 0 60px 20px rgba(200,140,60,.15); animation: pod-lamp-glow 4s ease-in-out infinite alternate; }
.scn-persons-of-dialogue .figure-socrates { position:absolute; bottom:16%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pod-figure-s 6s ease-in-out infinite; }
.scn-persons-of-dialogue .figure-adimantus { position:absolute; bottom:16%; left:44%; width:20px; height:48px; background: linear-gradient(180deg, #2a3a2a 0%, #121a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pod-figure-a 6s ease-in-out infinite 1s; }
.scn-persons-of-dialogue .figure-polemarchus { position:absolute; bottom:16%; right:32%; width:21px; height:46px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pod-figure-p 5s ease-in-out infinite 0.5s; }
.scn-persons-of-dialogue .figure-thrasymachus { position:absolute; bottom:16%; right:24%; width:23px; height:52px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pod-figure-t 5.5s ease-in-out infinite 1.5s; }
.scn-persons-of-dialogue .wine-cup { position:absolute; bottom:14%; left:51%; width:10px; height:6px; background: radial-gradient(circle at 50% 40%, #8a6040 0%, #5a3a20 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -2px 4px rgba(100,60,30,.4); animation: pod-cup-rock 7s ease-in-out infinite; }
@keyframes pod-breath { 0% { opacity:.75; transform:scale(1) } 50% { opacity:.9; transform:scale(1.005) } 100% { opacity:.8; transform:scale(1) } }
@keyframes pod-shadow-pulse { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes pod-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,140,60,.3), 0 0 40px 12px rgba(200,140,60,.1); } 50% { box-shadow: 0 0 40px 14px rgba(220,160,70,.5), 0 0 80px 24px rgba(220,160,70,.2); } 100% { box-shadow: 0 0 25px 8px rgba(200,140,60,.35), 0 0 50px 15px rgba(200,140,60,.12); } }
@keyframes pod-figure-s { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 30% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 60% { transform:translateX(-1px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pod-figure-a { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 33% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 66% { transform:translateX(1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pod-figure-p { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 40% { transform:translateX(1px) translateY(-1px) rotate(-1deg) } 80% { transform:translateX(-1px) translateY(0) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes pod-figure-t { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 35% { transform:translateX(-2px) translateY(-1px) rotate(-2deg) } 70% { transform:translateX(1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pod-cup-rock { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(4deg) } }

.scn-descent-to-piraeus { background: linear-gradient(180deg, #7a9ab0 0%, #b0c8d8 30%, #d0e0e8 60%, #c8d8e0 100%), radial-gradient(ellipse at 60% 20%, #d8e8f0 0%, transparent 60%); }
.scn-descent-to-piraeus .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #90b0c8 0%, #b8d4e0 50%, #d0e4ec 100%); animation: dtp-sky 20s ease-in-out infinite alternate; }
.scn-descent-to-piraeus .sun-glow { position:absolute; top:8%; right:22%; width:60px; height:60px; background: radial-gradient(circle, #ffe8c8 0%, #f0d0a0 30%, transparent 100%); border-radius:50%; filter: blur(8px); opacity:.7; animation: dtp-sun-pulse 15s ease-in-out infinite alternate; }
.scn-descent-to-piraeus .harbor-dist { position:absolute; bottom:20%; left:5%; right:0; height:35%; background: linear-gradient(180deg, #6a88a0 0%, #8aa8c0 40%, #a0bcc8 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.1); animation: dtp-harbor 18s ease-in-out infinite alternate; }
.scn-descent-to-piraeus .path-curve { position:absolute; bottom:15%; left:-5%; right:10%; height:18%; background: linear-gradient(135deg, #b8a890 0%, #d0c0a8 50%, #c8b898 100%); border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%; transform: skewX(-5deg); box-shadow: inset 0 4px 12px rgba(0,0,0,.08); }
.scn-descent-to-piraeus .figure-left { position:absolute; bottom:20%; left:30%; width:18px; height:44px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-walk-l 4s ease-in-out infinite; }
.scn-descent-to-piraeus .figure-right { position:absolute; bottom:20%; left:38%; width:18px; height:46px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-walk-r 4.2s ease-in-out infinite 0.5s; }
.scn-descent-to-piraeus .olive-tree { position:absolute; bottom:22%; right:20%; width:40px; height:55px; background: linear-gradient(180deg, #8a9a6a 0%, #5a6a3a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: skewX(-8deg); box-shadow: inset -4px -4px 10px rgba(0,0,0,.2); animation: dtp-tree-sway 8s ease-in-out infinite alternate; }
.scn-descent-to-piraeus .dust-particles { position:absolute; bottom:16%; left:20%; width:100px; height:20px; background: radial-gradient(circle at 20% 80%, rgba(200,190,170,.4) 0%, transparent 70%); filter: blur(4px); animation: dtp-dust 6s ease-in-out infinite alternate; }
@keyframes dtp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dtp-sun-pulse { 0% { opacity:.5; transform:scale(.95) } 50% { opacity:.8; transform:scale(1.05) } 100% { opacity:.6; transform:scale(1) } }
@keyframes dtp-harbor { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes dtp-walk-l { 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 dtp-walk-r { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 25% { transform:translateX(7px) translateY(-1px) rotate(-2deg) } 50% { transform:translateX(14px) translateY(0) rotate(1deg) } 75% { transform:translateX(21px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(28px) translateY(0) rotate(0deg) } }
@keyframes dtp-tree-sway { 0% { transform:skewX(-8deg) rotate(0deg) } 50% { transform:skewX(-5deg) rotate(2deg) } 100% { transform:skewX(-10deg) rotate(-1deg) } }
@keyframes dtp-dust { 0% { opacity:.15; transform:translateX(0) } 50% { opacity:.3; transform:translateX(10px) scale(1.1) } 100% { opacity:.2; transform:translateX(-5px) scale(.95) } }

.scn-meeting-polemarchus { background: linear-gradient(180deg, #8aacb8 0%, #b8ced8 30%, #d0dce4 60%, #e0e8ec 100%), radial-gradient(ellipse at 70% 30%, #d8e4ec 0%, transparent 60%); }
.scn-meeting-polemarchus .road-surface { position:absolute; bottom:10%; left:5%; right:5%; height:25%; background: linear-gradient(135deg, #b8a890 0%, #d0c0a8 40%, #c0b098 80%, #a89880 100%); border-radius: 10% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.08); }
.scn-meeting-polemarchus .distant-city { position:absolute; bottom:30%; right:5%; width:30%; height:20%; background: linear-gradient(180deg, #a0b0a8 0%, #889898 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; box-shadow: inset -4px -4px 12px rgba(0,0,0,.1); filter: blur(2px); opacity:.8; }
.scn-meeting-polemarchus .sky-athens { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7a96a8 0%, #a8c0d0 50%, #c8d8e4 100%); animation: mtp-sky 25s ease-in-out infinite alternate; }
.scn-meeting-polemarchus .figure-socrates-meet { position:absolute; bottom:16%; left:22%; width:18px; height:44px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-fig-s 5s ease-in-out infinite; }
.scn-meeting-polemarchus .figure-glauco-meet { position:absolute; bottom:16%; left:30%; width:17px; height:42px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-fig-g 5.2s ease-in-out infinite 0.6s; }
.scn-meeting-polemarchus .figure-polemarchus-meet { position:absolute; bottom:16%; right:20%; width:19px; height:45px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-fig-p 4.8s ease-in-out infinite 0.3s; }
.scn-meeting-polemarchus .servant-running { position:absolute; bottom:15%; left:50%; width:14px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-runner 3s ease-in-out infinite; }
.scn-meeting-polemarchus .dust-puff { position:absolute; bottom:14%; left:48%; width:30px; height:10px; background: radial-gradient(circle at 50% 50%, rgba(180,160,140,.5) 0%, transparent 80%); filter: blur(3px); animation: mtp-puff 3s ease-in-out infinite alternate; }
@keyframes mtp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mtp-fig-s { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 33% { transform:translateX(2px) translateY(-1px) rotate(0deg) } 66% { transform:translateX(-1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes mtp-fig-g { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 33% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 66% { transform:translateX(2px) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes mtp-fig-p { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 50% { transform:translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes mtp-runner { 0% { transform:translateX(0) translateY(0) rotate(-3deg); opacity:.9 } 25% { transform:translateX(12px) translateY(-2px) rotate(1deg); opacity:1 } 50% { transform:translateX(24px) translateY(0) rotate(-2deg); opacity:.9 } 75% { transform:translateX(36px) translateY(-1px) rotate(2deg); opacity:.8 } 100% { transform:translateX(48px) translateY(0) rotate(0deg); opacity:.7 } }
@keyframes mtp-puff { 0% { opacity:.2; transform:scale(.8) translateX(0) } 50% { opacity:.5; transform:scale(1.2) translateX(10px) } 100% { opacity:.3; transform:scale(.9) translateX(-5px) } }

.scn-pole-marchus-invitation { background: linear-gradient(180deg, #7a96a8 0%, #a8c0d0 30%, #c8d8e4 60%, #dce4ec 100%), radial-gradient(ellipse at 50% 80%, #e0e8ec 0%, transparent 60%); }
.scn-pole-marchus-invitation .road-wide { position:absolute; bottom:8%; left:2%; right:2%; height:28%; background: linear-gradient(135deg, #c0b098 0%, #d8c8b0 40%, #c8b8a0 80%, #b0a088 100%); border-radius: 15% 25% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.06); }
.scn-pole-marchus-invitation .city-wall { position:absolute; bottom:28%; left:78%; width:18%; height:30%; background: linear-gradient(180deg, #889898 0%, #708080 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.1); }
.scn-pole-marchus-invitation .sky-clear { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6a8aa0 0%, #90b0c8 40%, #b8ced8 100%); animation: pinv-sky 22s ease-in-out infinite alternate; }
.scn-pole-marchus-invitation .group-center { position:absolute; bottom:12%; left:10%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 80%, rgba(200,190,170,.15) 0%, transparent 80%); animation: pinv-group-pulse 10s ease-in-out infinite alternate; }
.scn-pole-marchus-invitation .figure-adeimantus { position:absolute; bottom:14%; left:12%; width:18px; height:44px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pinv-fig-ad 5.5s ease-in-out infinite; }
.scn-pole-marchus-invitation .figure-niceratus { position:absolute; bottom:14%; left:22%; width:17px; height:42px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pinv-fig-n 5s ease-in-out infinite 0.8s; }
.scn-pole-marchus-invitation .figure-polemarchus-invite { position:absolute; bottom:14%; left:32%; width:19px; height:46px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pinv-fig-p 4.8s ease-in-out infinite 0.4s; }
.scn-pole-marchus-invitation .figure-socrates-invite { position:absolute; bottom:14%; left:42%; width:18px; 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: pinv-fig-s 5.2s ease-in-out infinite 1.2s; }
.scn-pole-marchus-invitation .figure-glauco-invite { position:absolute; bottom:14%; left:52%; width:17px; height:43px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pinv-fig-gl 5.3s ease-in-out infinite 0.2s; }
@keyframes pinv-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pinv-group-pulse { 0% { opacity:.4; transform:scale(.98) } 50% { opacity:.6; transform:scale(1.02) } 100% { opacity:.5; transform:scale(1) } }
@keyframes pinv-fig-ad { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 33% { transform:translateX(1px) translateY(-1px) rotate(-1deg) } 66% { transform:translateX(-1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pinv-fig-n { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 40% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 80% { transform:translateX(1px) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes pinv-fig-p { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 35% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 70% { transform:translateX(-1px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes pinv-fig-s { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 30% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 60% { transform:translateX(1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pinv-fig-gl { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 45% { transform:translateX(1px) translateY(-1px) rotate(-1deg) } 90% { transform:translateX(-1px) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }

.scn-thickness-of-rims {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-thickness-of-rims .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #1a1a2e 0%, transparent 80%);
  animation: tor-bg 20s ease-in-out infinite alternate;
}
.scn-thickness-of-rims .sphere {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%);
  background: radial-gradient(circle at 40% 35%, #6a7a8a 0%, #3a4a5a 70%, #1a2a3a 100%);
  border-radius: 50%; box-shadow: inset -8px -8px 20px rgba(0,0,0,0.6), 0 0 30px rgba(60,80,100,0.3);
  animation: tor-sphere 10s linear infinite;
}
.scn-thickness-of-rims .ring {
  position: absolute; top: 50%; left: 50%; border-radius: 50%; border: solid rgba(180,200,220,0.4);
  transform: translate(-50%, -50%) rotateX(60deg);
  animation: tor-ring 8s ease-in-out infinite alternate;
}
.scn-thickness-of-rims .ring-a {
  width: 160px; height: 40px; border-width: 4px; animation-duration: 8s;
}
.scn-thickness-of-rims .ring-b {
  width: 220px; height: 55px; border-width: 6px; animation-duration: 12s; animation-delay: -2s;
}
.scn-thickness-of-rims .ring-c {
  width: 280px; height: 70px; border-width: 8px; animation-duration: 16s; animation-delay: -4s;
}
.scn-thickness-of-rims .figure {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tor-figure 4s ease-in-out infinite;
}
.scn-thickness-of-rims .lamp {
  position: absolute; bottom: 28%; left: 30%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0a060 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,224,160,0.6);
  animation: tor-lamp 3s ease-in-out infinite alternate;
}
@keyframes tor-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes tor-sphere {
  0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes tor-ring {
  0% { transform: translate(-50%, -50%) rotateX(60deg) scale(1); border-color: rgba(180,200,220,0.3); }
  50% { transform: translate(-50%, -50%) rotateX(60deg) scale(1.05); border-color: rgba(200,220,240,0.5); }
  100% { transform: translate(-50%, -50%) rotateX(60deg) scale(0.95); border-color: rgba(160,180,200,0.3); }
}
@keyframes tor-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(0deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes tor-lamp {
  0% { box-shadow: 0 0 12px 2px rgba(255,224,160,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 8px rgba(255,224,160,0.8); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(255,224,160,0.5); opacity: 0.9; }
}

.scn-earth-and-heaven {
  background: linear-gradient(180deg, #0e0e24 0%, #1c1c3a 50%, #2a2a4e 100%), radial-gradient(ellipse at 50% 30%, #3a3a6a 0%, transparent 70%);
}
.scn-earth-and-heaven .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: eah-sky 15s ease-in-out infinite alternate;
}
.scn-earth-and-heaven .veil {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(40, 40, 70, 0.8) 0%, transparent 100%);
  filter: blur(8px); animation: eah-veil 20s ease-in-out infinite;
}
.scn-earth-and-heaven .platform {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%); background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: eah-platform 10s ease-in-out infinite alternate;
}
.scn-earth-and-heaven .figure {
  position: absolute; bottom: 28%; left: 52%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a44 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: eah-figure 3s ease-in-out infinite;
}
.scn-earth-and-heaven .star {
  position: absolute; border-radius: 50%; background: #d0e0f0;
  box-shadow: 0 0 6px 2px rgba(200,220,255,0.5);
  animation: eah-star 8s ease-in-out infinite alternate;
}
.scn-earth-and-heaven .star-a {
  width: 4px; height: 4px; top: 15%; left: 20%; animation-duration: 8s;
}
.scn-earth-and-heaven .star-b {
  width: 3px; height: 3px; top: 25%; right: 15%; animation-duration: 10s; animation-delay: -3s;
}
.scn-earth-and-heaven .swirl {
  position: absolute; bottom: 35%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%); background: radial-gradient(circle, transparent 40%, rgba(100,120,180,0.1) 70%);
  border-radius: 50%; filter: blur(10px); animation: eah-swirl 25s linear infinite;
}
@keyframes eah-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes eah-veil {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(5px); }
  100% { opacity: 0.6; transform: translateY(-3px); }
}
@keyframes eah-platform {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes eah-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(3deg); }
  60% { transform: translateX(6px) rotate(-3deg); }
  100% { transform: translateX(9px) rotate(0deg); }
}
@keyframes eah-star {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes eah-swirl {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}

.scn-meadow-and-retribution {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-meadow-and-retribution .bg-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #222 0%, #0a0a10 80%);
  animation: mar-bg 18s ease-in-out infinite alternate;
}
.scn-meadow-and-retribution .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 40%, transparent 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0; filter: blur(2px);
  animation: mar-meadow 12s ease-in-out infinite alternate;
}
.scn-meadow-and-retribution .spindle {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 160px;
  transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: mar-spindle 6s ease-in-out infinite;
}
.scn-meadow-and-retribution .left-fig,
.scn-meadow-and-retribution .right-fig {
  position: absolute; bottom: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mar-fig 4s ease-in-out infinite;
}
.scn-meadow-and-retribution .left-fig {
  left: 35%; animation-delay: -2s;
}
.scn-meadow-and-retribution .right-fig {
  right: 35%; animation-delay: 0s;
}
.scn-meadow-and-retribution .judge-light {
  position: absolute; top: 10%; left: 50%; width: 6px; height: 6px;
  transform: translateX(-50%); background: #c0a070; border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(192,160,112,0.3);
  animation: mar-light 5s ease-in-out infinite alternate;
}
@keyframes mar-bg {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes mar-meadow {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes mar-spindle {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mar-fig {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(4px) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mar-light {
  0% { box-shadow: 0 0 12px 2px rgba(192,160,112,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px rgba(192,160,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 4px rgba(192,160,112,0.3); opacity: 0.85; }
}

.scn-chance-and-wisdom {
  background: linear-gradient(180deg, #1a1a14 0%, #2a241a 40%, #3a2e1e 100%), radial-gradient(ellipse at 50% 100%, #3a2e1e 0%, transparent 60%);
}
.scn-chance-and-wisdom .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.7);
  animation: caw-table 8s ease-in-out infinite alternate;
}
.scn-chance-and-wisdom .urn {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.6);
  animation: caw-urn 6s ease-in-out infinite;
}
.scn-chance-and-wisdom .lot {
  position: absolute; bottom: 22%; background: #6a5a4a; border-radius: 30% 30% 10% 10%;
  width: 8px; height: 18px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: caw-lot 4s ease-in-out infinite;
}
.scn-chance-and-wisdom .lot-1 {
  left: 30%; transform: rotate(-20deg); animation-delay: -1s;
}
.scn-chance-and-wisdom .lot-2 {
  left: 50%; transform: rotate(10deg); animation-delay: -2s;
}
.scn-chance-and-wisdom .lot-3 {
  left: 65%; transform: rotate(-5deg); animation-delay: -3s;
}
.scn-chance-and-wisdom .hand {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: caw-hand 5s ease-in-out infinite;
}
.scn-chance-and-wisdom .candle {
  position: absolute; bottom: 20%; left: 10%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 0 20px 6px rgba(224,192,128,0.5);
  animation: caw-candle 3s ease-in-out infinite alternate;
}
@keyframes caw-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes caw-urn {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes caw-lot {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(10deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes caw-hand {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(4px) rotate(5deg); }
  70% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(12px) rotate(0deg); }
}
@keyframes caw-candle {
  0% { box-shadow: 0 0 12px 2px rgba(224,192,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 6px rgba(224,192,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(224,192,128,0.4); opacity: 0.9; }
}

/* cephalus-answer (firelit interior with speaker) */
.scn-cephalus-answer { background: radial-gradient(ellipse at 45% 60%, #4a2a1a 0%, #1e0e08 70%), linear-gradient(180deg, #2a1610 0%, #0e0804 100%); }
.scn-cephalus-answer .room { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,15,10,.8) 0%, transparent 40%, rgba(20,10,6,.6) 100%); animation: ca-room 12s ease-in-out infinite alternate; }
.scn-cephalus-answer .hearth { position:absolute; bottom:20%; left:10%; width:40%; height:25%; background: radial-gradient(ellipse at 50% 100%, #b05030 0%, transparent 60%), linear-gradient(135deg, #3a1c10 0%, #1a0c08 100%); border-radius: 60% 60% 20% 20% / 80% 80% 30% 30%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.7), 0 0 30px 15px rgba(180,80,40,.4); animation: ca-fire 3s ease-in-out infinite alternate; }
.scn-cephalus-answer .figure { position:absolute; bottom:25%; left:50%; width:22%; height:40%; background: linear-gradient(180deg, #3a201a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 6s ease-in-out infinite; }
.scn-cephalus-answer .gesture { position:absolute; bottom:38%; left:58%; width:6%; height:2%; background: #4a2a1a; border-radius: 40% 20% 20% 40%; transform: rotate(20deg); animation: ca-gesture 4s ease-in-out infinite alternate; }
.scn-cephalus-answer .shadow { position:absolute; bottom:20%; left:45%; width:30%; height:20%; background: #0e0604; border-radius: 50% 20% 30% 40%; filter: blur(6px); opacity:.5; animation: ca-shadow 6s ease-in-out infinite alternate; }
.scn-cephalus-answer .glow { position:absolute; inset:10% 20% 30% 10%; background: radial-gradient(ellipse at 20% 70%, rgba(200,120,60,.25) 0%, transparent 60%); animation: ca-glow 4s ease-in-out infinite alternate; }
@keyframes ca-room { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ca-fire { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(.98) translateY(2px) } }
@keyframes ca-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4%) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2%) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ca-gesture { 0% { transform: rotate(15deg) scaleX(1) } 100% { transform: rotate(35deg) scaleX(1.1) } }
@keyframes ca-shadow { 0% { transform: skew(0,0) scaleX(1) opacity(.4) } 50% { transform: skew(5deg,3deg) scaleX(1.1) opacity(.6) } 100% { transform: skew(0,0) scaleX(1) opacity(.4) } }
@keyframes ca-glow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

/* wealth-and-goodness (rich seated, poor standing) */
.scn-wealth-and-goodness { background: radial-gradient(ellipse at 30% 50%, #3d2518 0%, #1a0e0a 70%), linear-gradient(130deg, #2e1c12 0%, #100804 100%); }
.scn-wealth-and-goodness .room { position:absolute; inset:0; background: linear-gradient(135deg, rgba(50,30,20,.5) 0%, transparent 50%, rgba(20,10,6,.7) 100%); animation: wg-room 15s ease-in-out infinite alternate; }
.scn-wealth-and-goodness .rich-figure { position:absolute; bottom:20%; left:20%; width:20%; height:45%; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a10 100%); border-radius: 50% 40% 30% 30% / 70% 60% 40% 40%; transform-origin: bottom center; animation: wg-rich 8s ease-in-out infinite; }
.scn-wealth-and-goodness .poor-figure { position:absolute; bottom:25%; right:20%; width:16%; height:35%; background: linear-gradient(180deg, #3a2018 0%, #1a0e0a 100%); border-radius: 60% 50% 20% 20% / 80% 70% 30% 30%; transform-origin: bottom center; animation: wg-poor 10s ease-in-out infinite; }
.scn-wealth-and-goodness .table { position:absolute; bottom:15%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wg-table 12s ease-in-out infinite; }
.scn-wealth-and-goodness .lamp { position:absolute; bottom:22%; left:45%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 80%, #d09060 0%, #a06040 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,120,60,.6); animation: wg-lamp 3s ease-in-out infinite alternate; }
.scn-wealth-and-goodness .coin { position:absolute; bottom:20%; left:50%; width:6%; height:6%; background: radial-gradient(circle at 50% 50%, #d4a060 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(200,150,80,.3); animation: wg-coin 2s ease-in-out infinite alternate; }
@keyframes wg-room { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes wg-rich { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes wg-poor { 0% { transform: translateY(0) scaleX(1) } 30% { transform: translateY(-3px) scaleX(1.05) } 70% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(-2px) scaleX(.95) } }
@keyframes wg-table { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes wg-lamp { 0% { box-shadow: 0 0 20px 5px rgba(200,120,60,.4); transform: scale(1) } 50% { box-shadow: 0 0 40px 12px rgba(210,140,80,.6); transform: scale(1.05) } 100% { box-shadow: 0 0 25px 6px rgba(200,120,60,.4); transform: scale(1) } }
@keyframes wg-coin { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.2) rotate(180deg) } }

/* cephalus-inheritance (three candles generations) */
.scn-cephalus-inheritance { background: radial-gradient(ellipse at 55% 50%, #3d2215 0%, #150b06 70%), linear-gradient(180deg, #1f100a 0%, #0a0503 100%); }
.scn-cephalus-inheritance .table { position:absolute; bottom:15%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-cephalus-inheritance .candle-1 { position:absolute; bottom:25%; left:25%; width:5%; height:20%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ci-candle1 5s ease-in-out infinite; }
.scn-cephalus-inheritance .candle-2 { position:absolute; bottom:25%; left:47%; width:5%; height:24%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ci-candle2 6s ease-in-out infinite; }
.scn-cephalus-inheritance .candle-3 { position:absolute; bottom:25%; right:25%; width:5%; height:18%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ci-candle3 7s ease-in-out infinite; }
.scn-cephalus-inheritance .flame-1 { position:absolute; bottom:44%; left:26%; width:3%; height:6%; background: radial-gradient(ellipse at 50% 100%, #f0c080 0%, #c06040 100%); border-radius: 50%; box-shadow: 0 0 14px 6px rgba(200,100,50,.7); animation: ci-flame1 0.8s ease-in-out infinite alternate; }
.scn-cephalus-inheritance .flame-2 { position:absolute; bottom:48%; left:48%; width:3%; height:7%; background: radial-gradient(ellipse at 50% 100%, #f0c080 0%, #c06040 100%); border-radius: 50%; box-shadow: 0 0 14px 6px rgba(200,100,50,.7); animation: ci-flame2 0.6s ease-in-out infinite alternate; }
.scn-cephalus-inheritance .flame-3 { position:absolute; bottom:42%; right:26%; width:3%; height:5%; background: radial-gradient(ellipse at 50% 100%, #f0c080 0%, #c06040 100%); border-radius: 50%; box-shadow: 0 0 14px 6px rgba(200,100,50,.7); animation: ci-flame3 1s ease-in-out infinite alternate; }
.scn-cephalus-inheritance .scroll { position:absolute; bottom:15%; left:38%; width:24%; height:8%; background: linear-gradient(135deg, #b09880 0%, #8a7660 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: left center; animation: ci-scroll 14s ease-in-out infinite; }
@keyframes ci-candle1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes ci-candle2 { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ci-candle3 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes ci-flame1 { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.2) translateX(2px) } 100% { transform: scaleY(.9) translateX(-1px) } }
@keyframes ci-flame2 { 0% { transform: scaleY(1) } 30% { transform: scaleY(1.3) } 70% { transform: scaleY(.8) } 100% { transform: scaleY(1) } }
@keyframes ci-flame3 { 0% { transform: scale(1) } 50% { transform: scale(1.15) rotate(3deg) } 100% { transform: scale(.9) rotate(-2deg) } }
@keyframes ci-scroll { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }

/* love-of-acquired-money (overhead hands counting coins) */
.scn-love-of-acquired-money { background: radial-gradient(ellipse at 50% 60%, #2c1a0e 0%, #140a05 80%), linear-gradient(180deg, #1e0f08 0%, #0a0502 100%); }
.scn-love-of-acquired-money .table { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-love-of-acquired-money .coin-pile { position:absolute; bottom:25%; left:30%; width:30%; height:10%; background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #b08040 60%, #8a6030 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: lam-pile 9s ease-in-out infinite; }
.scn-love-of-acquired-money .hand-left { position:absolute; bottom:30%; left:20%; width:15%; height:15%; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 50% 30% 40% / 60% 60% 40% 50%; transform-origin: bottom right; animation: lam-handl 4s ease-in-out infinite alternate; }
.scn-love-of-acquired-money .hand-right { position:absolute; bottom:30%; right:20%; width:16%; height:14%; background: linear-gradient(225deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 40% 40% 30% / 60% 60% 50% 40%; transform-origin: bottom left; animation: lam-handr 4s ease-in-out infinite alternate; }
.scn-love-of-acquired-money .coin-single { position:absolute; bottom:40%; left:48%; width:4%; height:4%; background: radial-gradient(circle at 40% 40%, #e8c080 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,150,80,.4); animation: lam-coin 1.5s ease-in-out infinite; }
.scn-love-of-acquired-money .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(8px); animation: lam-shadow 8s ease-in-out infinite; }
.scn-love-of-acquired-money .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 35%, rgba(200,140,80,.2) 0%, transparent 60%); animation: lam-glow 4s ease-in-out infinite alternate; }
@keyframes lam-pile { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes lam-handl { 0% { transform: translate(0,0) rotate(5deg) } 50% { transform: translate(5%,-2%) rotate(15deg) } 100% { transform: translate(0,0) rotate(5deg) } }
@keyframes lam-handr { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(-5%,-1%) rotate(-15deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes lam-coin { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-10px) rotate(180deg) scale(1.2) } 100% { transform: translateY(0) rotate(360deg) scale(1) } }
@keyframes lam-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes lam-glow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-combe-resistance {
  background: linear-gradient(180deg, #2a1e14 0%, #1f1510 50%, #140f0a 100%),
              radial-gradient(ellipse at 50% 20%, #3d2b1f 0%, transparent 60%);
}

.scn-combe-resistance .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 28%;
  background: linear-gradient(180deg, #3d2b1f 0%, #1f1510 100%);
  border-radius: 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}

.scn-combe-resistance .wall {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 72%;
  background: linear-gradient(180deg, #3b2a1e 0%, #2a1e14 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}

.scn-combe-resistance .window {
  position: absolute;
  top: 18%; right: 10%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #4a6b8a 0%, #2e4a63 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(74,107,138,0.4);
  animation: cr-window-glow 8s ease-in-out infinite alternate;
}

.scn-combe-resistance .table {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 120px;
  height: 6px;
  background: linear-gradient(180deg, #5a3d2a 0%, #3d2b1f 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: translateX(-50%);
}

.scn-combe-resistance .figure {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure-sway 6s ease-in-out infinite;
}

.scn-combe-resistance .ribbon {
  position: absolute;
  bottom: 48%; left: 30%;
  width: 20px;
  height: 3px;
  background: #1a1a1a;
  border-radius: 50%;
  transform: rotate(-15deg);
  animation: cr-ribbon-twitch 4s ease-in-out infinite;
}

.scn-combe-resistance .lamp {
  position: absolute;
  bottom: 34%;
  left: 50%;
  width: 20px;
  height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #e8c87a 0%, #c49450 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px #c49450, 0 0 60px 20px rgba(196,148,80,0.3);
  animation: cr-lamp-flicker 3s ease-in-out infinite alternate;
}

@keyframes cr-window-glow {
  0% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(74,107,138,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(74,107,138,0.6); }
  100% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(74,107,138,0.4); }
}

@keyframes cr-figure-sway {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-52%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cr-ribbon-twitch {
  0%,100% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
}

@keyframes cr-lamp-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05) scaleX(0.95); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}

/* ---------------------------------------------------------------- */

.scn-duty-to-refrain {
  background: linear-gradient(180deg, #141c24 0%, #0e151c 50%, #080d12 100%),
              radial-gradient(ellipse at 50% 30%, #1a2a38 0%, transparent 70%);
}

.scn-duty-to-refrain .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #1a2028 0%, #0e1418 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}

.scn-duty-to-refrain .wall-back {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 80%;
  background: linear-gradient(180deg, #1a222a 0%, #12181e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}

.scn-duty-to-refrain .wall-side {
  position: absolute;
  top: 0; left: 0; bottom: 20%;
  width: 25%;
  background: linear-gradient(90deg, #182028 0%, #10161c 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
}

.scn-duty-to-refrain .door {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 70px;
  height: 100px;
  background: linear-gradient(180deg, #2a323a 0%, #1a2228 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}

.scn-duty-to-refrain .light-crack {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 8px;
  height: 80px;
  background: linear-gradient(180deg, #f0e68c 0%, #c8b86a 50%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #f0e68c, 0 0 40px 20px rgba(240,230,140,0.3);
  animation: dtr-crack-pulse 5s ease-in-out infinite alternate;
}

.scn-duty-to-refrain .figure {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 28px;
  height: 75px;
  background: linear-gradient(180deg, #0a0e12 0%, #040608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtr-figure-stand 10s ease-in-out infinite;
}

.scn-duty-to-refrain .shadow {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 50px;
  height: 30px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  transform: translateX(-10px) skewX(-10deg);
  animation: dtr-shadow-grow 12s ease-in-out infinite alternate;
}

@keyframes dtr-crack-pulse {
  0% { opacity: 0.3; box-shadow: 0 0 10px 4px #f0e68c; }
  50% { opacity: 1; box-shadow: 0 0 30px 12px #f0e68c, 0 0 50px 20px rgba(240,230,140,0.4); }
  100% { opacity: 0.6; box-shadow: 0 0 15px 6px #f0e68c; }
}

@keyframes dtr-figure-stand {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-48%) rotate(-1deg); }
  60% { transform: translateX(-52%) rotate(1deg); }
}

@keyframes dtr-shadow-grow {
  0% { transform: translateX(-10px) skewX(-10deg) scaleX(0.8); opacity: 0.3; }
  50% { transform: translateX(-10px) skewX(-10deg) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(-10px) skewX(-10deg) scaleX(0.9); opacity: 0.4; }
}

/* ---------------------------------------------------------------- */

.scn-early-prohibition {
  background: linear-gradient(180deg, #2a1e12 0%, #1f150e 50%, #140c08 100%),
              radial-gradient(ellipse at 50% 30%, #3a281a 0%, transparent 60%);
}

.scn-early-prohibition .wall {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 70%;
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1c10 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.scn-early-prohibition .bookshelf {
  position: absolute;
  top: 10%; left: 12%;
  width: 60px;
  height: 140px;
  background: linear-gradient(180deg, #4a3422 0%, #2e1f14 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}

.scn-early-prohibition .bookshelf::before {
  content: '';
  position: absolute;
  top: 20px; left: 5px;
  width: 50px; height: 20px;
  background: #5a4230;
  border-radius: 2px;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.4);
}

.scn-early-prohibition .desk {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 100px;
  height: 8px;
  background: linear-gradient(180deg, #5a4030 0%, #3a281a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: translateX(-50%);
}

.scn-early-prohibition .figure {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 26px;
  height: 60px;
  background: linear-gradient(180deg, #140c08 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-figure-read 7s ease-in-out infinite;
}

.scn-early-prohibition .candle {
  position: absolute;
  bottom: 38%;
  left: 30%;
  width: 8px;
  height: 14px;
  background: linear-gradient(180deg, #f0d090 0%, #d4b070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.3);
  animation: ep-candle-flicker 2s ease-in-out infinite alternate;
}

.scn-early-prohibition .window {
  position: absolute;
  top: 20%; right: 15%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #2e4a5e 0%, #1c3040 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ep-window-night 10s ease-in-out infinite alternate;
}

.scn-early-prohibition .curtain {
  position: absolute;
  top: 18%; right: 13%;
  width: 8px;
  height: 70px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1008 100%);
  border-radius: 4px;
  animation: ep-curtain-sway 8s ease-in-out infinite;
}

@keyframes ep-figure-read {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
}

@keyframes ep-candle-flicker {
  0% { opacity: 0.8; transform: scaleY(1) scaleX(1); }
  50% { opacity: 1; transform: scaleY(1.1) scaleX(0.9); }
  100% { opacity: 0.9; transform: scaleY(0.95) scaleX(1.02); }
}

@keyframes ep-window-night {
  0% { background: linear-gradient(180deg, #2e4a5e 0%, #1c3040 100%); }
  50% { background: linear-gradient(180deg, #3a5a70 0%, #203848 100%); }
  100% { background: linear-gradient(180deg, #2a4050 0%, #182c38 100%); }
}

@keyframes ep-curtain-sway {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
}

/* ---------------------------------------------------------------- */

.scn-free-agent {
  background: linear-gradient(180deg, #241b12 0%, #1a120a 50%, #100c06 100%),
              radial-gradient(ellipse at 50% 40%, #3a2816 0%, transparent 60%);
}

.scn-free-agent .table {
  position: absolute;
  bottom: 18%;
  left: 15%; right: 15%;
  height: 10px;
  background: linear-gradient(180deg, #5a4030 0%, #3a281a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}

.scn-free-agent .book-left {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #6a5238 0%, #4a3824 100%);
  border-radius: 4px 2px 2px 4px;
  transform: perspective(200px) rotateY(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fa-page-left 12s ease-in-out infinite alternate;
}

.scn-free-agent .book-right {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #6a5238 0%, #4a3824 100%);
  border-radius: 2px 4px 4px 2px;
  transform: perspective(200px) rotateY(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fa-page-right 12s ease-in-out infinite alternate;
}

.scn-free-agent .quill {
  position: absolute;
  bottom: 36%;
  left: 40%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: fa-quill-sway 4s ease-in-out infinite;
}

.scn-free-agent .inkwell {
  position: absolute;
  bottom: 24%;
  left: 44%;
  width: 14px;
  height: 10px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, #0d0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: fa-inkwell-glow 6s ease-in-out infinite alternate;
}

.scn-free-agent .arm {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom right;
  animation: fa-arm-move 8s ease-in-out infinite;
}

.scn-free-agent .chair-back {
  position: absolute;
  bottom: 42%;
  left: 12%;
  width: 50px;
  height: 40px;
  background: linear-gradient(180deg, #3a281a 0%, #24170c 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}

@keyframes fa-page-left {
  0% { transform: perspective(200px) rotateY(-15deg); }
  50% { transform: perspective(200px) rotateY(-12deg) translateY(1px); }
  100% { transform: perspective(200px) rotateY(-15deg); }
}

@keyframes fa-page-right {
  0% { transform: perspective(200px) rotateY(15deg); }
  50% { transform: perspective(200px) rotateY(12deg) translateY(1px); }
  100% { transform: perspective(200px) rotateY(15deg); }
}

@keyframes fa-quill-sway {
  0%,100% { transform: rotate(20deg) translateX(0); }
  30% { transform: rotate(15deg) translateX(1px); }
  70% { transform: rotate(25deg) translateX(-1px); }
}

@keyframes fa-inkwell-glow {
  0% { opacity: 0.7; box-shadow: 0 0 4px 2px rgba(45,25,10,0.5); }
  50% { opacity: 1; box-shadow: 0 0 8px 4px rgba(45,25,10,0.8); }
  100% { opacity: 0.8; box-shadow: 0 0 5px 3px rgba(45,25,10,0.6); }
}

@keyframes fa-arm-move {
  0%,100% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(8deg) translateY(1px); }
  75% { transform: rotate(12deg) translateY(-1px); }
}

.scn-glaucon-on-justice-origin { background: linear-gradient(180deg, #d4c8a8 0%, #b8a88a 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, transparent 60%); }
.scn-glaucon-on-justice-origin .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c8a8 0%, #c8b898 100%); animation: gj1-wall 20s ease-in-out infinite alternate; }
.scn-glaucon-on-justice-origin .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 0 20% 0 0 / 0 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.2); }
.scn-glaucon-on-justice-origin .window { position:absolute; top:5%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #c8b898 70%); border: 8px solid #8a7a5a; border-radius: 4% 4% 40% 40% / 8% 8% 60% 60%; box-shadow: inset 0 0 40px 10px rgba(240,232,208,.4); animation: gj1-window 15s ease-in-out infinite alternate; }
.scn-glaucon-on-justice-origin .lightbeam { position:absolute; top:8%; left:38%; width:60px; height:200px; background: linear-gradient(180deg, rgba(240,232,208,.6) 0%, rgba(240,232,208,.1) 100%); transform: rotate(-8deg); filter: blur(12px); animation: gj1-beam 18s ease-in-out infinite alternate; }
.scn-glaucon-on-justice-origin .table { position:absolute; bottom:18%; left:50%; width:140px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: gj1-table 9s ease-in-out infinite; }
.scn-glaucon-on-justice-origin .figure-left { position:absolute; bottom:22%; left:32%; width:22px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gj1-fig-l 6s ease-in-out infinite; }
.scn-glaucon-on-justice-origin .figure-right { position:absolute; bottom:22%; right:32%; width:22px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gj1-fig-r 6s ease-in-out infinite; }
.scn-glaucon-on-justice-origin .handshake { position:absolute; bottom:27%; left:50%; width:30px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse, #8a7050 0%, #5a4a3a 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: gj1-hand 6s ease-in-out infinite; }
.scn-glaucon-on-justice-origin .scroll { position:absolute; bottom:12%; left:50%; width:16px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #d4c090 0%, #b8a070 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: gj1-scroll 12s ease-in-out infinite alternate; }
@keyframes gj1-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gj1-window { 0% { box-shadow: inset 0 0 30px 8px rgba(240,232,208,.3) } 50% { box-shadow: inset 0 0 60px 20px rgba(240,232,208,.6) } 100% { box-shadow: inset 0 0 40px 12px rgba(240,232,208,.4) } }
@keyframes gj1-beam { 0% { opacity:.6; transform: rotate(-10deg) } 50% { opacity:1; transform: rotate(-6deg) } 100% { opacity:.7; transform: rotate(-12deg) } }
@keyframes gj1-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes gj1-fig-l { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes gj1-fig-r { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes gj1-hand { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes gj1-scroll { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }

.scn-ring-of-gyges { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #1a1a3e 100%), radial-gradient(ellipse at 40% 20%, #3a3a5e 0%, transparent 60%); }
.scn-ring-of-gyges .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(10,10,20,.6) 100%); animation: rg1-bg 30s ease-in-out infinite alternate; }
.scn-ring-of-gyges .bg-mid { position:absolute; inset:20% 0 0 0; background: linear-gradient(180deg, rgba(40,40,70,.5) 0%, transparent 100%); }
.scn-ring-of-gyges .pedestal { position:absolute; bottom:0; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-ring-of-gyges .hand { position:absolute; bottom:40%; left:50%; width:28px; height:34px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #3a2a2a 100%); border-radius: 60% 60% 50% 50% / 70% 70% 40% 40%; transform-origin: bottom center; animation: rg1-hand 5s ease-in-out infinite; }
.scn-ring-of-gyges .ring { position:absolute; bottom:52%; left:50%; width:16px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #a09070 0%, #605040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(160,144,112,.5); animation: rg1-ring 5s ease-in-out infinite; }
.scn-ring-of-gyges .glow-ring { position:absolute; bottom:50%; left:50%; width:36px; height:36px; transform:translateX(-50%); background: radial-gradient(circle, rgba(160,144,112,.3) 0%, transparent 70%); border-radius: 50%; animation: rg1-glow 3s ease-in-out infinite alternate; }
.scn-ring-of-gyges .shadow-figure { position:absolute; bottom:20%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rg1-shadow 12s ease-in-out infinite alternate; }
.scn-ring-of-gyges .dust { position:absolute; top:30%; right:20%; width:6px; height:6px; background: rgba(200,190,170,.2); border-radius: 50%; filter: blur(2px); animation: rg1-dust 20s linear infinite; }
@keyframes rg1-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rg1-hand { 0% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-50%) rotate(4deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes rg1-ring { 0% { box-shadow: 0 0 18px 4px rgba(160,144,112,.4) } 50% { box-shadow: 0 0 36px 12px rgba(160,144,112,.7) } 100% { box-shadow: 0 0 22px 6px rgba(160,144,112,.5) } }
@keyframes rg1-glow { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.2) } 100% { opacity:.5; transform: translateX(-50%) scale(1.05) } }
@keyframes rg1-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.02) } 100% { transform: translateX(-4px) scale(0.98) } }
@keyframes rg1-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 50% { opacity:.6 } 100% { transform: translate(-40px, -60px) scale(0); opacity:0 } }

.scn-adeimantus-joins { background: linear-gradient(180deg, #d8d0b8 0%, #c0b898 40%, #a09070 100%), radial-gradient(ellipse at 50% 20%, #e8e0c8 0%, transparent 70%); }
.scn-adeimantus-joins .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8d0b8 0%, #c8c0a8 100%); }
.scn-adeimantus-joins .floor-tile { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a89878 0%, #908060 100%); border-radius: 0 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); animation: aj1-floor 25s ease-in-out infinite alternate; }
.scn-adeimantus-joins .pillar-left { position:absolute; bottom:20%; left:15%; width:20px; height:120px; background: linear-gradient(180deg, #d8d0b8 0%, #b0a890 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset -4px 0 8px rgba(0,0,0,.1), 0 0 20px rgba(0,0,0,.05); }
.scn-adeimantus-joins .pillar-right { position:absolute; bottom:20%; right:15%; width:20px; height:120px; background: linear-gradient(180deg, #d8d0b8 0%, #b0a890 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 4px 0 8px rgba(0,0,0,.1), 0 0 20px rgba(0,0,0,.05); }
.scn-adeimantus-joins .figure-seated { position:absolute; bottom:18%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj1-seated 8s ease-in-out infinite; }
.scn-adeimantus-joins .figure-standing { position:absolute; bottom:22%; right:30%; width:20px; height:52px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj1-standing 6s ease-in-out infinite; }
.scn-adeimantus-joins .lamp { position:absolute; top:20%; left:50%; width:18px; height:24px; transform:translateX(-50%); background: radial-gradient(ellipse, #e8c880 0%, #c8a060 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(232,200,128,.5), 0 0 60px 20px rgba(232,200,128,.2); animation: aj1-lamp 4s ease-in-out infinite alternate; }
.scn-adeimantus-joins .bookroll { position:absolute; bottom:14%; left:50%; width:14px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: aj1-roll 14s ease-in-out infinite alternate; }
.scn-adeimantus-joins .window-arch { position:absolute; top:2%; left:38%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 60%, #f0e8d0 0%, #c8b898 70%); border: 6px solid #a09070; border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 30px 8px rgba(240,232,208,.4); animation: aj1-arch 20s ease-in-out infinite alternate; }
@keyframes aj1-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes aj1-seated { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(3deg) translateY(-1px) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes aj1-standing { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) translateY(-2px) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aj1-lamp { 0% { box-shadow: 0 0 24px 8px rgba(232,200,128,.4), 0 0 50px 16px rgba(232,200,128,.2); opacity:.9 } 50% { box-shadow: 0 0 40px 14px rgba(232,200,128,.7), 0 0 80px 24px rgba(232,200,128,.3); opacity:1 } 100% { box-shadow: 0 0 28px 10px rgba(232,200,128,.5), 0 0 60px 18px rgba(232,200,128,.2); opacity:.92 } }
@keyframes aj1-roll { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(0.97) } }
@keyframes aj1-arch { 0% { box-shadow: inset 0 0 20px 6px rgba(240,232,208,.3) } 50% { box-shadow: inset 0 0 50px 16px rgba(240,232,208,.6) } 100% { box-shadow: inset 0 0 30px 10px rgba(240,232,208,.4) } }

.scn-adeimantus-on-rewards { background: linear-gradient(180deg, #d8d0b8 0%, #c0b090 40%, #a09070 100%), radial-gradient(ellipse at 50% 40%, #e0d8c0 0%, transparent 60%); }
.scn-adeimantus-on-rewards .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8e0c8 0%, #d0c8b0 100%); animation: ar1-sky 20s ease-in-out infinite alternate; }
.scn-adeimantus-on-rewards .horizon { position:absolute; bottom:40%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #a09070 20%, #a09070 80%, transparent 100%); }
.scn-adeimantus-on-rewards .path-virtue { position:absolute; bottom:10%; left:15%; width:40px; height:100px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(-8deg); transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: ar1-virtue 15s ease-in-out infinite alternate; }
.scn-adeimantus-on-rewards .path-vice { position:absolute; bottom:5%; right:15%; width:50px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(6deg); transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: ar1-vice 12s ease-in-out infinite alternate; }
.scn-adeimantus-on-rewards .figure-virtue { position:absolute; bottom:30%; left:20%; width:20px; height:44px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar1-fig-v 8s ease-in-out infinite; }
.scn-adeimantus-on-rewards .figure-vice { position:absolute; bottom:22%; right:18%; width:24px; height:40px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar1-fig-c 6s ease-in-out infinite; }
.scn-adeimantus-on-rewards .reward-glow { position:absolute; top:15%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(232,200,128,.5) 0%, rgba(232,200,128,.1) 60%, transparent 100%); border-radius: 50%; animation: ar1-glow 4s ease-in-out infinite alternate; }
.scn-adeimantus-on-rewards .thorn-bush { position:absolute; bottom:8%; left:32%; width:30px; height:24px; background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(2px); animation: ar1-thorn 20s ease-in-out infinite alternate; }
.scn-adeimantus-on-rewards .flower { position:absolute; bottom:12%; right:34%; width:8px; height:8px; background: radial-gradient(circle, #d86040 0%, #b04030 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(216,96,64,.3); animation: ar1-flower 8s ease-in-out infinite alternate; }
@keyframes ar1-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ar1-virtue { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-6deg) scaleY(1.03) } 100% { transform: rotate(-12deg) scaleY(0.97) } }
@keyframes ar1-vice { 0% { transform: rotate(4deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(6deg) scaleY(0.98) } }
@keyframes ar1-fig-v { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-2px) rotate(-3deg) } 50% { transform: translateX(4px) translateY(0) rotate(0) translateY(-1px) } 75% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ar1-fig-c { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 33% { transform: translateX(-4px) translateY(2px) rotate(-1deg) } 66% { transform: translateX(2px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes ar1-glow { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.15) } 100% { opacity:.5; transform: translateX(-50%) scale(1.05) } }
@keyframes ar1-thorn { 0% { filter: blur(1px) } 50% { filter: blur(3px) } 100% { filter: blur(2px) } }
@keyframes ar1-flower { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(0.95) } }

/* strict-definition — tense, dim interior study */
.scn-strict-definition {
  background: linear-gradient(180deg, #2a2126 0%, #1b1519 50%, #0e0a0d 100%), radial-gradient(ellipse at 30% 80%, #3a2a30 0%, transparent 70%);
}
.scn-strict-definition .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2126 0%, transparent 100%); animation: sd-wall 14s ease-in-out infinite alternate;
}
.scn-strict-definition .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #4a3530 0%, #2a1d1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); animation: sd-desk 10s ease-in-out infinite;
}
.scn-strict-definition .scroll {
  position: absolute; bottom: 20%; left: 38%; width: 28%; height: 6%; background: linear-gradient(135deg, #c9b896 0%, #a38b6a 50%, #7a6548 100%); border-radius: 6% 6% 2% 2%; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: sd-scroll 16s ease-in-out infinite alternate;
}
.scn-strict-definition .hand {
  position: absolute; bottom: 22%; left: 52%; width: 14%; height: 18%; background: linear-gradient(180deg, #d4b896 0%, #a07a5a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: sd-hand 5s ease-in-out infinite;
}
.scn-strict-definition .pointer {
  position: absolute; bottom: 28%; left: 54%; width: 1.2%; height: 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sd-pointer 5s ease-in-out infinite;
}
.scn-strict-definition .lamp {
  position: absolute; bottom: 48%; left: 10%; width: 8%; height: 14%; background: radial-gradient(circle at 50% 90%, #ffd080 0%, #c08030 50%, #4a2a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 6px #c08030, 0 0 60px 12px rgba(192,128,48,0.3); animation: sd-lamp 4s ease-in-out infinite alternate;
}
.scn-strict-definition .shadow-shape {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 40%, rgba(0,0,0,0.6) 60%, transparent 100%); filter: blur(6px); animation: sd-shadow 12s ease-in-out infinite alternate;
}
@keyframes sd-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sd-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sd-scroll { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(4deg); } }
@keyframes sd-hand { 0%,100% { transform: translate(0,0) rotate(2deg); } 25% { transform: translate(-2px,-1px) rotate(-1deg); } 50% { transform: translate(0,-1px) rotate(0deg); } 75% { transform: translate(2px,-1px) rotate(1deg); } }
@keyframes sd-pointer { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(4px,-2px) rotate(2deg); } }
@keyframes sd-lamp { 0% { box-shadow: 0 0 20px 4px #c08030, 0 0 40px 8px rgba(192,128,48,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 40px 10px #ffc060, 0 0 80px 20px rgba(255,192,96,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 5px #c08030, 0 0 50px 10px rgba(192,128,48,0.3); opacity: 0.95; } }
@keyframes sd-shadow { 0% { opacity: 0.4; transform: scaleX(0.95); } 50% { opacity: 0.6; transform: scaleX(1.05); } 100% { opacity: 0.5; transform: scaleX(1); } }

/* accurate-ruler — tense, dim interior, overhead view of ruler */
.scn-accurate-ruler {
  background: linear-gradient(180deg, #2a2624 0%, #1a1514 50%, #0a0706 100%), radial-gradient(ellipse at 50% 60%, #3a302a 0%, transparent 70%);
}
.scn-accurate-ruler .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; top: 50%; background: linear-gradient(180deg, #4a3e38 0%, #2a221e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-accurate-ruler .ruler-stick {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 3%; background: linear-gradient(90deg, #c8b088 0%, #e8d0a8 20%, #c8b088 40%, #a89070 60%, #c8b088 80%, #e8d0a8 100%); border-radius: 10% 10% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: ar-ruler 15s ease-in-out infinite alternate;
}
.scn-accurate-ruler .hand-point {
  position: absolute; bottom: 32%; left: 38%; width: 12%; height: 8%; background: linear-gradient(180deg, #d4b896 0%, #a07a5a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform-origin: bottom center; animation: ar-hand 6s ease-in-out infinite;
}
.scn-accurate-ruler .lamp-small {
  position: absolute; bottom: 58%; left: 65%; width: 10%; height: 16%; background: radial-gradient(circle at 50% 90%, #ffd080 0%, #c08030 50%, #2a1a0a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 24px 4px #c08030, 0 0 48px 10px rgba(192,128,48,0.3); animation: ar-lamp 3.5s ease-in-out infinite alternate;
}
.scn-accurate-ruler .pencil {
  position: absolute; bottom: 38%; left: 55%; width: 1.5%; height: 14%; background: linear-gradient(180deg, #c8a048 0%, #a08030 100%); border-radius: 10% 10% 50% 50%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ar-pencil 8s ease-in-out infinite alternate;
}
.scn-accurate-ruler .shadow-line {
  position: absolute; bottom: 34%; left: 20%; right: 20%; height: 4%; background: linear-gradient(90deg, transparent 10%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.5) 70%, transparent 90%); filter: blur(4px); animation: ar-shadow 9s ease-in-out infinite alternate;
}
@keyframes ar-ruler { 0%,100% { transform: translateX(0); } 50% { transform: translateX(8px); } }
@keyframes ar-hand { 0%,100% { transform: translate(0,0) rotate(2deg) scaleX(1); } 25% { transform: translate(3px, -1px) rotate(0deg) scaleX(0.95); } 50% { transform: translate(6px, 0) rotate(-2deg) scaleX(1); } 75% { transform: translate(3px, -1px) rotate(0deg) scaleX(0.95); } }
@keyframes ar-lamp { 0% { box-shadow: 0 0 18px 3px #c08030, 0 0 36px 8px rgba(192,128,48,0.2); opacity: 0.85; } 50% { box-shadow: 0 0 36px 8px #ffc060, 0 0 72px 16px rgba(255,192,96,0.4); opacity: 1; } 100% { box-shadow: 0 0 22px 4px #c08030, 0 0 44px 10px rgba(192,128,48,0.3); opacity: 0.9; } }
@keyframes ar-pencil { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } }
@keyframes ar-shadow { 0% { opacity: 0.5; transform: scaleX(0.9); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* no-design-to-injure — calm, dim interior, reading by candlelight */
.scn-no-design-to-injure {
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 50%, #140e0a 100%), radial-gradient(ellipse at 40% 70%, #4a382a 0%, transparent 70%);
}
.scn-no-design-to-injure .wall-soft {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2e24 0%, transparent 100%); animation: nd-wall 20s ease-in-out infinite alternate;
}
.scn-no-design-to-injure .chair {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 24%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: nd-chair 12s ease-in-out infinite;
}
.scn-no-design-to-injure .reader {
  position: absolute; bottom: 24%; left: 26%; width: 12%; height: 20%; background: linear-gradient(180deg, #c8a88a 0%, #8a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-reader 8s ease-in-out infinite;
}
.scn-no-design-to-injure .book {
  position: absolute; bottom: 22%; left: 34%; width: 12%; height: 6%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: nd-book 6s ease-in-out infinite alternate;
}
.scn-no-design-to-injure .candle {
  position: absolute; bottom: 40%; left: 18%; width: 4%; height: 14%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 50%, #a08040 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 16px 2px #e0c080; animation: nd-candle 3s ease-in-out infinite alternate;
}
.scn-no-design-to-injure .glow-ring {
  position: absolute; bottom: 42%; left: 16%; width: 12%; height: 12%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: nd-glow 5s ease-in-out infinite alternate;
}
@keyframes nd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes nd-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nd-reader { 0%,100% { transform: translate(0,0) rotate(1deg); } 25% { transform: translate(-1px,-1px) rotate(-1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(1px,-1px) rotate(1deg); } }
@keyframes nd-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes nd-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.95; } }
@keyframes nd-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(1.05); opacity: 0.7; } }

/* strict-sense — tense, dim interior, two figures facing */
.scn-strict-sense {
  background: linear-gradient(180deg, #1a121a 0%, #2a1a2a 50%, #0e0a0e 100%), radial-gradient(ellipse at 50% 70%, #3a223a 0%, transparent 70%);
}
.scn-strict-sense .corridor {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a121a 0%, transparent 100%); animation: ss-corridor 16s ease-in-out infinite alternate;
}
.scn-strict-sense .doorway {
  position: absolute; bottom: 10%; left: 30%; right: 30%; top: 20%; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: ss-doorway 20s ease-in-out infinite alternate;
}
.scn-strict-sense .figure-left {
  position: absolute; bottom: 15%; left: 22%; width: 14%; height: 28%; background: linear-gradient(180deg, #2a222a 0%, #0a060a 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figureL 7s ease-in-out infinite;
}
.scn-strict-sense .figure-right {
  position: absolute; bottom: 15%; right: 22%; width: 14%; height: 28%; background: linear-gradient(180deg, #2a222a 0%, #0a060a 100%); border-radius: 40% 50% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figureR 7s ease-in-out infinite reverse;
}
.scn-strict-sense .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-strict-sense .light-beam {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 40%; background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%); filter: blur(12px); transform: skewX(-8deg); animation: ss-beam 5s ease-in-out infinite alternate;
}
@keyframes ss-corridor { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ss-doorway { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes ss-figureL { 0%,100% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(2px,-2px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-2px) rotate(-1deg); } }
@keyframes ss-figureR { 0%,100% { transform: translate(0,0) rotate(1deg); } 25% { transform: translate(-2px,-2px) rotate(-1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(2px,-2px) rotate(1deg); } }
@keyframes ss-beam { 0% { opacity: 0.3; transform: skewX(-8deg) scaleX(1); } 50% { opacity: 0.6; transform: skewX(-5deg) scaleX(1.1); } 100% { opacity: 0.4; transform: skewX(-8deg) scaleX(1); } }

.scn-philosophers-should-rule {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5be 40%, #d4bfa0 100%), 
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-philosophers-should-rule .pillar-left {
  position: absolute; left: 10%; top: 0; width: 8%; height: 100%;
  background: linear-gradient(90deg, #d4bfa0, #c4b096, #d4bfa0);
  border-radius: 6px; box-shadow: 2px 0 10px rgba(0,0,0,0.1);
  animation: psr-pillar 12s ease-in-out infinite alternate;
}
.scn-philosophers-should-rule .pillar-right {
  position: absolute; right: 10%; top: 0; width: 8%; height: 100%;
  background: linear-gradient(90deg, #d4bfa0, #c4b096, #d4bfa0);
  border-radius: 6px; box-shadow: -2px 0 10px rgba(0,0,0,0.1);
  animation: psr-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-philosophers-should-rule .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #b8a88c, #cbb99e);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
}
.scn-philosophers-should-rule .figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psr-figure 8s ease-in-out infinite;
}
.scn-philosophers-should-rule .figure::after {
  content: ''; position: absolute; top: 20%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%) rotate(10deg);
  background: #3a3a4a; border-radius: 40% 50% 10% 10%;
  animation: psr-arm 8s ease-in-out infinite;
}
.scn-philosophers-should-rule .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.15); border-radius: 50%;
  animation: psr-shadow 8s ease-in-out infinite;
}
.scn-philosophers-should-rule .window-glare {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,248,220,0.4) 0%, transparent 70%);
  border-radius: 10% 10% 30% 30%; filter: blur(10px);
  animation: psr-glare 6s ease-in-out infinite alternate;
}
.scn-philosophers-should-rule .pattern-wall {
  position: absolute; top: 15%; left: 38%; width: 24%; height: 40%;
  background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(180,160,120,0.3) 8px, rgba(180,160,120,0.3) 9px);
  border-radius: 4px; opacity: 0.5;
  animation: psr-pattern 20s linear infinite;
}
@keyframes psr-pillar {
  0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); }
}
@keyframes psr-figure {
  0% { transform: translateX(-50%) rotate(-2deg); } 
  30% { transform: translateX(-48%) rotate(0deg); }
  60% { transform: translateX(-52%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes psr-arm {
  0% { transform: translateX(-50%) rotate(10deg); } 
  50% { transform: translateX(-40%) rotate(30deg); }
  100% { transform: translateX(-50%) rotate(10deg); }
}
@keyframes psr-shadow {
  0% { transform: translateX(0) scaleX(1); } 
  50% { transform: translateX(4px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes psr-glare {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes psr-pattern {
  0% { background-position: 0 0; } 100% { background-position: 100px 100px; }
}

.scn-adeimantus-interrupts {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 100%),
              radial-gradient(ellipse at 70% 80%, #6a6a8a 0%, transparent 70%);
}
.scn-adeimantus-interrupts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a1a2a, #2a2a3a);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-adeimantus-interrupts .figure-advance {
  position: absolute; bottom: 25%; left: 25%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #5a4a4a, #3a2a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  animation: ai-advance 3s ease-in-out infinite;
}
.scn-adeimantus-interrupts .figure-advance::after {
  content: ''; position: absolute; top: 25%; left: 60%; width: 14px; height: 20px;
  background: #5a4a4a; border-radius: 40% 50% 10% 10%;
  transform: rotate(-20deg);
  animation: ai-arm-adv 3s ease-in-out infinite;
}
.scn-adeimantus-interrupts .figure-retreat {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a5a4a, #2a3a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: skewX(5deg);
  animation: ai-retreat 3.5s ease-in-out infinite;
}
.scn-adeimantus-interrupts .figure-retreat::after {
  content: ''; position: absolute; top: 30%; left: 30%; width: 12px; height: 18px;
  background: #4a5a4a; border-radius: 50% 40% 10% 10%;
  transform: rotate(30deg);
  animation: ai-arm-ret 3.5s ease-in-out infinite;
}
.scn-adeimantus-interrupts .draughts-board {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a6a4a 25%, #d4b896 25%, #d4b896 50%, #8a6a4a 50%, #8a6a4a 75%, #d4b896 75%);
  background-size: 16px 16px;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-adeimantus-interrupts .piece {
  position: absolute; bottom: 30%; width: 12px; height: 12px;
  border-radius: 50%; background: radial-gradient(circle, #c8553d, #8a2a1a);
  animation: ai-piece 3s ease-in-out infinite alternate;
}
.scn-adeimantus-interrupts .piece-1 { left: 44%; }
.scn-adeimantus-interrupts .piece-2 { left: 54%; animation-delay: 0.5s; }
.scn-adeimantus-interrupts .shadow-split {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 50%, rgba(0,0,0,0.3) 70%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: ai-shadow 3s ease-in-out infinite;
}
@keyframes ai-advance {
  0% { transform: translateX(0) skewX(-5deg); }
  50% { transform: translateX(15px) skewX(-8deg); }
  100% { transform: translateX(0) skewX(-5deg); }
}
@keyframes ai-arm-adv {
  0% { transform: rotate(-20deg); } 50% { transform: rotate(-40deg); } 100% { transform: rotate(-20deg); }
}
@keyframes ai-retreat {
  0% { transform: translateX(0) skewX(5deg); }
  50% { transform: translateX(-10px) skewX(8deg); }
  100% { transform: translateX(0) skewX(5deg); }
}
@keyframes ai-arm-ret {
  0% { transform: rotate(30deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(30deg); }
}
@keyframes ai-piece {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0); }
}
@keyframes ai-shadow {
  0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; }
}

.scn-parable-of-ship {
  background: linear-gradient(180deg, #b8d4e8 0%, #8ab4d0 30%, #6a9ab8 100%),
              radial-gradient(ellipse at 50% 100%, #4a7a9a 0%, transparent 70%);
}
.scn-parable-of-ship .window-arch {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-parable-of-ship .horizon-sea {
  position: absolute; top: 35%; left: 32%; width: 36%; height: 35%;
  background: linear-gradient(180deg, #7ab4d0 0%, #4a8aae 100%);
  border-radius: 0 0 20% 20%;
}
.scn-parable-of-ship .ship {
  position: absolute; top: 55%; left: 48%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: pos-ship 8s ease-in-out infinite alternate;
}
.scn-parable-of-ship .sail-full {
  position: absolute; top: 45%; left: 48%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #d4c8a8 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: pos-sail 8s ease-in-out infinite alternate;
}
.scn-parable-of-ship .figure-gazing {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pos-figure 10s ease-in-out infinite;
}
.scn-parable-of-ship .curtain-left {
  position: absolute; top: 10%; left: 28%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #8a6a4a 0%, #b8966a 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: pos-curtain 12s ease-in-out infinite;
}
.scn-parable-of-ship .curtain-right {
  position: absolute; top: 10%; right: 28%; width: 8%; height: 60%;
  background: linear-gradient(-90deg, #8a6a4a 0%, #b8966a 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: pos-curtain 12s ease-in-out infinite reverse;
}
@keyframes pos-ship {
  0% { transform: translateX(-50%) rotate(-2deg); } 
  50% { transform: translateX(-48%) rotate(0deg); }
  100% { transform: translateX(-52%) rotate(2deg); }
}
@keyframes pos-sail {
  0% { transform: translateX(-50%) scaleY(1); } 
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(0.95); }
}
@keyframes pos-figure {
  0% { transform: translateX(-50%) translateY(0); } 
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pos-curtain {
  0% { width: 8%; } 50% { width: 10%; } 100% { width: 8%; }
}

.scn-corruption-of-philosopher {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 100%),
              radial-gradient(ellipse at 30% 70%, #3a3a5e 0%, transparent 70%);
}
.scn-corruption-of-philosopher .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-corruption-of-philosopher .figure-slumped {
  position: absolute; bottom: 28%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: cop-figure 6s ease-in-out infinite;
}
.scn-corruption-of-philosopher .figure-slumped::after {
  content: ''; position: absolute; top: 20%; left: 50%; width: 10px; height: 16px;
  background: #3a3a4a; border-radius: 50% 50% 10% 10%;
  transform: translateX(-50%) rotate(15deg);
  animation: cop-head 6s ease-in-out infinite;
}
.scn-corruption-of-philosopher .candle-wax {
  position: absolute; bottom: 33%; left: 55%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0, #d4c0a0);
  border-radius: 2px;
  animation: cop-candle 4s ease-in-out infinite;
}
.scn-corruption-of-philosopher .flame {
  position: absolute; bottom: 52%; left: 55.5%; width: 6px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd680 0%, #ffb040 60%, #d08020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 4px #ffb040, 0 0 32px 8px rgba(255,176,64,0.3);
  animation: cop-flame 1.5s ease-in-out infinite alternate;
}
.scn-corruption-of-philosopher .withered-plant {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: cop-plant 10s ease-in-out infinite;
}
.scn-corruption-of-philosopher .shadow-angular {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 30%, transparent 70%);
  filter: blur(3px);
  animation: cop-shadow 4s ease-in-out infinite alternate;
}
.scn-corruption-of-philosopher .book-pile {
  position: absolute; bottom: 18%; left: 58%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}
@keyframes cop-figure {
  0% { transform: rotate(-5deg) translateY(0); } 
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes cop-head {
  0% { transform: translateX(-50%) rotate(15deg); } 
  50% { transform: translateX(-50%) rotate(10deg); }
  100% { transform: translateX(-50%) rotate(15deg); }
}
@keyframes cop-candle {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); }
}
@keyframes cop-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(-3deg); } 
  30% { transform: translateX(-50%) scaleY(1.2) rotate(0deg); }
  60% { transform: translateX(-50%) scaleY(0.8) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1.1) rotate(-1deg); }
}
@keyframes cop-plant {
  0% { transform: rotate(-10deg) scaleY(1); } 
  50% { transform: rotate(-12deg) scaleY(0.95); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes cop-shadow {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; }
}

.scn-plato-account-of-pleasure {
  background: linear-gradient(180deg, #3a2e28 0%, #2a201a 60%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #4a3c32 0%, transparent 70%);
}
.scn-plato-account-of-pleasure .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2e28 0%, #2a201a 100%);
  animation: pa-wall 12s ease-in-out infinite alternate;
}
.scn-plato-account-of-pleasure .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 2px; box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-plato-account-of-pleasure .book {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #b8a080 0%, #8c6e54 60%, #60483a 100%);
  border-radius: 2px; transform: perspective(300px) rotateX(10deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pa-book 4s ease-in-out infinite alternate;
}
.scn-plato-account-of-pleasure .candle-stick {
  position: absolute; bottom: 18%; left: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(200,150,80,0.3);
}
.scn-plato-account-of-pleasure .candle-flame {
  position: absolute; bottom: 35%; left: 20%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, #a06020 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.6), 0 0 60px 20px rgba(200,100,40,0.3);
  animation: pa-flame 1.2s ease-in-out infinite alternate;
}
.scn-plato-account-of-pleasure .figure {
  position: absolute; bottom: 15%; right: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite alternate;
}
.scn-plato-account-of-pleasure .shadow {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: pa-shadow 6s ease-in-out infinite alternate;
}
@keyframes pa-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes pa-book { 0% { transform: perspective(300px) rotateX(10deg); } 50% { transform: perspective(300px) rotateX(6deg) translateY(-1px); } 100% { transform: perspective(300px) rotateX(10deg); } }
@keyframes pa-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) scaleX(0.9) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes pa-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg) scale(1.01); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pa-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.5; } 100% { opacity: 0.7; } }

.scn-number-729 {
  background: linear-gradient(135deg, #1e1824 0%, #2a2030 50%, #1e1824 100%),
              radial-gradient(ellipse at 50% 40%, #3a2c44 0%, transparent 70%);
}
.scn-number-729 .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,24,36,0.3) 0%, transparent 100%);
}
.scn-number-729 .cube-main {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 25%;
  transform: translateX(-50%) perspective(400px) rotateX(30deg) rotateY(-20deg);
  background: linear-gradient(135deg, #5a4a6e 0%, #3a2c44 50%, #2a1c34 100%);
  border: 2px solid #807090;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
  animation: n7-cube 8s ease-in-out infinite alternate;
}
.scn-number-729 .cube-face-front {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 25%;
  transform: translateX(-50%) perspective(400px) rotateX(30deg) rotateY(-20deg) translateZ(1px);
  background: linear-gradient(135deg, #6a5a7e 0%, #4a3a5e 100%);
  opacity: 0.7;
}
.scn-number-729 .cube-face-top {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 25%;
  transform: translateX(-50%) perspective(400px) rotateX(30deg) rotateY(-20deg) translateY(-50%) rotateX(90deg);
  background: linear-gradient(135deg, #8a7a9e 0%, #5a4a6e 100%);
  opacity: 0.5;
}
.scn-number-729 .king {
  position: absolute; bottom: 18%; left: 15%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 0 2px #806030; /* crown hint */
  animation: n7-king 6s ease-in-out infinite alternate;
}
.scn-number-729 .tyrant {
  position: absolute; bottom: 18%; right: 15%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 80% 100%, 20% 100%, 0% 20%); /* jagged silhouette */
  animation: n7-tyrant 6s ease-in-out infinite alternate-reverse;
}
.scn-number-729 .glow-aura {
  position: absolute; bottom: 20%; left: 50%; width: 30%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(180,160,220,0.15) 0%, transparent 70%);
  animation: n7-glow 4s ease-in-out infinite alternate;
}
@keyframes n7-cube { 0% { transform: translateX(-50%) perspective(400px) rotateX(30deg) rotateY(-20deg); } 50% { transform: translateX(-50%) perspective(400px) rotateX(32deg) rotateY(-18deg) scale(1.02); } 100% { transform: translateX(-50%) perspective(400px) rotateX(30deg) rotateY(-20deg); } }
@keyframes n7-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes n7-tyrant { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg) scale(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes n7-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-cube-729 {
  background: linear-gradient(135deg, #1a1a24 0%, #242430 50%, #1a1a24 100%),
              radial-gradient(ellipse at 50% 60%, #303040 0%, transparent 70%);
}
.scn-cube-729 .bg-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(80,80,100,0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80,80,100,0.1) 1px, transparent 1px);
  background-size: 30px 30px;
  animation: c7-grid 30s linear infinite;
}
.scn-cube-729 .cube-small {
  position: absolute; bottom: 25%; left: 20%; width: 15%; height: 15%;
  background: linear-gradient(135deg, #6a6a80 0%, #4a4a5e 100%);
  transform: perspective(400px) rotateX(20deg) rotateY(30deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: c7-cube-s 10s ease-in-out infinite alternate;
}
.scn-cube-729 .cube-large {
  position: absolute; bottom: 15%; right: 10%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #7a7a90 0%, #5a5a6e 100%);
  transform: perspective(400px) rotateX(20deg) rotateY(30deg);
  box-shadow: 0 12px 30px rgba(0,0,0,0.7);
  animation: c7-cube-l 10s ease-in-out infinite alternate-reverse;
}
.scn-cube-729 .diagonal-line {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 1px;
  background: linear-gradient(90deg, transparent, #a0a0b0 50%, transparent);
  transform: rotate(45deg);
  transform-origin: bottom left;
  animation: c7-line 6s ease-in-out infinite;
}
.scn-cube-729 .point-a {
  position: absolute; bottom: 22%; left: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0c0d0 0%, #808090 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(192,192,200,0.6);
  animation: c7-point 4s ease-in-out infinite alternate;
}
.scn-cube-729 .point-b {
  position: absolute; bottom: 12%; right: 12%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0c0d0 0%, #808090 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(192,192,200,0.6);
  animation: c7-point 4s ease-in-out infinite alternate-reverse;
}
.scn-cube-729 .axis-hint {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 1px;
  background: linear-gradient(90deg, transparent, #a0a0b0 20%, #a0a0b0 80%, transparent);
  animation: c7-axis 8s ease-in-out infinite;
}
@keyframes c7-grid { 0% { background-position: 0 0; } 100% { background-position: 30px 30px; } }
@keyframes c7-cube-s { 0% { transform: perspective(400px) rotateX(20deg) rotateY(30deg) scale(1); } 50% { transform: perspective(400px) rotateX(22deg) rotateY(32deg) scale(1.02); } 100% { transform: perspective(400px) rotateX(20deg) rotateY(30deg) scale(1); } }
@keyframes c7-cube-l { 0% { transform: perspective(400px) rotateX(20deg) rotateY(30deg) scale(1); } 50% { transform: perspective(400px) rotateX(18deg) rotateY(28deg) scale(0.98); } 100% { transform: perspective(400px) rotateX(20deg) rotateY(30deg) scale(1); } }
@keyframes c7-line { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.3; } }
@keyframes c7-point { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }
@keyframes c7-axis { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-pattern-in-heaven {
  background: linear-gradient(180deg, #1a1020 0%, #2a1c30 40%, #3a2844 70%, #2a1c30 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a5a 0%, transparent 60%);
}
.scn-pattern-in-heaven .bg-heaven {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 0%, #3a2844 0%, #1a1020 100%);
  animation: ph-heaven 12s ease-in-out infinite alternate;
}
.scn-pattern-in-heaven .star-layer {
  position: absolute; inset: 0;
  background-image: radial-gradient(1px 1px at 10% 20%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 30% 15%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 50% 10%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 70% 25%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 90% 12%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 20% 40%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 60% 35%, #f0e0c0 0%, transparent 100%),
                    radial-gradient(1px 1px at 80% 45%, #f0e0c0 0%, transparent 100%);
  background-size: 100% 100%;
  animation: ph-stars 30s linear infinite;
}
.scn-pattern-in-heaven .constellation {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  border: 1px solid rgba(240,200,150,0.3);
  border-radius: 50%;
  clip-path: polygon(30% 10%, 50% 30%, 70% 20%, 80% 50%, 60% 70%, 40% 60%, 20% 50%);
  background: radial-gradient(circle at 50% 50%, rgba(240,200,150,0.1) 0%, transparent 60%);
  animation: ph-const 20s linear infinite;
}
.scn-pattern-in-heaven .glow-core {
  position: absolute; top: 20%; left: 50%; width: 40%; height: 40%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240,200,150,0.2) 0%, transparent 70%);
  animation: ph-glow 8s ease-in-out infinite alternate;
}
.scn-pattern-in-heaven .figure-profile {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ph-figure 10s ease-in-out infinite alternate;
}
.scn-pattern-in-heaven .ground-line {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 1px;
  background: linear-gradient(90deg, transparent, #6a5a7e 30%, #6a5a7e 70%, transparent);
  animation: ph-ground 6s ease-in-out infinite;
}
.scn-pattern-in-heaven .floating-dust {
  position: absolute; top: 40%; left: 10%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(240,200,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ph-dust 14s ease-in-out infinite;
}
@keyframes ph-heaven { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ph-stars { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ph-const { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.02); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes ph-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes ph-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ph-ground { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes ph-dust { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(15px, -10px) scale(1.5); } 66% { transform: translate(5px, 5px) scale(0.8); } 100% { transform: translate(0, 0) scale(1); } }

/* simple-life */
.scn-simple-life { background: linear-gradient(180deg, #fbe9d2 0%, #e2c9a1 40%, #b5c8a0 70%, #7d9c6a 100%), radial-gradient(ellipse at 50% 30%, #fcedc0 0%, transparent 70%); }
.scn-simple-life .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f7e7c0 0%, #c8d8b0 60%, #a0bf90 100%); animation: sl-sky 12s ease-in-out infinite alternate; }
.scn-simple-life .field { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9bb87a 0%, #6d8f53 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 30px rgba(40,60,30,.4); animation: sl-field 20s ease-in-out infinite alternate; }
.scn-simple-life .house { position:absolute; bottom:28%; left:50%; width:100px; height:75px; transform:translateX(-50%); background: linear-gradient(180deg, #b57a5a 0%, #7a4f32 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 18px rgba(0,0,0,.35); animation: sl-house 8s ease-in-out infinite; }
.scn-simple-life .figure { position:absolute; bottom:24%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-figure 6s ease-in-out infinite; }
.scn-simple-life .sun { position:absolute; top:12%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffde7a 0%, #f5b43c 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(245,180,60,.3); animation: sl-sun 8s ease-in-out infinite alternate; }
.scn-simple-life .cloud-a { position:absolute; top:18%; left:10%; width:100px; height:25px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.15) 100%); border-radius:50%; filter: blur(8px); animation: sl-drift-a 40s linear infinite; }
.scn-simple-life .cloud-b { position:absolute; top:25%; right:15%; width:70px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.08) 100%); border-radius:50%; filter: blur(6px); animation: sl-drift-b 55s linear infinite reverse; }
@keyframes sl-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sl-field { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sl-house { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes sl-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes sl-sun { 0% { transform: scale(.95); box-shadow: 0 0 40px 20px rgba(245,180,60,.25) } 50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(245,180,60,.4) } 100% { transform: scale(.98); box-shadow: 0 0 50px 25px rgba(245,180,60,.3) } }
@keyframes sl-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes sl-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* moderation */
.scn-moderation { background: linear-gradient(180deg, #f8ecd0 0%, #dec8a0 50%, #c0a880 100%), radial-gradient(ellipse at 50% 50%, #ffeac0 0%, transparent 60%); }
.scn-moderation .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c4a8 0%, #bca888 100%); border-bottom: 4px solid #8c7a5a; }
.scn-moderation .table { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #8b6e4a 0%, #5c472e 100%); border-radius: 8px 8px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-moderation .cloth { position:absolute; bottom:30%; left:24%; right:24%; height:18%; background: linear-gradient(180deg, #faf5e8 0%, #ede3d0 100%); border-radius: 4px 4px 20px 20px; transform: skewX(-2deg); box-shadow: 0 4px 10px rgba(0,0,0,.15); animation: md-cloth 10s ease-in-out infinite alternate; }
.scn-moderation .bowl { position:absolute; bottom:38%; left:48%; width:80px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #c9754a 0%, #a0552a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 -4px 8px rgba(0,0,0,.2); animation: md-bowl 6s ease-in-out infinite; }
.scn-moderation .olive-1 { position:absolute; bottom:43%; left:46%; width:12px; height:16px; background: radial-gradient(ellipse, #3c2e1a 0%, #1a1208 100%); border-radius:50%; transform: rotate(20deg); animation: md-olive 4s ease-in-out infinite; }
.scn-moderation .olive-2 { position:absolute; bottom:42%; left:52%; width:10px; height:14px; background: radial-gradient(ellipse, #3c2e1a 0%, #1a1208 100%); border-radius:50%; transform: rotate(-10deg); animation: md-olive 4.5s ease-in-out infinite 0.5s; }
.scn-moderation .jug { position:absolute; bottom:35%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #b87a4e 0%, #7a502e 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: md-jug 8s ease-in-out infinite; }
@keyframes md-cloth { 0% { transform: skewX(-2deg) translateY(0) } 50% { transform: skewX(1deg) translateY(-1px) } 100% { transform: skewX(-2deg) translateY(0) } }
@keyframes md-bowl { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes md-olive { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-1px) } }
@keyframes md-jug { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

/* feverish-state */
.scn-feverish-state { background: linear-gradient(180deg, #1c1a2e 0%, #2a253f 50%, #3d3355 100%), radial-gradient(ellipse at 50% 60%, #2f2845 0%, transparent 70%); }
.scn-feverish-state .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2e2844 0%, #1f1b30 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-feverish-state .window { position:absolute; top:15%; left:55%; width:50px; height:60px; background: radial-gradient(ellipse, #b0c0d0 0%, #506080 60%, #182030 100%); border: 4px solid #4a3a55; border-radius: 4px; box-shadow: 0 0 30px 10px rgba(100,130,170,.2); animation: fs-window 12s ease-in-out infinite alternate; }
.scn-feverish-state .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2438 0%, #1c1830 100%); }
.scn-feverish-state .lamp { position:absolute; bottom:30%; left:70%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 8px 8px 4px 4px; }
.scn-feverish-state .lamp::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:16px; height:16px; background: radial-gradient(circle, #ffc060 0%, #d08020 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,192,96,.3); animation: fs-lamp 4s ease-in-out infinite alternate; }
.scn-feverish-state .bed { position:absolute; bottom:10%; left:20%; width:120px; height:50px; background: linear-gradient(180deg, #4a3a44 0%, #2a1e28 100%); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-feverish-state .figure { position:absolute; bottom:18%; left:28%; width:24px; height:30px; background: linear-gradient(180deg, #3a2a34 0%, #1e121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs-figure 5s ease-in-out infinite; }
.scn-feverish-state .blanket { position:absolute; bottom:12%; left:22%; width:80px; height:20px; background: linear-gradient(180deg, #5a4a54 0%, #3a2e38 100%); border-radius: 20px 20px 8px 8px; opacity:.8; animation: fs-blanket 8s ease-in-out infinite; }
@keyframes fs-window { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fs-lamp { 0% { transform: scale(.95) rotate(-2deg); box-shadow: 0 0 30px 15px rgba(255,192,96,.2) } 50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 60px 30px rgba(255,192,96,.4) } 100% { transform: scale(.98) rotate(-1deg); box-shadow: 0 0 40px 20px rgba(255,192,96,.3) } }
@keyframes fs-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes fs-blanket { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }

/* enlargement-borders */
.scn-enlargement-borders { background: linear-gradient(180deg, #1a1c28 0%, #23273b 50%, #1c1f30 100%), radial-gradient(ellipse at 50% 30%, #2a2f47 0%, transparent 70%); }
.scn-enlargement-borders .shelf { position:absolute; top:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #2e2b3e 0%, #1e1c2a 100%); border-bottom: 3px solid #4a4255; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); }
.scn-enlargement-borders .desk { position:absolute; bottom:15%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #3a2f3e 0%, #1e1a28 100%); border-radius: 8px 8px 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.4); }
.scn-enlargement-borders .map { position:absolute; bottom:28%; left:22%; width:120px; height:80px; background: linear-gradient(180deg, #d4c8a0 0%, #b0a078 40%, #8c7a56 100%); border-radius: 4px; transform: rotate(-3deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: eb-map 12s ease-in-out infinite alternate; }
.scn-enlargement-borders .map::before { content:''; position:absolute; inset:5px; border:1px dashed #5a4a2e; border-radius:2px; }
.scn-enlargement-borders .globe { position:absolute; bottom:35%; left:60%; width:40px; height:40px; background: radial-gradient(circle at 40% 30%, #5a7a8a 0%, #2a4a5a 60%, #1a2a3a 100%); border-radius:50%; box-shadow: 0 6px 20px rgba(0,0,0,.4), inset -8px -8px 20px rgba(0,0,0,.3); animation: eb-globe 15s linear infinite; }
.scn-enlargement-borders .candle { position:absolute; bottom:40%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #e0c0a0 0%, #b08050 100%); border-radius: 4px; }
.scn-enlargement-borders .candle-glow { position:absolute; bottom:54%; left:45.5%; width:20px; height:20px; background: radial-gradient(circle, #ffc060 0%, #d08020 40%, transparent 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 40px 20px rgba(255,192,96,.3); animation: eb-candle 3s ease-in-out infinite alternate; }
.scn-enlargement-borders .book-1 { position:absolute; bottom:20%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #6a4e40 0%, #3a2a20 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: eb-book 10s ease-in-out infinite alternate; }
.scn-enlargement-borders .book-2 { position:absolute; bottom:18%; left:38%; width:25px; height:35px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: eb-book 12s ease-in-out infinite alternate-reverse; }
@keyframes eb-map { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes eb-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes eb-candle { 0% { transform: scale(.95) rotate(-2deg); box-shadow: 0 0 30px 15px rgba(255,192,96,.2) } 50% { transform: scale(1.08) rotate(2deg); box-shadow: 0 0 60px 30px rgba(255,192,96,.4) } 100% { transform: scale(.97) rotate(-1deg); box-shadow: 0 0 40px 20px rgba(255,192,96,.3) } }
@keyframes eb-book { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }

/* honours-for-heroes */
.scn-honours-for-heroes {
  background:
    linear-gradient(180deg, #4a6f8a 0%, #7fa3c0 40%, #d2b48c 100%),
    radial-gradient(ellipse at 70% 20%, #fff7d6 0%, transparent 60%);
}
.scn-honours-for-heroes .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a7f9a 0%, #a3c4db 100%);
  animation: hh-sky 20s ease-in-out infinite alternate;
}
.scn-honours-for-heroes .sun {
  position: absolute; top: 18%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff1b0 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffcc66;
  animation: hh-sun 6s ease-in-out infinite alternate;
}
.scn-honours-for-heroes .rays {
  position: absolute; top: 18%; left: 70%;
  width: 200px; height: 16px;
  background: linear-gradient(90deg, rgba(255,204,102,.3) 0%, transparent 100%);
  filter: blur(4px);
  transform-origin: left center;
  animation: hh-rays 8s ease-in-out infinite;
}
.scn-honours-for-heroes .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a6b3a 0%, #2a4a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: hh-hills 14s ease-in-out infinite alternate;
}
.scn-honours-for-heroes .hero {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #b08050 0%, #7a5a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hh-hero 3s ease-in-out infinite;
}
.scn-honours-for-heroes .crown {
  position: absolute; bottom: 72%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 14px;
  background: linear-gradient(180deg, #f0c040 0%, #c08020 100%);
  border-radius: 30% 30% 10% 10%;
  clip-path: polygon(0% 100%, 20% 30%, 50% 0%, 80% 30%, 100% 100%, 70% 70%, 30% 70%);
  animation: hh-crown 4s ease-in-out infinite alternate;
}
.scn-honours-for-heroes .army {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40px;
  background: repeating-linear-gradient(90deg, #5a4030 0, #5a4030 8px, #4a3020 8px, #4a3020 16px);
  filter: blur(1px);
  opacity: 0.5;
  animation: hh-army 2s linear infinite;
}

@keyframes hh-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hh-sun {
  0% { transform: scale(0.95); opacity: 0.85; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.9; }
}
@keyframes hh-rays {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.2); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes hh-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes hh-hero {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-52%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes hh-crown {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.1); }
  100% { transform: translateX(-50%) rotate(-3deg) scale(0.95); }
}
@keyframes hh-army {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* treatment-of-enemies */
.scn-treatment-of-enemies {
  background:
    linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #c5a982 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e1 0%, transparent 70%);
}
.scn-treatment-of-enemies .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a3d4f0 0%, #d4eaf5 100%);
  animation: te-sky 15s ease-in-out infinite alternate;
}
.scn-treatment-of-enemies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 20% 80% 30% 70% / 30% 30% 70% 70%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: te-ground 12s ease-in-out infinite alternate;
}
.scn-treatment-of-enemies .olive {
  position: absolute; bottom: 35%; left: 30%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a6b3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: te-olive 8s ease-in-out infinite;
}
.scn-treatment-of-enemies .figure-offer {
  position: absolute; bottom: 30%; left: 20%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: te-offer 6s ease-in-out infinite;
}
.scn-treatment-of-enemies .figure-seated {
  position: absolute; bottom: 28%; left: 55%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #705030 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: te-seated 5s ease-in-out infinite;
}
.scn-treatment-of-enemies .column {
  position: absolute; bottom: 30%; left: 15%; right: 70%; height: 40%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 15px 20px rgba(0,0,0,.2);
  animation: te-column 20s ease-in-out infinite alternate;
}

@keyframes te-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes te-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.03); }
  100% { transform: translateY(3px) scaleY(0.97); }
}
@keyframes te-olive {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(0.95); }
}
@keyframes te-offer {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(10deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes te-seated {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-4px) rotate(5deg); }
  100% { transform: scaleX(-1) translateY(2px) rotate(-5deg); }
}
@keyframes te-column {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-10px); }
  100% { transform: scaleY(0.98) translateY(5px); }
}

/* third-wave */
.scn-third-wave {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 30%, #8a9aaa 60%, #b0c0d0 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%);
}
.scn-third-wave .wall {
  position: absolute; inset: 20% 10% 0 10%;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,.5);
  animation: tw-wall 10s ease-in-out infinite alternate;
}
.scn-third-wave .window {
  position: absolute; top: 25%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #fff8e0 0%, #ffe8a0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 20px #ffe8a0;
  animation: tw-window 4s ease-in-out infinite alternate;
}
.scn-third-wave .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: tw-floor 12s ease-in-out infinite alternate;
}
.scn-third-wave .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: tw-table 3s ease-in-out infinite;
}
.scn-third-wave .figure-argue1 {
  position: absolute; bottom: 10%; left: 25%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: tw-argue1 2s ease-in-out infinite;
}
.scn-third-wave .figure-argue2 {
  position: absolute; bottom: 10%; left: 55%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tw-argue2 2.5s ease-in-out infinite;
}
.scn-third-wave .shadow {
  position: absolute; bottom: 8%; left: 25%; right: 55%; height: 20px;
  background: rgba(0,0,0,.3);
  filter: blur(6px);
  border-radius: 50%;
  animation: tw-shadow 3s ease-in-out infinite;
}

@keyframes tw-wall {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-5px); }
  100% { transform: scaleX(0.98) translateY(3px); }
}
@keyframes tw-window {
  0% { opacity: 0.8; box-shadow: 0 0 40px 10px #ffe8a0; }
  50% { opacity: 1; box-shadow: 0 0 80px 30px #ffe8a0; }
  100% { opacity: 0.7; box-shadow: 0 0 50px 15px #ffe8a0; }
}
@keyframes tw-floor {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(3px) scaleY(1.02); }
  100% { transform: translateY(-3px) scaleY(0.98); }
}
@keyframes tw-table {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes tw-argue1 {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes tw-argue2 {
  0% { transform: scaleX(-1) rotate(0deg); }
  25% { transform: scaleX(-1) rotate(-15deg); }
  50% { transform: scaleX(-1) rotate(10deg); }
  75% { transform: scaleX(-1) rotate(-10deg); }
  100% { transform: scaleX(-1) rotate(0deg); }
}
@keyframes tw-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.8); opacity: 0.2; }
}

/* ideal-not-worse-for-impracticable */
.scn-ideal-not-worse-for-impracticable {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, #6a7a8a 100%),
    radial-gradient(ellipse at 40% 50%, #fff8e0 0%, transparent 60%);
}
.scn-ideal-not-worse-for-impracticable .window {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 40%;
  background: linear-gradient(180deg, #fff4cc 0%, #ffddaa 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 80px 30px #ffddaa;
  animation: in-window 8s ease-in-out infinite alternate;
}
.scn-ideal-not-worse-for-impracticable .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: in-desk 10s ease-in-out infinite alternate;
}
.scn-ideal-not-worse-for-impracticable .lamp {
  position: absolute; bottom: 30%; left: 20%;
  width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 20%, #f0c060 0%, #b08030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,.4);
  animation: in-lamp 5s ease-in-out infinite alternate;
}
.scn-ideal-not-worse-for-impracticable .books {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 12px;
  background: repeating-linear-gradient(90deg, #6a4a3a 0, #6a4a3a 12px, #5a3a2a 12px, #5a3a2a 24px, #8a5a4a 24px, #8a5a4a 36px);
  border-radius: 4px;
  animation: in-books 15s ease-in-out infinite;
}
.scn-ideal-not-worse-for-impracticable .figure-write {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 30% 30%;
  clip-path: polygon(0% 50%, 20% 0%, 80% 0%, 100% 50%, 100% 100%, 0% 100%);
  transform: scaleX(-1);
  animation: in-figure 6s ease-in-out infinite;
}
.scn-ideal-not-worse-for-impracticable .ray {
  position: absolute; top: 20%; left: 35%; right: 35%; height: 100%;
  background: linear-gradient(180deg, rgba(255,253,220,.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: in-ray 12s linear infinite alternate;
}

@keyframes in-window {
  0% { opacity: 0.7; box-shadow: 0 0 50px 15px #ffddaa; }
  50% { opacity: 1; box-shadow: 0 0 100px 50px #ffddaa; }
  100% { opacity: 0.6; box-shadow: 0 0 60px 20px #ffddaa; }
}
@keyframes in-desk {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(3px) scaleY(0.98); }
}
@keyframes in-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes in-books {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.05); }
  100% { transform: translateX(-50%) scaleX(0.95); }
}
@keyframes in-figure {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  25% { transform: scaleX(-1) translateY(-5px) rotate(2deg); }
  50% { transform: scaleX(-1) translateY(0) rotate(-2deg); }
  75% { transform: scaleX(-1) translateY(-3px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes in-ray {
  0% { transform: translateX(-10px) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.2); }
  100% { transform: translateX(-10px) scaleX(0.8); }
}

/* fiction-of-original-legislator */
.scn-fiction-of-original-legislator { background: linear-gradient(180deg, #1a1410 0%, #2a201a 30%, #1f1813 70%, #120d0a 100%), linear-gradient(90deg, rgba(80,60,40,.15) 0%, transparent 50%, rgba(80,60,40,.15) 100%); }
.scn-fiction-of-original-legislator .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a241e 0%, #1e1814 100%); }
.scn-fiction-of-original-legislator .desk { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: fo-desk 12s ease-in-out infinite alternate; }
.scn-fiction-of-original-legislator .scroll { position:absolute; bottom:22%; left:35%; width:12%; height:4%; background: linear-gradient(90deg, #d4be8a 0%, #e0cca0 50%, #d4be8a 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fo-scroll 6s ease-in-out infinite; }
.scn-fiction-of-original-legislator .candle { position:absolute; bottom:24%; left:45%; width:1.5%; height:9%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 60%, #8a6a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-fiction-of-original-legislator .candle-glow { position:absolute; bottom:31%; left:45%; width:3%; height:5%; background: radial-gradient(circle, rgba(255,200,100,.9) 0%, rgba(255,180,60,.3) 60%, transparent 100%); border-radius: 50%; animation: fo-glow 4s ease-in-out infinite alternate; }
.scn-fiction-of-original-legislator .figure { position:absolute; bottom:18%; left:25%; width:6%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fo-figure 8s ease-in-out infinite; }
.scn-fiction-of-original-legislator .bookshelf { position:absolute; bottom:8%; right:10%; width:20%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-fiction-of-original-legislator .book-row-1, .scn-fiction-of-original-legislator .book-row-2 { position:absolute; right:11%; width:18%; height:3%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, #4a3a2a 4px, #4a3a2a 8px, #6a5a4a 8px, #6a5a4a 12px); border-radius: 1px; box-shadow: 0 1px 3px rgba(0,0,0,.3); animation: fo-books 15s linear infinite; }
.scn-fiction-of-original-legislator .book-row-1 { bottom:45%; height:4%; }
.scn-fiction-of-original-legislator .book-row-2 { bottom:38%; height:3%; animation-delay: -7.5s; }
@keyframes fo-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes fo-scroll { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes fo-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes fo-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(1deg); } }
@keyframes fo-books { 0% { background-position: 0 0; } 100% { background-position: 24px 0; } }

/* progress-exception */
.scn-progress-exception { background: linear-gradient(180deg, #1a1814 0%, #24201a 30%, #1e1a16 70%, #14100c 100%), radial-gradient(ellipse at 50% 80%, rgba(120,90,60,.15) 0%, transparent 60%); }
.scn-progress-exception .bg-study { position:absolute; inset:0; background: linear-gradient(135deg, #221e18 0%, #16120e 100%); }
.scn-progress-exception .table { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #3a3028 0%, #2a201a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: pe-table 14s ease-in-out infinite alternate; }
.scn-progress-exception .book-open { position:absolute; bottom:20%; left:25%; width:20%; height:14%; background: linear-gradient(180deg, #e8dcc4 0%, #d4c8b0 50%, #c0b4a0 100%); border-radius: 2% 2% 8% 8% / 8% 8% 4% 4%; transform: perspective(300px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pe-book 9s ease-in-out infinite; }
.scn-progress-exception .globe { position:absolute; bottom:22%; right:20%; width:12%; height:16%; background: radial-gradient(circle at 40% 40%, #6a8a6a 0%, #4a6a4a 60%, #2a4a2a 100%); border-radius: 50%; box-shadow: -4px 4px 12px rgba(0,0,0,.5); animation: pe-globe 20s linear infinite; }
.scn-progress-exception .candle { position:absolute; bottom:22%; left:15%; width:1.2%; height:10%; background: linear-gradient(180deg, #e8c88a 0%, #c8a86a 60%, #8a6a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-progress-exception .candle-glow { position:absolute; bottom:30%; left:15%; width:2.5%; height:4%; background: radial-gradient(circle, rgba(255,200,80,.9) 0%, rgba(255,180,40,.3) 60%, transparent 100%); border-radius: 50%; animation: pe-glow 3.5s ease-in-out infinite alternate; }
.scn-progress-exception .figure { position:absolute; bottom:15%; left:30%; width:7%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure 10s ease-in-out infinite; }
.scn-progress-exception .hourglass { position:absolute; bottom:18%; right:38%; width:6%; height:20%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #887868 100%); border-radius: 40% 40% 40% 40% / 30% 30% 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 70% 40%, 80% 100%, 20% 100%, 30% 40%); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pe-hourglass 12s ease-in-out infinite; }
@keyframes pe-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes pe-book { 0% { transform: perspective(300px) rotateX(10deg) translateY(0); } 50% { transform: perspective(300px) rotateX(8deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(12deg) translateY(0); } }
@keyframes pe-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pe-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.8); } }
@keyframes pe-figure { 0% { transform: rotate(0deg) translateX(0); } 33% { transform: rotate(2deg) translateX(3px); } 66% { transform: rotate(-1deg) translateX(-2px); } 100% { transform: rotate(1deg) translateX(1px); } }
@keyframes pe-hourglass { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(0.95) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }

/* optimism-and-pessimism */
.scn-optimism-and-pessimism { background: linear-gradient(180deg, #1e1a16 0%, #2a241e 30%, #1f1a14 70%, #120e0a 100%), radial-gradient(ellipse at 50% 20%, rgba(100,80,50,.1) 0%, transparent 50%); }
.scn-optimism-and-pessimism .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1612 0%, #0e0a08 100%); }
.scn-optimism-and-pessimism .pillar { position:absolute; bottom:0; left:50%; width:8%; height:100%; background: linear-gradient(90deg, #3a3028 0%, #4a3a2a 30%, #3a2a1a 70%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: op-pillar 20s ease-in-out infinite alternate; }
.scn-optimism-and-pessimism .figure-left, .scn-optimism-and-pessimism .figure-right { position:absolute; bottom:5%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-optimism-and-pessimism .figure-left { left:28%; animation: op-fig-l 8s ease-in-out infinite; }
.scn-optimism-and-pessimism .figure-right { right:28%; animation: op-fig-r 8s ease-in-out infinite; }
.scn-optimism-and-pessimism .lamp { position:absolute; top:20%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #d4b86a 0%, #a89050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px rgba(200,180,100,.2); }
.scn-optimism-and-pessimism .lamp-glow { position:absolute; top:18%; left:46%; width:8%; height:12%; background: radial-gradient(circle, rgba(255,220,120,.8) 0%, rgba(200,170,80,.2) 50%, transparent 100%); border-radius: 50%; animation: op-glow 4s ease-in-out infinite alternate; }
.scn-optimism-and-pessimism .shadow { position:absolute; bottom:0; left:25%; right:25%; height:8%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; animation: op-shadow 10s ease-in-out infinite; }
@keyframes op-pillar { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes op-fig-l { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(4px); } 75% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes op-fig-r { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-4px); } 75% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes op-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes op-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }

/* narrow-view */
.scn-narrow-view { background: linear-gradient(180deg, #0a0806 0%, #14100c 30%, #0e0a08 70%, #060404 100%), linear-gradient(90deg, transparent 0%, rgba(30,20,10,.3) 50%, transparent 100%); }
.scn-narrow-view .bg-tunnel { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #1a1410 0%, #0a0806 100%); }
.scn-narrow-view .arch { position:absolute; bottom:0; left:20%; right:20%; top:0; border: 3% solid #2a1a0a; border-bottom: none; border-radius: 30% 30% 0 0 / 40% 40% 0 0; background: transparent; box-shadow: inset 0 20px 40px rgba(0,0,0,.8); animation: nv-arch 18s ease-in-out infinite alternate; }
.scn-narrow-view .figure { position:absolute; bottom:8%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nv-figure 12s ease-in-out infinite; }
.scn-narrow-view .far-light { position:absolute; bottom:45%; left:48%; width:4%; height:4%; background: radial-gradient(circle, rgba(255,220,150,.9) 0%, rgba(255,200,100,.2) 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,100,.3); animation: nv-far 8s ease-in-out infinite alternate; }
.scn-narrow-view .book { position:absolute; bottom:12%; left:44%; width:6%; height:8%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 4px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: nv-book 6s ease-in-out infinite; }
.scn-narrow-view .candle { position:absolute; bottom:18%; left:46%; width:1.2%; height:10%; background: linear-gradient(180deg, #e8c88a 0%, #c8a86a 60%, #8a6a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-narrow-view .candle-glow { position:absolute; bottom:26%; left:45.5%; width:3%; height:5%; background: radial-gradient(circle, rgba(255,200,80,.9) 0%, rgba(255,180,40,.2) 60%, transparent 100%); border-radius: 50%; animation: nv-glow 4s ease-in-out infinite alternate; }
@keyframes nv-arch { 0% { border-color: #2a1a0a; transform: scaleY(1); } 50% { border-color: #3a2a1a; transform: scaleY(0.98); } 100% { border-color: #2a1a0a; transform: scaleY(1); } }
@keyframes nv-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nv-far { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes nv-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes nv-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* justice-enlarged */
.scn-justice-enlarged {
  background: linear-gradient(180deg, #2c1f14 0%, #1c1410 50%, #12100e 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1c 0%, transparent 70%);
}
.scn-justice-enlarged .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2f241c 0%, #1e1814 100%);
  animation: je-wall 15s ease-in-out infinite alternate;
}
.scn-justice-enlarged .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(0deg, #1c1810 0%, #241e18 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-justice-enlarged .window-arch {
  position: absolute; bottom: 35%; left: 50%; width: 140px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #2c1f14 30%, #1a1410 100%);
  border-radius: 70px 70px 0 0 / 100px 100px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 60px rgba(60,40,20,.3);
  animation: je-arch 12s ease-in-out infinite alternate;
}
.scn-justice-enlarged .figure-socrates {
  position: absolute; bottom: 30%; left: 38%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: je-figure 6s ease-in-out infinite alternate;
}
.scn-justice-enlarged .orb-justice {
  position: absolute; bottom: 40%; left: 55%;
  width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 35%, #c8a880 0%, #9c7c5a 60%, #4a3420 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(156,124,90,.5), 0 0 80px 24px rgba(156,124,90,.2);
  animation: je-orb 4s ease-in-out infinite alternate;
}
.scn-justice-enlarged .table {
  position: absolute; bottom: 24%; left: 32%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #3a2a20 0%, #2c1f14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-justice-enlarged .scroll {
  position: absolute; bottom: 28%; left: 37%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #b8a07a 0%, #8a7050 100%);
  border-radius: 4px 4px 20% 20%;
  transform: rotate(-12deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: je-scroll 8s ease-in-out infinite alternate;
}
.scn-justice-enlarged .glow-beam {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, rgba(200,168,128,.08) 0%, transparent 100%);
  filter: blur(10px);
  animation: je-beam 6s ease-in-out infinite alternate;
}
@keyframes je-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes je-arch { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(.98) } }
@keyframes je-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes je-orb { 0% { box-shadow: 0 0 30px 8px rgba(156,124,90,.4), 0 0 60px 16px rgba(156,124,90,.15); opacity: .8 } 50% { box-shadow: 0 0 50px 16px rgba(200,168,128,.6), 0 0 100px 30px rgba(200,168,128,.3); opacity: 1 } 100% { box-shadow: 0 0 35px 10px rgba(156,124,90,.45), 0 0 70px 20px rgba(156,124,90,.2); opacity: .85 } }
@keyframes je-scroll { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-1px) } 100% { transform: rotate(-14deg) translateY(0) } }
@keyframes je-beam { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }

/* remainder-of-republic */
.scn-remainder-of-republic {
  background: linear-gradient(180deg, #1e1410 0%, #16100c 50%, #0e0a08 100%),
              radial-gradient(ellipse at 30% 70%, #2a1e18 0%, transparent 60%);
}
.scn-remainder-of-republic .bg-shelf {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #241c16 0%, #1a1410 100%);
  animation: rr-shelf 20s ease-in-out infinite alternate;
}
.scn-remainder-of-republic .chair {
  position: absolute; bottom: 24%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #2c1f14 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: rr-chair 8s ease-in-out infinite alternate;
}
.scn-remainder-of-republic .figure-reader {
  position: absolute; bottom: 26%; left: 23%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-reader 5s ease-in-out infinite alternate;
}
.scn-remainder-of-republic .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a4e36 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,100,.3);
}
.scn-remainder-of-republic .light-cone {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,100,.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: rr-cone 3s ease-in-out infinite alternate;
}
.scn-remainder-of-republic .desk {
  position: absolute; bottom: 20%; left: 15%; width: 100px; height: 10px;
  background: linear-gradient(180deg, #3a2a1e 0%, #2c1f14 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-remainder-of-republic .open-scroll {
  position: absolute; bottom: 24%; left: 22%; width: 36px; height: 24px;
  background: linear-gradient(180deg, #b8a07a 0%, #8a7050 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: rotate(-6deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: rr-scroll 10s ease-in-out infinite alternate;
}
.scn-remainder-of-republic .book-stack {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: rr-stack 14s ease-in-out infinite alternate;
}
@keyframes rr-shelf { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rr-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rr-reader { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rr-cone { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes rr-scroll { 0% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(-4deg) scaleY(1.02) } 100% { transform: rotate(-8deg) scaleY(.98) } }
@keyframes rr-stack { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }

/* order-of-ethics-and-politics */
.scn-order-of-ethics-and-politics {
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 40%, #0c0a08 100%),
              radial-gradient(ellipse at 50% 20%, #2a1e14 0%, transparent 70%);
}
.scn-order-of-ethics-and-politics .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0c0a08 100%);
  animation: op-bg 20s ease-in-out infinite alternate;
}
.scn-order-of-ethics-and-politics .pillar-left {
  position: absolute; top: 0; bottom: 15%; left: 20%; width: 30px;
  background: linear-gradient(90deg, #3a2a1e 0%, #2c1f14 50%, #1a1410 100%);
  border-radius: 8px;
  box-shadow: 8px 0 16px rgba(0,0,0,.5);
  animation: op-pillar 10s ease-in-out infinite alternate;
}
.scn-order-of-ethics-and-politics .pillar-right {
  position: absolute; top: 0; bottom: 15%; right: 20%; width: 30px;
  background: linear-gradient(90deg, #1a1410 0%, #2c1f14 50%, #3a2a1e 100%);
  border-radius: 8px;
  box-shadow: -8px 0 16px rgba(0,0,0,.5);
  animation: op-pillar 10s ease-in-out infinite alternate-reverse;
}
.scn-order-of-ethics-and-politics .state-figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2c1f14 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: op-state 6s ease-in-out infinite alternate;
}
.scn-order-of-ethics-and-politics .individual-figure {
  position: absolute; bottom: 16%; left: 50%; width: 22px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: op-individual 8s ease-in-out infinite alternate;
}
.scn-order-of-ethics-and-politics .step-floor {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(0deg, #1c1410 0%, #120e0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7);
}
.scn-order-of-ethics-and-politics .light-column {
  position: absolute; top: 0; bottom: 0; left: 50%; width: 4px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,168,128,.2) 0%, transparent 60%, rgba(200,168,128,.05) 100%);
  filter: blur(6px);
  animation: op-light 5s ease-in-out infinite alternate;
}
.scn-order-of-ethics-and-politics .shadow-split {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: op-shadow 12s ease-in-out infinite alternate;
}
@keyframes op-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes op-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes op-state { 0% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.01) } 100% { transform: translateX(-50%) translateY(0) scale(1) } }
@keyframes op-individual { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(2deg) } }
@keyframes op-light { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes op-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

/* confusion-of-individual-and-state */
.scn-confusion-of-individual-and-state {
  background: linear-gradient(180deg, #1c1410 0%, #140e0a 50%, #0c0806 100%),
              radial-gradient(ellipse at 50% 50%, #2a1c14 0%, transparent 70%);
}
.scn-confusion-of-individual-and-state .bg-mist {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(60,40,20,.08) 0%, transparent 100%);
  filter: blur(20px);
  animation: ci-mist 18s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .figure-ego {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2c1f14 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .9;
  animation: ci-ego 10s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .figure-polis {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1c 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .9;
  animation: ci-polis 10s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .overlap-haze {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,168,128,.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: ci-haze 6s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .glow-ring {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(200,168,128,.2);
  border-radius: 50%;
  box-shadow: 0 0 30px 4px rgba(200,168,128,.1);
  animation: ci-ring 8s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .shift-shadow {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(0deg, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: ci-shadow 12s ease-in-out infinite alternate;
}
.scn-confusion-of-individual-and-state .blur-spot {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, rgba(200,168,128,.08) 0%, transparent 100%);
  filter: blur(15px);
  animation: ci-blur 14s ease-in-out infinite alternate;
}
@keyframes ci-mist { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes ci-ego { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ci-polis { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ci-haze { 0% { opacity: .3; transform: translateX(-50%) scale(1) } 50% { opacity: .6; transform: translateX(-50%) scale(1.2) } 100% { opacity: .4; transform: translateX(-50%) scale(.9) } }
@keyframes ci-ring { 0% { transform: translate(-50%, -50%) scale(1); border-width: 2px; opacity: .6 } 50% { transform: translate(-50%, -50%) scale(1.1); border-width: 1px; opacity: .3 } 100% { transform: translate(-50%, -50%) scale(1); border-width: 2px; opacity: .6 } }
@keyframes ci-shadow { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes ci-blur { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }

/* modern-objections-to-community */
.scn-modern-objections-to-community {
  background: linear-gradient(180deg, #2a1f14 0%, #1a1410 100%), radial-gradient(ellipse at 50% 20%, #3a2e22 0%, transparent 60%);
}
.scn-modern-objections-to-community .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1f14 0%, #1f1812 100%); z-index: 0;
}
.scn-modern-objections-to-community .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3522 0%, #2a1b0c 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  z-index: 1; animation: moc-desk 12s ease-in-out infinite alternate;
}
.scn-modern-objections-to-community .lamp-glow {
  position: absolute; bottom: 38%; left: 40%; width: 60px; height: 80px;
  background: radial-gradient(circle at bottom, #f0c060 0%, #c08030 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: moc-lamp 4s ease-in-out infinite alternate; z-index: 3;
}
.scn-modern-objections-to-community .paper {
  position: absolute; bottom: 28%; left: 45%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-2deg); z-index: 4; animation: moc-paper 20s ease-in-out infinite alternate;
}
.scn-modern-objections-to-community .hand {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center; z-index: 5;
  animation: moc-hand 3s ease-in-out infinite;
}
.scn-modern-objections-to-community .inkwell {
  position: absolute; bottom: 30%; left: 38%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1f14 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.8); z-index: 4;
}
.scn-modern-objections-to-community .quill {
  position: absolute; bottom: 32%; left: 42%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 100%);
  border-radius: 50% 0 0 50%; transform: rotate(30deg);
  transform-origin: right center; z-index: 5;
  animation: moc-quill 2s ease-in-out infinite alternate;
}
@keyframes moc-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes moc-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.97); }
}
@keyframes moc-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1.5deg) translateY(-1px); }
  100% { transform: rotate(-2.5deg) translateY(0); }
}
@keyframes moc-hand {
  0% { transform: translate(0,0) rotate(-5deg); }
  30% { transform: translate(2px, -3px) rotate(2deg); }
  60% { transform: translate(4px, -1px) rotate(-3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes moc-quill {
  0% { transform: rotate(30deg) translateX(0); }
  100% { transform: rotate(25deg) translateX(3px); }
}

/* ancient-legislators */
.scn-ancient-legislators {
  background: linear-gradient(180deg, #1a1a24 0%, #2c2a38 40%, #1e1c28 100%), radial-gradient(ellipse at 50% 0%, #3a3848 0%, transparent 60%);
}
.scn-ancient-legislators .bg-colonnade {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #2a2834 0px, #2a2834 12px, transparent 12px, transparent 20px);
  opacity: 0.4; z-index: 0;
}
.scn-ancient-legislators .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  z-index: 1; animation: al-table 15s ease-in-out infinite alternate;
}
.scn-ancient-legislators .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1620 0%, #0d0b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; z-index: 2;
  animation: al-figure-l 8s ease-in-out infinite;
}
.scn-ancient-legislators .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1620 0%, #0d0b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; z-index: 2;
  animation: al-figure-r 8s ease-in-out infinite 2s;
}
.scn-ancient-legislators .scroll {
  position: absolute; bottom: 28%; left: 48%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #c8b898 0%, #a08a70 100%);
  border-radius: 40% / 80%; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  z-index: 3; animation: al-scroll 25s ease-in-out infinite alternate;
}
.scn-ancient-legislators .torch-glow {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(circle at bottom, #e08030 0%, #c06020 40%, transparent 70%);
  border-radius: 50%; filter: blur(12px);
  animation: al-torch 3s ease-in-out infinite alternate; z-index: 4;
}
.scn-ancient-legislators .torch-flame {
  position: absolute; top: 10%; left: 49%; width: 10px; height: 18px;
  background: linear-gradient(to top, #ffa040 0%, #ff8030 50%, #e06020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: al-flame 0.8s ease-in-out infinite alternate;
  z-index: 5;
}
@keyframes al-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}
@keyframes al-figure-l {
  0% { transform: translate(0,0) rotate(-2deg); }
  30% { transform: translate(1px, -1px) rotate(1deg); }
  60% { transform: translate(-1px, 0) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes al-figure-r {
  0% { transform: translate(0,0) rotate(1deg); }
  50% { transform: translate(-1px, -1px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes al-scroll {
  0% { transform: rotate(-3deg) scaleX(1); }
  50% { transform: rotate(-2deg) scaleX(1.02); }
  100% { transform: rotate(-3.5deg) scaleX(0.98); }
}
@keyframes al-torch {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.97); }
}
@keyframes al-flame {
  0% { transform: scaleY(0.9) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-1px); }
  100% { transform: scaleY(0.95) translateY(0); }
}

/* early-christian-community */
.scn-early-christian-community {
  background: linear-gradient(180deg, #3a2518 0%, #2a1a10 50%, #1a0e08 100%), radial-gradient(ellipse at 50% 70%, #5a3a20 0%, transparent 70%);
}
.scn-early-christian-community .bg-arch {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #4a3020 0%, #1a0e08 100%);
  z-index: 0;
}
.scn-early-christian-community .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
  z-index: 1; animation: ecc-table 20s ease-in-out infinite alternate;
}
.scn-early-christian-community .loaf {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, #c89050 0%, #a06830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); z-index: 2;
  animation: ecc-loaf 10s ease-in-out infinite;
}
.scn-early-christian-community .cup {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3018 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6); z-index: 2;
}
.scn-early-christian-community .figure-brother {
  position: absolute; bottom: 25%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; z-index: 3;
  animation: ecc-figure 8s ease-in-out infinite;
}
.scn-early-christian-community .figure-sister {
  position: absolute; bottom: 25%; right: 20%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; z-index: 3;
  animation: ecc-figure 8s ease-in-out infinite 2s;
}
.scn-early-christian-community .candle-glow {
  position: absolute; top: 20%; left: 45%; width: 30px; height: 50px;
  background: radial-gradient(circle at bottom, #ffd080 0%, #ffa040 30%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: ecc-candle 3s ease-in-out infinite alternate; z-index: 4;
}
.scn-early-christian-community .candle-wax {
  position: absolute; top: 22%; left: 47%; width: 6px; height: 20px;
  background: linear-gradient(to top, #e0c090 0%, #c0a070 100%);
  border-radius: 20%; z-index: 5;
  animation: ecc-wax 6s ease-in-out infinite;
}
@keyframes ecc-table {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.003) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ecc-loaf {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(0.99); }
}
@keyframes ecc-figure {
  0% { transform: translate(0,0) rotate(-2deg); }
  30% { transform: translate(1px, -1px) rotate(1deg); }
  60% { transform: translate(-1px, 0) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes ecc-candle {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes ecc-wax {
  0% { height: 20px; }
  50% { height: 18px; }
  100% { height: 20px; }
}

/* red-flag-of-republicanism */
.scn-red-flag-of-republicanism {
  background: linear-gradient(180deg, #0d0810 0%, #1a0e1a 50%, #0d0810 100%), radial-gradient(ellipse at 50% 60%, #2a1020 0%, transparent 70%);
}
.scn-red-flag-of-republicanism .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0d0810 0%, #1a0e1a 100%);
  z-index: 0;
}
.scn-red-flag-of-republicanism .flag {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 10% 30% 0 / 0 20% 40% 0;
  transform-origin: left center;
  box-shadow: 0 0 20px rgba(200,85,61,0.6);
  animation: rfr-flag 4s ease-in-out infinite alternate; z-index: 2;
}
.scn-red-flag-of-republicanism .pole {
  position: absolute; top: 8%; left: 29%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px; z-index: 1;
}
.scn-red-flag-of-republicanism .hand-clutching {
  position: absolute; top: 60%; left: 28%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center; z-index: 3;
  animation: rfr-hand 5s ease-in-out infinite;
}
.scn-red-flag-of-republicanism .ground-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  z-index: 0; animation: rfr-shadow 10s ease-in-out infinite alternate;
}
.scn-red-flag-of-republicanism .ember {
  position: absolute; top: 50%; left: 45%; width: 4px; height: 4px;
  background: #ff8040; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8040;
  animation: rfr-ember 2s ease-in-out infinite; z-index: 4;
}
@keyframes rfr-flag {
  0% { transform: rotate(-5deg) scaleX(0.95); }
  50% { transform: rotate(2deg) scaleX(1.05); }
  100% { transform: rotate(-3deg) scaleX(0.98); }
}
@keyframes rfr-hand {
  0% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(1px, -2px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes rfr-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes rfr-ember {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(3px, -5px) scale(0.8); opacity: 0.5; }
  100% { transform: translate(0,0) scale(1); opacity: 1; }
}

.scn-just-would-act-like-unjust {
  background:
    radial-gradient(ellipse at 70% 30%, #3a2a1e 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2c1f1a 50%, #0e0a08 100%);
}
.scn-just-would-act-like-unjust .jw-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2c1f1a 0%, #1a1210 100%);
  animation: wall-jw 12s ease-in-out infinite alternate;
}
.scn-just-would-act-like-unjust .jw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 100%);
}
.scn-just-would-act-like-unjust .jw-window {
  position: absolute; top: 14%; left: 55%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #b08040 0%, transparent 70%);
  box-shadow: 0 0 24px 6px rgba(176,128,64,.5);
  border-radius: 4px;
  animation: glow-jw 4s ease-in-out infinite alternate;
}
.scn-just-would-act-like-unjust .jw-bars {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 50%;
  background:
    repeating-linear-gradient(90deg, #1a1210 0px 2px, transparent 2px 18px);
  mask: linear-gradient(180deg, #000 0%, transparent 30%, #000 70%, transparent 100%);
  -webkit-mask: linear-gradient(180deg, #000 0%, transparent 30%, #000 70%, transparent 100%);
  animation: bars-jw 8s ease-in-out infinite;
}
.scn-just-would-act-like-unjust .jw-figure {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, #1f1814 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: figure-jw 6s ease-in-out infinite;
}
.scn-just-would-act-like-unjust .jw-chain {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 40px;
  background: repeating-linear-gradient(180deg, #3a2a1e 0px 4px, #1a1210 4px 8px);
  border-radius: 3px;
  animation: chain-jw 5s ease-in-out infinite;
}
.scn-just-would-act-like-unjust .jw-dust {
  position: absolute; top: 30%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,180,160,.15); border-radius: 50%;
  box-shadow: 10px 20px 0 2px rgba(200,180,160,.1), -15px 5px 0 3px rgba(200,180,160,.12), 25px -10px 0 1px rgba(200,180,160,.08);
  animation: dust-jw 18s linear infinite;
}

@keyframes wall-jw {
  0% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.01); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes glow-jw {
  0% { box-shadow: 0 0 18px 4px rgba(176,128,64,.4); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(176,128,64,.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(176,128,64,.3); opacity: 0.85; }
}
@keyframes bars-jw {
  0% { transform: translateX(0); opacity: 0.8; }
  25% { transform: translateX(-2px); opacity: 0.9; }
  75% { transform: translateX(2px); opacity: 0.85; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes figure-jw {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(2px) rotate(0); }
}
@keyframes chain-jw {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dust-jw {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.3; }
  100% { transform: translateY(-60px) translateX(20px) scale(0.5); opacity: 0; }
}

.scn-only-fear-stops {
  background:
    radial-gradient(ellipse at 40% 60%, #2c1f1a 0%, transparent 50%),
    linear-gradient(180deg, #1a1210 0%, #221714 50%, #0e0a08 100%);
}
.scn-only-fear-stops .of-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a1210 0%, #2c1f1a 50%, #1a1210 100%);
  animation: wall-of 10s ease-in-out infinite alternate;
}
.scn-only-fear-stops .of-door {
  position: absolute; bottom: 20%; left: 65%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,.6);
  transform: perspective(200px) rotateY(2deg);
  animation: door-of 8s ease-in-out infinite;
}
.scn-only-fear-stops .of-light {
  position: absolute; bottom: 25%; left: 64%; width: 4px; height: 60px;
  background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, transparent 100%);
  box-shadow: 0 0 12px 2px rgba(200,180,160,.2);
  animation: light-of 5s ease-in-out infinite alternate;
}
.scn-only-fear-stops .of-figure {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 52px;
  background: radial-gradient(ellipse at 50% 0%, #1f1814 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: figure-of 7s ease-in-out infinite;
}
.scn-only-fear-stops .of-shadow {
  position: absolute; bottom: 10%; left: 25%; width: 40px; height: 10px;
  background: rgba(0,0,0,.3);
  filter: blur(4px);
  border-radius: 50%;
  transform: skewX(-15deg);
  animation: shadow-of 7s ease-in-out infinite;
}
.scn-only-fear-stops .of-mote {
  position: absolute; top: 25%; left: 20%; width: 3px; height: 3px;
  background: rgba(200,180,160,.1);
  border-radius: 50%;
  box-shadow: 15px 40px 0 2px rgba(200,180,160,.08), -10px 10px 0 1px rgba(200,180,160,.06);
  animation: mote-of 25s linear infinite;
}

@keyframes wall-of {
  0% { opacity: 1; }
  50% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes door-of {
  0% { transform: perspective(200px) rotateY(2deg); }
  50% { transform: perspective(200px) rotateY(0deg); }
  100% { transform: perspective(200px) rotateY(2deg); }
}
@keyframes light-of {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes figure-of {
  0% { transform: translateY(0) rotate(-2deg) scale(1); }
  30% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
  60% { transform: translateY(0) rotate(-1deg) scale(1); }
  100% { transform: translateY(1px) rotate(1deg) scale(0.99); }
}
@keyframes shadow-of {
  0% { transform: skewX(-15deg) scaleX(1); opacity: 0.3; }
  50% { transform: skewX(-15deg) scaleX(0.9); opacity: 0.5; }
  100% { transform: skewX(-15deg) scaleX(1); opacity: 0.3; }
}
@keyframes mote-of {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.1; }
  100% { transform: translateY(-80px) translateX(15px) scale(0.4); opacity: 0; }
}

.scn-isolation-of-just-and-unjust {
  background:
    radial-gradient(ellipse at 50% 80%, #1f1814 0%, transparent 60%),
    linear-gradient(180deg, #0e0a08 0%, #1a1210 50%, #221714 100%);
}
.scn-isolation-of-just-and-unjust .ij-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1210 0%, #2c1f1a 100%);
  animation: bg-ij 14s ease-in-out infinite alternate;
}
.scn-isolation-of-just-and-unjust .ij-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 50%, #0a0705 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-isolation-of-just-and-unjust .ij-column {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #1a1a1e 0%, #2c2c30 50%, #1a1a1e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(0,0,0,.4);
  animation: column-ij 9s ease-in-out infinite;
}
.scn-isolation-of-just-and-unjust .ij-figure {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 48px;
  background: radial-gradient(ellipse at 50% 0%, #1f1814 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: figure-ij 6s ease-in-out infinite;
}
.scn-isolation-of-just-and-unjust .ij-lamp {
  position: absolute; bottom: 55%; left: 72%; width: 8px; height: 6px;
  background: radial-gradient(circle, #b08040 0%, transparent 100%);
  box-shadow: 0 0 20px 6px rgba(176,128,64,.4);
  border-radius: 50%;
  animation: lamp-ij 3s ease-in-out infinite alternate;
}
.scn-isolation-of-just-and-unjust .ij-wisp {
  position: absolute; top: 15%; left: 30%; width: 6px; height: 6px;
  background: rgba(140,100,60,.05);
  filter: blur(2px);
  border-radius: 50%;
  box-shadow: 20px 30px 0 4px rgba(140,100,60,.03), -30px 10px 0 2px rgba(140,100,60,.04);
  animation: wisp-ij 30s linear infinite;
}

@keyframes bg-ij {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes column-ij {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scaleY(1.02); opacity: 0.9; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}
@keyframes figure-ij {
  0% { transform: translateY(0) rotate(0) scale(1); }
  25% { transform: translateY(-2px) rotate(-1deg) scale(1.01); }
  50% { transform: translateY(0) rotate(0) scale(1); }
  75% { transform: translateY(2px) rotate(1deg) scale(0.99); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes lamp-ij {
  0% { box-shadow: 0 0 15px 4px rgba(176,128,64,.3); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px rgba(176,128,64,.6); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px rgba(176,128,64,.35); opacity: 0.85; }
}
@keyframes wisp-ij {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.2; }
  100% { transform: translateY(-90px) translateX(25px) scale(0.5); opacity: 0; }
}

.scn-perfect-unjust {
  background:
    radial-gradient(ellipse at 60% 40%, #2c1f1a 0%, transparent 50%),
    linear-gradient(180deg, #0e0a08 0%, #1a1210 60%, #221714 100%);
}
.scn-perfect-unjust .pu-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a1210 0%, #2c1f1a 50%, #1a1210 100%);
  animation: wall-pu 15s ease-in-out infinite alternate;
}
.scn-perfect-unjust .pu-throne {
  position: absolute; bottom: 15%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  transform: perspective(200px) rotateX(5deg);
  animation: throne-pu 10s ease-in-out infinite;
}
.scn-perfect-unjust .pu-figure {
  position: absolute; bottom: 30%; left: 43%; width: 28px; height: 55px;
  background: radial-gradient(ellipse at 50% 0%, #1f1814 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: figure-pu 7s ease-in-out infinite;
}
.scn-perfect-unjust .pu-mask {
  position: absolute; top: 25%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #3a2a1e 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.4);
  animation: mask-pu 4s ease-in-out infinite alternate;
}
.scn-perfect-unjust .pu-shadow {
  position: absolute; bottom: 8%; left: 38%; width: 60px; height: 20px;
  background: rgba(0,0,0,.2);
  filter: blur(6px);
  border-radius: 50%;
  transform: skewX(-20deg);
  animation: shadow-pu 7s ease-in-out infinite;
}
.scn-perfect-unjust .pu-smoke {
  position: absolute; top: 10%; left: 20%; width: 8px; height: 8px;
  background: rgba(100,80,60,.03);
  filter: blur(3px);
  border-radius: 50%;
  box-shadow: 25px 20px 0 5px rgba(100,80,60,.02), -20px 30px 0 3px rgba(100,80,60,.025);
  animation: smoke-pu 40s linear infinite;
}

@keyframes wall-pu {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes throne-pu {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(7deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes figure-pu {
  0% { transform: translateY(0) rotate(-1deg) scale(1); }
  25% { transform: translateY(-2px) rotate(1deg) scale(1.02); }
  50% { transform: translateY(0) rotate(0) scale(1); }
  75% { transform: translateY(2px) rotate(-1deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes mask-pu {
  0% { transform: translateY(0) rotate(-3deg); opacity: 0.8; }
  50% { transform: translateY(-1px) rotate(3deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-2deg); opacity: 0.85; }
}
@keyframes shadow-pu {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.2; }
  50% { transform: skewX(-20deg) scaleX(1.1); opacity: 0.4; }
  100% { transform: skewX(-20deg) scaleX(1); opacity: 0.2; }
}
@keyframes smoke-pu {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  5% { opacity: 0.15; }
  95% { opacity: 0.05; }
  100% { transform: translateY(-120px) translateX(30px) scale(0.3); opacity: 0; }
}

/* --- Scene 1: suitable-state-for-philosophy (calm, dim-interior) --- */
.scn-suitable-state-for-philosophy {
  background: linear-gradient(180deg, #1a1423 0%, #2a1f2e 40%, #3a2a3a 100%), radial-gradient(ellipse at 80% 20%, #3a2a3a 0%, transparent 60%);
}
.scn-suitable-state-for-philosophy .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1423 100%);
  animation: sfp-wall 20s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .window-out {
  position: absolute; top: 12%; left: 20%; width: 120px; height: 90px;
  background: linear-gradient(135deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 4px; border: 2px solid #4a3a5a;
  box-shadow: inset 0 0 30px rgba(10,5,15,0.6);
  animation: sfp-window 15s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .window-in {
  position: absolute; top: 15%; left: 23%; width: 100px; height: 75px;
  background: radial-gradient(circle at 50% 30%, #5a4a6a 0%, #2a1a3a 80%);
  border-radius: 2px; box-shadow: 0 0 20px rgba(80,60,100,0.3);
  animation: sfp-window-in 10s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: sfp-desk 8s ease-in-out infinite;
}
.scn-suitable-state-for-philosophy .book {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  transform: rotate(-5deg); transform-origin: bottom left;
  animation: sfp-book 12s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .figure-sit {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sfp-figure 6s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .lamp-glow {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #d09050 30%, transparent 70%);
  border-radius: 50%; opacity: 0.6;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.3);
  animation: sfp-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .lamp-body {
  position: absolute; bottom: 32%; left: 57%; width: 8px; height: 50px;
  background: linear-gradient(0deg, #5a4a3a 0%, #8a6a4a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: sfp-lamp-body 4s ease-in-out infinite alternate;
}
.scn-suitable-state-for-philosophy .shadow-pool {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: sfp-shadow 9s ease-in-out infinite;
}

@keyframes sfp-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sfp-window { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sfp-window-in { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes sfp-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sfp-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sfp-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sfp-lamp-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.2) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes sfp-lamp-body { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes sfp-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* --- Scene 2: study-of-philosophy (calm, bright-interior) --- */
.scn-study-of-philosophy {
  background: linear-gradient(180deg, #e8dfd0 0%, #c8bca8 40%, #a89880 100%), radial-gradient(ellipse at 70% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-study-of-philosophy .wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5ede0 0%, #e0d5c0 100%);
  animation: sop-wall 18s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .window-sill {
  position: absolute; top: 10%; left: 25%; width: 140px; height: 100px;
  background: linear-gradient(135deg, #faf5ec 0%, #d8cdb8 100%);
  border-radius: 4px 4px 2px 2px; border: 2px solid #b8a890;
  box-shadow: inset 0 0 20px rgba(180,160,130,0.5);
  animation: sop-sill 20s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .sunbeam {
  position: absolute; top: 12%; left: 30%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: rotate(-5deg); transform-origin: top;
  animation: sop-sunbeam 8s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .desk-wide {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 60px;
  background: linear-gradient(0deg, #a08870 0%, #c0a888 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(80,60,40,0.4);
  animation: sop-desk 12s ease-in-out infinite;
}
.scn-study-of-philosophy .scroll {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(90deg, #d4c4a8 0%, #e8dcc8 50%, #d4c4a8 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: sop-scroll 9s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .hand {
  position: absolute; bottom: 20%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #c8a88a 0%, #a8886a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: sop-hand 5s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .head-silhou {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 40px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sop-head 7s ease-in-out infinite alternate;
}
.scn-study-of-philosophy .inkwell {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 20%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sop-inkwell 10s ease-in-out infinite;
}

@keyframes sop-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sop-sill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sop-sunbeam { 0% { opacity: 0.3; transform: rotate(-5deg) scaleY(0.95) } 50% { opacity: 0.7; transform: rotate(-4deg) scaleY(1.05) } 100% { opacity: 0.4; transform: rotate(-5deg) scaleY(1) } }
@keyframes sop-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sop-scroll { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sop-hand { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes sop-head { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sop-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* --- Scene 3: education-of-guardians-revisited (calm, bright-interior) --- */
.scn-education-of-guardians-revisited {
  background: linear-gradient(180deg, #d8d0c0 0%, #b8aa98 40%, #887868 100%), radial-gradient(ellipse at 20% 40%, #e8e0d0 0%, transparent 60%);
}
.scn-education-of-guardians-revisited .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #c8bca8 100%);
  animation: egr-room 22s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .column-left {
  position: absolute; bottom: 0; left: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #a09078 0%, #c0b098 50%, #a09078 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  animation: egr-col 16s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .column-right {
  position: absolute; bottom: 0; right: 15%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #a09078 0%, #c0b098 50%, #a09078 100%);
  border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: egr-col 16s ease-in-out infinite alternate-reverse;
}
.scn-education-of-guardians-revisited .arch {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 60px;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  border-radius: 80% 80% 0 0 / 100% 100% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: egr-arch 14s ease-in-out infinite;
}
.scn-education-of-guardians-revisited .shield {
  position: absolute; bottom: 40%; left: 35%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 40%, #d8a050 0%, #906a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: egr-shield 6s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .spear {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 70px;
  background: linear-gradient(0deg, #5a4a3a 0%, #8a7a5a 50%, #5a4a3a 100%);
  border-radius: 2px; transform: rotate(-10deg); transform-origin: bottom;
  animation: egr-spear 8s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .guardian-fig {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: egr-guard 7s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .child-fig {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: egr-child 5s ease-in-out infinite alternate;
}
.scn-education-of-guardians-revisited .sunburst {
  position: absolute; top: 2%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0) 70%);
  transform: translateX(-50%);
  animation: egr-sun 30s ease-in-out infinite alternate;
}

@keyframes egr-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes egr-col { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes egr-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes egr-shield { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes egr-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }
@keyframes egr-guard { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes egr-child { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes egr-sun { 0% { opacity: 0.4; transform: translateX(-50%) scale(0.9) } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.95) } }

/* --- Scene 4: virtues-of-philosopher-recap (warm, dim-interior) --- */
.scn-virtues-of-philosopher-recap {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #5a3a2a 100%), radial-gradient(ellipse at 30% 60%, #8a5030 0%, transparent 60%);
}
.scn-virtues-of-philosopher-recap .deep-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: vpr-shadow 20s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .fireplace-glow {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #d06030 0%, #8a4020 40%, transparent 70%);
  border-radius: 80% 80% 0 0 / 60% 60% 0 0;
  filter: blur(8px);
  animation: vpr-fire-glow 3s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .mantel {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 10px;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: vpr-mantel 14s ease-in-out infinite;
}
.scn-virtues-of-philosopher-recap .fire-flame {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #d05010 30%, #8a2010 60%, transparent 80%);
  border-radius: 60% 60% 30% 30% / 80% 80% 30% 30%;
  filter: blur(4px);
  animation: vpr-flame 2s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .armchair {
  position: absolute; bottom: 8%; left: 35%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: vpr-chair 10s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .thinker {
  position: absolute; bottom: 12%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: vpr-thinker 7s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .bookstack {
  position: absolute; bottom: 8%; left: 55%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  transform: rotate(3deg);
  animation: vpr-books 12s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .candle {
  position: absolute; bottom: 10%; left: 15%; width: 6px; height: 30px;
  background: linear-gradient(0deg, #4a3a2a 0%, #8a6a4a 80%, transparent 100%);
  border-radius: 2px; transform: rotate(-2deg);
  animation: vpr-candle 5s ease-in-out infinite alternate;
}
.scn-virtues-of-philosopher-recap .candle-light {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.4);
  animation: vpr-candle-glow 3s ease-in-out infinite alternate;
}

@keyframes vpr-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes vpr-fire-glow { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(0.98) } }
@keyframes vpr-mantel { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vpr-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-4px) } 100% { transform: scaleY(0.95) translateY(0) } }
@keyframes vpr-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(1deg) } }
@keyframes vpr-thinker { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes vpr-books { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes vpr-candle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes vpr-candle-glow { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }

/* ---- without-education ---- */
.scn-without-education {
  background: linear-gradient(180deg, #2c1f1a 0%, #3a2822 40%, #1a0f0a 100%), radial-gradient(ellipse at 50% 100%, #1a0f0a 0%, transparent 70%);
}
.scn-without-education .bg-wall {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3528 0%, #2c1f1a 100%);
  animation: we-wall 12s ease-in-out infinite alternate;
}
.scn-without-education .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1f1510 0%, #2c1f1a 100%);
}
.scn-without-education .table {
  position:absolute; bottom:28%; left:20%; width:55%; height:14%; background: linear-gradient(180deg, #5a3f2e 0%, #3a281a 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: we-table 18s ease-in-out infinite;
}
.scn-without-education .figure-torso {
  position:absolute; bottom:30%; left:35%; width:22%; height:42%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center; animation: we-figure-breath 4s ease-in-out infinite;
}
.scn-without-education .figure-head {
  position:absolute; bottom:68%; left:39%; width:16%; height:18%; background: radial-gradient(circle, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(5deg);
  animation: we-head-turn 6s ease-in-out infinite alternate;
}
.scn-without-education .candle {
  position:absolute; bottom:44%; left:28%; width:4%; height:12%; background: linear-gradient(180deg, #d4b278 0%, #a08050 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-without-education .flame {
  position:absolute; bottom:56%; left:28.5%; width:2.5%; height:6%; background: radial-gradient(ellipse, #ffdd88 0%, #cc8844 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 14px 6px rgba(255,200,100,.5), 0 0 28px 12px rgba(255,200,100,.3);
  animation: we-flame 0.3s ease-in-out infinite alternate;
}
.scn-without-education .mending {
  position:absolute; bottom:30%; left:30%; width:8%; height:4%; background: #3a2a1a;
  border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: we-mending 2s ease-in-out infinite;
}
.scn-without-education .shadow {
  position:absolute; bottom:12%; left:15%; width:70%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(4px); animation: we-shadow 5s ease-in-out infinite alternate;
}
@keyframes we-wall {
  0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 }
}
@keyframes we-table {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes we-figure-breath {
  0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) }
}
@keyframes we-head-turn {
  0% { transform: rotate(4deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(6deg) }
}
@keyframes we-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85 }
}
@keyframes we-mending {
  0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-3px) scaleX(1.05) } 100% { transform: translateX(0) scaleX(1) }
}
@keyframes we-shadow {
  0% { transform: scaleX(1) opacity:.4 } 50% { transform: scaleX(1.1) opacity:.5 } 100% { transform: scaleX(1) opacity:.4 }
}

/* ---- religion-left-to-apollo ---- */
.scn-religion-left-to-apollo {
  background: linear-gradient(180deg, #1a1c2e 0%, #24263a 40%, #0e0f1a 100%), radial-gradient(ellipse at 50% 100%, #0e0f1a 0%, transparent 70%);
}
.scn-religion-left-to-apollo .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2d44 0%, #1a1c2e 100%);
  animation: ra-bg 20s ease-in-out infinite alternate;
}
.scn-religion-left-to-apollo .niche {
  position:absolute; bottom:35%; left:38%; width:24%; height:40%; background: linear-gradient(180deg, #343850 0%, #1a1c2e 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-religion-left-to-apollo .altar {
  position:absolute; bottom:20%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #4a4e66 0%, #2a2d44 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-religion-left-to-apollo .statue-base {
  position:absolute; bottom:28%; left:43%; width:14%; height:6%; background: linear-gradient(0deg, #3a3e56 0%, #5a5e76 100%);
  border-radius: 20% 20% 0 0;
}
.scn-religion-left-to-apollo .statue-torso {
  position:absolute; bottom:34%; left:44.5%; width:11%; height:30%; background: linear-gradient(180deg, #6a6e86 0%, #3a3e56 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%;
  animation: ra-statue 15s ease-in-out infinite alternate;
}
.scn-religion-left-to-apollo .lamp {
  position:absolute; bottom:46%; left:28%; width:4%; height:6%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
}
.scn-religion-left-to-apollo .lamp-glow {
  position:absolute; bottom:46%; left:27%; width:6%; height:8%; background: radial-gradient(circle, #d4b278 0%, #a09060 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,180,100,.4), 0 0 40px 16px rgba(200,180,100,.2);
  animation: ra-glow 4s ease-in-out infinite alternate;
}
.scn-religion-left-to-apollo .scroll {
  position:absolute; bottom:15%; left:45%; width:10%; height:3%; background: linear-gradient(90deg, #b8a080 0%, #d8c0a0 50%, #b8a080 100%);
  border-radius: 20%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-religion-left-to-apollo .motes {
  position:absolute; border-radius:50%; background: rgba(200,180,100,.15); filter: blur(2px);
  animation: ra-mote linear infinite;
}
.scn-religion-left-to-apollo .motes-a {
  width: 1.5%; height: 1.5%; top: 40%; left: 10%; animation-duration: 30s; animation-delay: -5s;
}
.scn-religion-left-to-apollo .motes-b {
  width: 1%; height: 1%; top: 55%; left: 60%; animation-duration: 40s; animation-delay: -15s;
}
@keyframes ra-bg {
  0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 }
}
@keyframes ra-statue {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes ra-glow {
  0% { box-shadow: 0 0 16px 6px rgba(200,180,100,.3), 0 0 32px 12px rgba(200,180,100,.15); opacity:.8 }
  50% { box-shadow: 0 0 28px 12px rgba(200,180,100,.5), 0 0 48px 20px rgba(200,180,100,.25); opacity:1 }
  100% { box-shadow: 0 0 20px 8px rgba(200,180,100,.35), 0 0 36px 14px rgba(200,180,100,.18); opacity:.85 }
}
@keyframes ra-mote {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0 }
  10% { opacity:1 }
  90% { opacity:1 }
  100% { transform: translateY(-80vh) translateX(20vw) scale(0.5); opacity:0 }
}

/* ---- reflection-on-happiness ---- */
.scn-reflection-on-happiness {
  background: linear-gradient(180deg, #2a2420 0%, #3a322a 40%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #1a1410 0%, transparent 70%);
}
.scn-reflection-on-happiness .bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a322a 0%, #2a2420 100%);
  animation: rh-bg 15s ease-in-out infinite alternate;
}
.scn-reflection-on-happiness .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1410 0%, #2a2420 100%);
}
.scn-reflection-on-happiness .chair {
  position:absolute; bottom:30%; right:25%; width:20%; height:35%; background: linear-gradient(180deg, #4a4238 0%, #2a2420 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.5);
  animation: rh-chair 20s ease-in-out infinite;
}
.scn-reflection-on-happiness .figure {
  position:absolute; bottom:32%; right:28%; width:14%; height:40%; background: linear-gradient(180deg, #1a1614 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center; animation: rh-figure-breath 4.5s ease-in-out infinite;
}
.scn-reflection-on-happiness .table-round {
  position:absolute; bottom:25%; left:30%; width:22%; height:12%; background: linear-gradient(180deg, #5a4e3a 0%, #3a322a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 6px 10px rgba(0,0,0,.5);
}
.scn-reflection-on-happiness .candle {
  position:absolute; bottom:38%; left:38%; width:3%; height:10%; background: linear-gradient(180deg, #d4b278 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-reflection-on-happiness .flame {
  position:absolute; bottom:48%; left:38.2%; width:2.5%; height:6%; background: radial-gradient(ellipse, #ffe8b0 0%, #d4a060 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,200,100,.4), 0 0 32px 12px rgba(255,200,100,.2);
  animation: rh-flame 2s ease-in-out infinite alternate;
}
.scn-reflection-on-happiness .window-pane {
  position:absolute; top:8%; right:10%; width:18%; height:40%; background: linear-gradient(180deg, #1a2c3e 0%, #2a3e52 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: rh-night 15s ease-in-out infinite alternate;
}
.scn-reflection-on-happiness .window-sill {
  position:absolute; top:46%; right:9%; width:20%; height:3%; background: #3a322a;
  border-radius: 2px 2px 0 0;
}
@keyframes rh-bg {
  0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 }
}
@keyframes rh-chair {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes rh-figure-breath {
  0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.015) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) }
}
@keyframes rh-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.1) translateY(-1px); opacity:1 } 100% { transform: scaleY(0.95) translateY(1px); opacity:.85 }
}
@keyframes rh-night {
  0% { background: linear-gradient(180deg, #1a2c3e 0%, #2a3e52 100%) } 50% { background: linear-gradient(180deg, #142230 0%, #223648 100%) } 100% { background: linear-gradient(180deg, #1a2c3e 0%, #2a3e52 100%) }
}

/* ---- duty-first ---- */
.scn-duty-first {
  background: linear-gradient(180deg, #2a2420 0%, #3a322a 40%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #1a1410 0%, transparent 70%);
}
.scn-duty-first .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a322a 0%, #2a2420 100%);
}
.scn-duty-first .desk {
  position:absolute; bottom:15%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #5a4e3a 0%, #2a2420 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: df-desk 25s ease-in-out infinite;
}
.scn-duty-first .scroll {
  position:absolute; bottom:30%; left:40%; width:20%; height:4%; background: linear-gradient(90deg, #c0a888 0%, #e0c8a8 50%, #c0a888 100%);
  border-radius: 10px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: df-scroll 6s ease-in-out infinite alternate;
}
.scn-duty-first .hand {
  position:absolute; bottom:34%; left:55%; width:8%; height:14%; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: df-hand 2s ease-in-out infinite;
}
.scn-duty-first .quill {
  position:absolute; bottom:40%; left:60%; width:1.5%; height:12%; background: linear-gradient(180deg, #e8d0b0 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(15deg); transform-origin: bottom center;
  animation: df-quill 2s ease-in-out infinite;
}
.scn-duty-first .inkwell {
  position:absolute; bottom:28%; left:30%; width:5%; height:5%; background: linear-gradient(180deg, #2a2420 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-duty-first .candle {
  position:absolute; bottom:32%; left:25%; width:3%; height:10%; background: linear-gradient(180deg, #d4b278 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-duty-first .flame {
  position:absolute; bottom:42%; left:25.2%; width:2.5%; height:6%; background: radial-gradient(ellipse, #ffe8b0 0%, #d4a060 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,200,100,.4), 0 0 32px 12px rgba(255,200,100,.2);
  animation: df-flame 1.8s ease-in-out infinite alternate;
}
.scn-duty-first .paper {
  position:absolute; bottom:22%; left:42%; width:16%; height:10%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: df-paper 12s ease-in-out infinite alternate;
}
@keyframes df-desk {
  0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) }
}
@keyframes df-scroll {
  0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-5deg) scaleX(1) }
}
@keyframes df-hand {
  0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) }
}
@keyframes df-quill {
  0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) }
}
@keyframes df-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.12) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.92) translateY(1px); opacity:.85 }
}
@keyframes df-paper {
  0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 }
}

/* reverse-of-licentious */
.scn-reverse-of-licentious { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 30% 80%, #4a3a6e 0%, transparent 70%); }
.scn-reverse-of-licentious .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1c1c2a 0%, #2a2a40 50%, #1c1c2a 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 -12px 20px rgba(0,0,0,.6); animation: ro-wall 16s ease-in-out infinite alternate; }
.scn-reverse-of-licentious .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%); border-radius:30% 70% 0 0; }
.scn-reverse-of-licentious .window { position:absolute; bottom:38%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(60,100,150,.3); animation: ro-window 8s ease-in-out infinite alternate; }
.scn-reverse-of-licentious .lamp { position:absolute; bottom:45%; left:65%; width:12px; height:12px; background: radial-gradient(circle, #d0a040 0%, #b08030 60%); border-radius:50%; box-shadow: 0 0 24px 8px #c89040, 0 0 40px 12px rgba(200,144,64,.4); animation: ro-lamp 5s ease-in-out infinite alternate; }
.scn-reverse-of-licentious .figure { position:absolute; bottom:28%; left:40%; width:28px; height:44px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ro-figure 7s ease-in-out infinite; }
.scn-reverse-of-licentious .chair { position:absolute; bottom:27%; left:38%; width:34px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px 4px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ro-chair 11s ease-in-out infinite alternate; }
@keyframes ro-wall      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ro-window    { 0% { box-shadow: 0 0 12px 4px rgba(60,100,150,.2); background: #2a3a5a } 50% { box-shadow: 0 0 28px 8px rgba(60,100,150,.5); background: #3a5a7a } 100% { box-shadow: 0 0 16px 5px rgba(60,100,150,.3); background: #2a3a5a } }
@keyframes ro-lamp      { 0% { box-shadow: 0 0 20px 6px #c89040, 0 0 36px 10px rgba(200,144,64,.3); opacity:.9 } 50% { box-shadow: 0 0 32px 12px #e0a850, 0 0 50px 18px rgba(224,168,80,.5); opacity:1 } 100% { box-shadow: 0 0 24px 8px #c89040, 0 0 40px 12px rgba(200,144,64,.35); opacity:.85 } }
@keyframes ro-figure    { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ro-chair     { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }

/* no-sentiment-or-imagination */
.scn-no-sentiment-or-imagination { background: linear-gradient(180deg, #18182a 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 70% 90%, #3a3a4e 0%, transparent 60%); }
.scn-no-sentiment-or-imagination .bg-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #20203a 0%, #101020 100%); border-radius:0 0 30% 30%; animation: ns-bg 20s ease-in-out infinite alternate; }
.scn-no-sentiment-or-imagination .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); opacity:.6; }
.scn-no-sentiment-or-imagination .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e1e1a 0%, #0e0e0a 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-no-sentiment-or-imagination .table { position:absolute; bottom:32%; left:30%; width:100px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: ns-table 13s ease-in-out infinite alternate; }
.scn-no-sentiment-or-imagination .bowl { position:absolute; bottom:36%; left:38%; width:26px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: ns-bowl 9s ease-in-out infinite; }
.scn-no-sentiment-or-imagination .figure { position:absolute; bottom:28%; left:20%; width:24px; height:42px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-figure 6s ease-in-out infinite; }
.scn-no-sentiment-or-imagination .bar-left { position:absolute; bottom:20%; left:42%; width:4px; height:50%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,.6); animation: ns-bar 14s ease-in-out infinite alternate; }
.scn-no-sentiment-or-imagination .bar-right { position:absolute; bottom:20%; right:42%; width:4px; height:50%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,.6); animation: ns-bar 10s ease-in-out infinite alternate-reverse; }
@keyframes ns-bg      { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ns-table   { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ns-bowl    { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ns-figure  { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ns-bar     { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

/* improvement-of-race */
.scn-improvement-of-race { background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 50%, #3a4a3a 100%), radial-gradient(ellipse at 50% 80%, #2a4a2a 0%, transparent 70%); }
.scn-improvement-of-race .bg-lab { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1e2e1e 0%, #0e1e0e 100%); border-radius:0 0 40% 40%; animation: ior-bg 18s ease-in-out infinite alternate; }
.scn-improvement-of-race .table { position:absolute; bottom:32%; left:20%; width:60%; height:18px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ior-table 12s ease-in-out infinite alternate; }
.scn-improvement-of-race .beaker { position:absolute; bottom:36%; left:35%; width:24px; height:36px; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: ior-beaker 7s ease-in-out infinite; }
.scn-improvement-of-race .vial { position:absolute; bottom:36%; left:50%; width:12px; height:24px; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 -2px 6px rgba(0,0,0,.3); animation: ior-vial 9s ease-in-out infinite alternate; }
.scn-improvement-of-race .diagram { position:absolute; bottom:42%; right:20%; width:50px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border:1px solid #4a6a4a; border-radius:4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: ior-diagram 15s ease-in-out infinite; }
.scn-improvement-of-race .figure { position:absolute; bottom:28%; left:10%; width:26px; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ior-figure 8s ease-in-out infinite; }
.scn-improvement-of-race .shelf { position:absolute; bottom:45%; right:10%; width:60px; height:8px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ior-shelf 20s ease-in-out infinite alternate; }
@keyframes ior-bg       { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ior-table    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ior-beaker   { 0% { transform: scaleY(1) opacity:.9 } 50% { transform: scaleY(1.02) opacity:1 } 100% { transform: scaleY(1) opacity:.95 } }
@keyframes ior-vial     { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(1px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ior-diagram  { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ior-figure   { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ior-shelf    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

/* horrified-reaction */
.scn-horrified-reaction { background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #000010 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 80%); }
.scn-horrified-reaction .bg-pit { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0e0e1e 0%, #000010 100%); border-radius:0 0 50% 50%; animation: hr-bg 20s ease-in-out infinite alternate; }
.scn-horrified-reaction .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; }
.scn-horrified-reaction .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(90deg, #1e1e2e 0%, #2a2a3e 50%, #1e1e2e 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); opacity:.5; }
.scn-horrified-reaction .candle { position:absolute; bottom:38%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #c8a040 0%, #8a6020 100%); border-radius:2px; box-shadow: 0 0 20px 8px #c8a040, 0 0 40px 16px rgba(200,160,64,.4); animation: hr-candle 4s ease-in-out infinite alternate; }
.scn-horrified-reaction .figure { position:absolute; bottom:28%; left:30%; width:30px; 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: hr-figure 6s ease-in-out infinite; }
.scn-horrified-reaction .shadow { position:absolute; bottom:28%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(0,0,10,.7) 0%, transparent 70%); transform-origin: center; animation: hr-shadow 8s ease-in-out infinite alternate; }
.scn-horrified-reaction .vision { position:absolute; top:20%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(60,40,80,.5) 0%, transparent 70%); filter: blur(6px); animation: hr-vision 12s ease-in-out infinite; }
@keyframes hr-bg       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hr-candle   { 0% { box-shadow: 0 0 12px 4px #c8a040, 0 0 24px 8px rgba(200,160,64,.3); opacity:.8 } 50% { box-shadow: 0 0 28px 10px #e0b850, 0 0 48px 18px rgba(224,184,80,.5); opacity:1 } 100% { box-shadow: 0 0 16px 6px #c8a040, 0 0 32px 12px rgba(200,160,64,.35); opacity:.85 } }
@keyframes hr-figure   { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-6px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-6px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hr-shadow   { 0% { transform: scale(1) translateY(0); opacity:.6 } 50% { transform: scale(1.1) translateY(-5px); opacity:.9 } 100% { transform: scale(1) translateY(0); opacity:.7 } }
@keyframes hr-vision   { 0% { transform: translateX(-50%) scaleY(1); opacity:.3 } 50% { transform: translateX(-50%) scaleY(1.2); opacity:.6 } 100% { transform: translateX(-50%) scaleY(1); opacity:.35 } }

/* Scene 1: republic-and-laws-comparison */
.scn-republic-and-laws-comparison {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%), radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 60%);
}
.scn-republic-and-laws-comparison .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%);
  animation: s1-bg 10s ease-in-out infinite alternate;
}
.scn-republic-and-laws-comparison .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a08 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: s1-table 6s ease-in-out infinite alternate;
}
.scn-republic-and-laws-comparison .book-left {
  position: absolute; bottom: 18%; left: 20%; width: 20%; height: 22%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 8px 8px 4px; transform: skewY(3deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,.5);
  animation: s1-book-left 8s ease-in-out infinite;
}
.scn-republic-and-laws-comparison .book-right {
  position: absolute; bottom: 16%; right: 18%; width: 24%; height: 26%;
  background: linear-gradient(135deg, #7a5a2a 0%, #4a3a1a 100%);
  border-radius: 8px 4px 4px 8px; transform: skewY(-3deg);
  box-shadow: -2px 4px 8px rgba(0,0,0,.5);
  animation: s1-book-right 10s ease-in-out infinite;
}
.scn-republic-and-laws-comparison .candle {
  position: absolute; bottom: 18%; left: 48%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(255,200,100,.3);
}
.scn-republic-and-laws-comparison .flame {
  position: absolute; bottom: 38%; left: 48.5%; width: 1.5%; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, #ffa020 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: s1-flame 1.5s ease-in-out infinite alternate;
}
.scn-republic-and-laws-comparison .glow {
  position: absolute; inset: 10%; pointer-events: none;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.15) 0%, transparent 60%);
  animation: s1-glow 3s ease-in-out infinite alternate;
}
@keyframes s1-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes s1-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s1-book-left { 0% { transform: skewY(3deg) translateX(0) } 50% { transform: skewY(3deg) translateX(4px) } 100% { transform: skewY(3deg) translateX(0) } }
@keyframes s1-book-right { 0% { transform: skewY(-3deg) translateX(0) } 50% { transform: skewY(-3deg) translateX(-6px) } 100% { transform: skewY(-3deg) translateX(0) } }
@keyframes s1-flame { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: 0.7; transform: scaleY(0.9) } }
@keyframes s1-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

/* Scene 2: republic-and-laws-contrast */
.scn-republic-and-laws-contrast {
  background: linear-gradient(180deg, #2a1a12 0%, #0a0806 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-republic-and-laws-contrast .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  animation: s2-bg 12s ease-in-out infinite alternate;
}
.scn-republic-and-laws-contrast .pedestal-left {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: s2-ped-left 6s ease-in-out infinite;
}
.scn-republic-and-laws-contrast .pedestal-right {
  position: absolute; bottom: 15%; right: 15%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: s2-ped-right 7s ease-in-out infinite;
}
.scn-republic-and-laws-contrast .vase-finished {
  position: absolute; bottom: 25%; left: 18%; width: 12%; height: 28%;
  background: linear-gradient(135deg, #8a7050 0%, #5a4030 50%, #3a2820 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.5);
  animation: s2-vase 10s ease-in-out infinite;
}
.scn-republic-and-laws-contrast .pot-unfinished {
  position: absolute; bottom: 24%; right: 18%; width: 14%; height: 22%;
  background: linear-gradient(135deg, #6a4a30 0%, #4a2a1a 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 15% 15%;
  box-shadow: inset 0 0 0 2px #5a3a20, 0 4px 8px rgba(0,0,0,.5);
  transform: scale(0.9);
  animation: s2-pot 8s ease-in-out infinite;
}
.scn-republic-and-laws-contrast .shadow {
  position: absolute; bottom: 13%; left: 10%; right: 10%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: s2-shadow 9s ease-in-out infinite;
}
.scn-republic-and-laws-contrast .dust1 {
  position: absolute; top: 30%; left: 25%; width: 6px; height: 6px;
  background: rgba(200,180,150,.3); border-radius: 50%;
  filter: blur(4px);
  animation: s2-dust1 20s linear infinite;
}
.scn-republic-and-laws-contrast .dust2 {
  position: absolute; top: 40%; right: 30%; width: 4px; height: 4px;
  background: rgba(200,180,150,.25); border-radius: 50%;
  filter: blur(3px);
  animation: s2-dust2 25s linear infinite reverse;
}
@keyframes s2-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes s2-ped-left { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s2-ped-right { 0% { transform: translateY(0) } 33% { transform: translateY(1px) } 66% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes s2-vase { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes s2-pot { 0% { transform: scale(0.9) } 50% { transform: scale(0.92) } 100% { transform: scale(0.9) } }
@keyframes s2-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes s2-dust1 { 0% { transform: translate(0, 0); opacity: 0.3 } 50% { transform: translate(20px, -30px); opacity: 0.6 } 100% { transform: translate(40px, -60px); opacity: 0 } }
@keyframes s2-dust2 { 0% { transform: translate(0, 0); opacity: 0.2 } 50% { transform: translate(-15px, -20px); opacity: 0.5 } 100% { transform: translate(-30px, -40px); opacity: 0 } }

/* Scene 3: laws-sermon-vs-poem */
.scn-laws-sermon-vs-poem {
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0604 100%), radial-gradient(ellipse at 50% 0%, #3a2010 0%, transparent 50%);
}
.scn-laws-sermon-vs-poem .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0604 100%);
  animation: s3-bg 14s ease-in-out infinite alternate;
}
.scn-laws-sermon-vs-poem .column-left {
  position: absolute; bottom: 0; left: 6%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 8px 8px 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.5);
}
.scn-laws-sermon-vs-poem .column-right {
  position: absolute; bottom: 0; right: 6%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 8px 8px 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.5);
}
.scn-laws-sermon-vs-poem .pulpit {
  position: absolute; bottom: 8%; left: 32%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: s3-pulpit 9s ease-in-out infinite;
}
.scn-laws-sermon-vs-poem .preacher {
  position: absolute; bottom: 30%; left: 36%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-preacher 6s ease-in-out infinite;
}
.scn-laws-sermon-vs-poem .poet {
  position: absolute; bottom: 20%; right: 16%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s3-poet 8s ease-in-out infinite;
}
.scn-laws-sermon-vs-poem .lyre {
  position: absolute; bottom: 32%; right: 20%; width: 8%; height: 20%;
  border: 3px solid #8a6a40;
  border-radius: 50% 50% 0 0; background: transparent;
  box-shadow: 0 0 0 2px #5a3a20; transform: rotate(-10deg);
  animation: s3-lyre 5s ease-in-out infinite;
}
.scn-laws-sermon-vs-poem .lamp {
  position: absolute; bottom: 45%; left: 45%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffc080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: s3-lamp 4s ease-in-out infinite alternate;
}
@keyframes s3-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes s3-pulpit { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes s3-preacher { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes s3-poet { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes s3-lyre { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.05) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes s3-lamp { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.3; transform: scale(0.8) } }

/* Scene 4: laws-enmity-to-poets */
.scn-laws-enmity-to-poets {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%);
}
.scn-laws-enmity-to-poets .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e30 0%, #12121e 100%);
  animation: s4-sky 15s ease-in-out infinite alternate;
}
.scn-laws-enmity-to-poets .wall {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-laws-enmity-to-poets .gate {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: s4-gate 12s ease-in-out infinite;
}
.scn-laws-enmity-to-poets .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%);
  border-radius: 4px;
}
.scn-laws-enmity-to-poets .poet-figure {
  position: absolute; bottom: 10%; left: 35%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #12121a 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s4-walk 8s ease-in-out infinite;
}
.scn-laws-enmity-to-poets .scroll {
  position: absolute; bottom: 6%; left: 38%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: s4-scroll 5s ease-in-out infinite;
}
.scn-laws-enmity-to-poets .torch {
  position: absolute; bottom: 45%; left: 45%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #8a6a40 0%, #4a2a10 100%);
  border-radius: 2px; box-shadow: 0 0 20px rgba(255,150,60,.4);
}
.scn-laws-enmity-to-poets .torch::after {
  content: ''; position: absolute; top: -10px; left: -2px; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffa040 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: s4-torch 2s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes s4-gate { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes s4-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(-2deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes s4-scroll { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes s4-torch { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }

/* === more-excellent-way === */
.scn-more-excellent-way {
  background: 
    linear-gradient(180deg, #2a1e10 0%, #442e1a 30%, #5a3a22 50%, #3a2515 100%),
    radial-gradient(ellipse at 30% 60%, #c89050 0%, transparent 60%);
}
.scn-more-excellent-way .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a1008 100%);
  animation: mew-breathe 12s ease-in-out infinite alternate;
}
.scn-more-excellent-way .window-frame {
  position: absolute; top: 10%; left: 60%; width: 28%; height: 42%;
  border: 3px solid #5a3a20; border-radius: 4px;
  background: rgba(12,8,4,.3);
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-more-excellent-way .window-glow {
  position: absolute; top: 11%; left: 61%; width: 26%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #eed8b0 0%, transparent 70%);
  opacity: .15;
  animation: mew-moon 18s ease-in-out infinite alternate;
}
.scn-more-excellent-way .desk {
  position: absolute; bottom: 12%; left: 20%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -3px 8px rgba(0,0,0,.4);
}
.scn-more-excellent-way .candle {
  position: absolute; bottom: 20%; left: 40%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #eed8b0 20%, #c89050 60%, #5a3a22 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 18px 6px #c89050, 0 0 40px 12px rgba(200,144,80,.3);
  animation: mew-flicker 3s ease-in-out infinite alternate;
}
.scn-more-excellent-way .figure {
  position: absolute; bottom: 18%; left: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mew-meditate 7s ease-in-out infinite;
}
.scn-more-excellent-way .shadow {
  position: absolute; bottom: 12%; left: 22%; width: 40%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: mew-shade 7s ease-in-out infinite;
}
@keyframes mew-breathe { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes mew-moon { 0% { opacity: .1; transform: scaleY(1) } 50% { opacity: .25; transform: scaleY(1.05) } 100% { opacity: .15; transform: scaleY(1) } }
@keyframes mew-flicker { 0% { opacity: .8; transform: translateY(0) scaleY(1) } 30% { opacity: .95; transform: translateY(-1px) scaleY(1.02) } 60% { opacity: .75; transform: translateY(0) scaleY(1) } 100% { opacity: .9; transform: translateY(-.5px) scaleY(1.01) } }
@keyframes mew-meditate { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes mew-shade { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .5; transform: scaleX(1) } }

/* === more-platonic-spirit === */
.scn-more-platonic-spirit {
  background:
    linear-gradient(180deg, #261c12 0%, #3e2e1e 40%, #4a3828 70%, #2c2014 100%),
    radial-gradient(ellipse at 60% 40%, #b09060 0%, transparent 60%);
}
.scn-more-platonic-spirit .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a120a 60%, #0e0a06 100%);
  animation: mps-pulse 14s ease-in-out infinite alternate;
}
.scn-more-platonic-spirit .bookshelf {
  position: absolute; top: 12%; left: 8%; width: 34%; height: 50%;
  background: linear-gradient(180deg, #4a3020 0%, #3a2218 100%);
  border-radius: 2px; box-shadow: inset 0 0 12px rgba(0,0,0,.6);
  overflow: hidden;
}
.scn-more-platonic-spirit .bust {
  position: absolute; top: 20%; left: 46%; width: 18%; height: 24%;
  background: radial-gradient(circle at 50% 40%, #c8b898 0%, #a08068 50%, #5a4030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: mps-bust 9s ease-in-out infinite alternate;
}
.scn-more-platonic-spirit .lamp {
  position: absolute; top: 14%; left: 52%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #6a5030 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,168,112,.4), 0 0 60px 16px rgba(200,168,112,.15);
  animation: mps-lamp 4s ease-in-out infinite alternate;
}
.scn-more-platonic-spirit .scroll {
  position: absolute; top: 40%; left: 34%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #c8b898 0%, #a08870 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: mps-scroll 11s ease-in-out infinite alternate;
}
.scn-more-platonic-spirit .reader {
  position: absolute; bottom: 22%; left: 32%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mps-read 6s ease-in-out infinite;
}
.scn-more-platonic-spirit .shelf-shadow {
  position: absolute; top: 12%; left: 8%; width: 34%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: mps-shelf 14s ease-in-out infinite alternate;
}
@keyframes mps-pulse { 0% { opacity: .75 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mps-bust { 0% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.02) rotate(0deg) } 100% { transform: scale(1) rotate(2deg) } }
@keyframes mps-lamp { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .85; transform: scaleY(1) } }
@keyframes mps-scroll { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes mps-read { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(6px) rotate(3deg) } 60% { transform: translateX(12px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mps-shelf { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }

/* === more-ambassadors === */
.scn-more-ambassadors {
  background:
    linear-gradient(180deg, #2a1a12 0%, #442818 30%, #5a3420 60%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 60%, #d09860 0%, transparent 50%);
}
.scn-more-ambassadors .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a0e08 70%, #0e0602 100%);
  animation: mab-dim 13s ease-in-out infinite alternate;
}
.scn-more-ambassadors .ambassador {
  position: absolute; bottom: 20%; left: 38%; width: 32%; height: 48%;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 60%, #604018 100%);
  border-radius: 30% 30% 12% 12% / 40% 40% 12% 12%;
  box-shadow: 0 6px 15px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,215,100,.3);
  animation: mab-amb 8s ease-in-out infinite alternate;
}
.scn-more-ambassadors .feather {
  position: absolute; bottom: 60%; left: 46%; width: 10%; height: 24%;
  background: radial-gradient(circle at 60% 30%, #2080c0 0%, #106090 40%, #083050 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px 2px rgba(32,128,192,.4);
  animation: mab-feather 5s ease-in-out infinite alternate;
}
.scn-more-ambassadors .gold-chain {
  position: absolute; bottom: 42%; left: 44%; width: 12%; height: 6%;
  background: linear-gradient(90deg, #d0b060 0%, #f0d080 30%, #d0b060 60%, #b09040 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 2px rgba(240,208,128,.3);
  animation: mab-gold 4s ease-in-out infinite;
}
.scn-more-ambassadors .utopian {
  position: absolute; bottom: 18%; left: 16%; width: 16%; height: 34%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mab-utop 7s ease-in-out infinite;
}
.scn-more-ambassadors .utopian-shadow {
  position: absolute; bottom: 18%; left: 50%; width: 20%; height: 34%;
  background: linear-gradient(180deg, rgba(26,16,8,.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mab-utop-shade 7s ease-in-out infinite;
}
.scn-more-ambassadors .curtain {
  position: absolute; top: 0; left: 85%; width: 16%; height: 100%;
  background: linear-gradient(180deg, #6a3a20 0%, #4a2814 50%, #2a1408 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: mab-curtain 14s ease-in-out infinite alternate;
}
@keyframes mab-dim { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes mab-amb { 0% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.03) rotate(0) } 100% { transform: scale(1) rotate(2deg) } }
@keyframes mab-feather { 0% { transform: rotate(-15deg) scaleY(1); opacity:.9 } 50% { transform: rotate(-10deg) scaleY(1.1); opacity:1 } 100% { transform: rotate(-20deg) scaleY(1); opacity:.85 } }
@keyframes mab-gold { 0% { opacity: .6; transform: translateX(0) } 25% { opacity: .9; transform: translateX(4px) } 50% { opacity: .7; transform: translateX(8px) } 75% { opacity: 1; transform: translateX(4px) } 100% { opacity: .6; transform: translateX(0) } }
@keyframes mab-utop { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mab-utop-shade { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .2 } }
@keyframes mab-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* === more-children-and-pearls === */
.scn-more-children-and-pearls {
  background:
    linear-gradient(180deg, #1e1410 0%, #362218 30%, #4a2e1e 60%, #2a1a12 100%),
    radial-gradient(ellipse at 40% 70%, #b08850 0%, transparent 50%);
}
.scn-more-children-and-pearls .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a0e08 80%, #0e0602 100%);
  animation: mcp-breathe 15s ease-in-out infinite alternate;
}
.scn-more-children-and-pearls .mother {
  position: absolute; bottom: 18%; left: 28%; width: 26%; height: 36%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcp-mother 9s ease-in-out infinite;
}
.scn-more-children-and-pearls .child {
  position: absolute; bottom: 16%; left: 20%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcp-child 5s ease-in-out infinite;
}
.scn-more-children-and-pearls .child-arm {
  position: absolute; bottom: 30%; left: 28%; width: 8%; height: 4%;
  background: #3a2218;
  border-radius: 20% 80% 50% 50%;
  transform-origin: left center;
  animation: mcp-arm 4s ease-in-out infinite alternate;
}
.scn-more-children-and-pearls .pearl-1 {
  position: absolute; bottom: 12%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle at 30% 30%, #f0e8d0 0%, #c8b898 60%, #a08870 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,184,152,.5);
  animation: mcp-pearl1 8s ease-in-out infinite;
}
.scn-more-children-and-pearls .pearl-2 {
  position: absolute; bottom: 16%; left: 52%; width: 5px; height: 5px;
  background: radial-gradient(circle at 30% 30%, #f0e8d0 0%, #c8b898 60%, #a08870 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,184,152,.4);
  animation: mcp-pearl2 10s ease-in-out infinite;
}
.scn-more-children-and-pearls .pearl-3 {
  position: absolute; bottom: 10%; left: 36%; width: 4px; height: 4px;
  background: radial-gradient(circle at 30% 30%, #f0e8d0 0%, #c8b898 60%, #a08870 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,184,152,.3);
  animation: mcp-pearl3 12s ease-in-out infinite;
}
.scn-more-children-and-pearls .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.3);
}
.scn-more-children-and-pearls .light-rim {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 4px;
  background: radial-gradient(ellipse, #c8a870 0%, transparent 70%);
  opacity: .2;
  animation: mcp-light 7s ease-in-out infinite alternate;
}
@keyframes mcp-breathe { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mcp-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 mcp-child { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(6px) rotate(4deg) } 40% { transform: translateX(12px) rotate(-3deg) } 60% { transform: translateX(18px) rotate(2deg) } 80% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mcp-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes mcp-pearl1 { 0% { transform: translate(0,0); opacity:.7 } 50% { transform: translate(4px,-2px); opacity:.9 } 100% { transform: translate(0,0); opacity:.7 } }
@keyframes mcp-pearl2 { 0% { transform: translate(0,0); opacity:.6 } 50% { transform: translate(-3px,1px); opacity:.85 } 100% { transform: translate(0,0); opacity:.6 } }
@keyframes mcp-pearl3 { 0% { transform: translate(0,0); opacity:.5 } 50% { transform: translate(5px,2px); opacity:.8 } 100% { transform: translate(0,0); opacity:.5 } }
@keyframes mcp-light { 0% { opacity: .1; transform: scaleX(.9) } 50% { opacity: .25; transform: scaleX(1.1) } 100% { opacity: .15; transform: scaleX(1) } }

/* --- Scene 1: oligarchy-and-democracy-history --- */
.scn-oligarchy-and-democracy-history {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c1e1e 40%, #3a2a20 100%),
              radial-gradient(ellipse at 50% 10%, #2c1e1e 0%, transparent 60%);
}
.scn-oligarchy-and-democracy-history .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-oligarchy-and-democracy-history .column {
  position: absolute;
  bottom: 30%; left: 20%; width: 18px; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 10% / 20%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: odh-column 8s ease-in-out infinite;
}
.scn-oligarchy-and-democracy-history .scroll {
  position: absolute;
  bottom: 35%; left: 45%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 40% 40% 40% 40% / 100% 100% 100% 100%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: odh-scroll 6s ease-in-out infinite alternate;
}
.scn-oligarchy-and-democracy-history .lamp {
  position: absolute;
  bottom: 42%; left: 55%; width: 14px; height: 18px;
  background: radial-gradient(circle, #e8c060 0%, #b08030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: odh-lamp 3s ease-in-out infinite alternate;
}
.scn-oligarchy-and-democracy-history .figure {
  position: absolute;
  bottom: 28%; left: 30%; 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: odh-figure 5s ease-in-out infinite;
}
.scn-oligarchy-and-democracy-history .dust-1 {
  position: absolute;
  top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,240,200,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: odh-dust 15s linear infinite;
}
.scn-oligarchy-and-democracy-history .dust-2 {
  position: absolute;
  top: 50%; left: 70%; width: 3px; height: 3px;
  background: rgba(255,240,200,0.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: odh-dust 20s linear infinite;
  animation-delay: -5s;
}
@keyframes odh-column { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes odh-scroll { 0% { transform: rotate(-2deg) scaleY(1); } 100% { transform: rotate(2deg) scaleY(1.1); } }
@keyframes odh-lamp { 0% { opacity: 0.8; box-shadow: 0 0 16px 4px #c08040; } 50% { opacity: 1; box-shadow: 0 0 32px 10px #ffd060; } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px #c08040; } }
@keyframes odh-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 odh-dust { 0% { transform: translate(0, -10px); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(20px, -40px); opacity: 0; } }

/* --- Scene 2: portrait-of-tyrant --- */
.scn-portrait-of-tyrant {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0e08 40%, #2a1a12 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a12 0%, transparent 70%);
}
.scn-portrait-of-tyrant .throne {
  position: absolute;
  bottom: 15%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7), inset 0 -4px 8px rgba(255,140,60,0.1);
}
.scn-portrait-of-tyrant .tyrant {
  position: absolute;
  bottom: 25%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a02 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(255,100,0,0.4);
  animation: pty-tyrant 4s ease-in-out infinite;
}
.scn-portrait-of-tyrant .tyrant::after {
  content: '';
  position: absolute;
  top: -5px; left: 20%; width: 60%; height: 10px;
  background: #2a1a0a;
  border-radius: 50%;
  filter: blur(2px);
}
.scn-portrait-of-tyrant .torch-left {
  position: absolute;
  bottom: 30%; left: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-portrait-of-tyrant .torch-left::before {
  content: '';
  position: absolute;
  top: -12px; left: -5px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8030 0%, #c04000 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #ff6000;
  animation: pty-flame 0.8s ease-in-out infinite alternate;
}
.scn-portrait-of-tyrant .torch-right {
  position: absolute;
  bottom: 30%; right: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-portrait-of-tyrant .torch-right::before {
  content: '';
  position: absolute;
  top: -12px; left: -5px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8030 0%, #c04000 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #ff6000;
  animation: pty-flame 0.6s ease-in-out infinite alternate-reverse;
}
.scn-portrait-of-tyrant .pillar {
  position: absolute;
  bottom: 0; left: 10%; width: 15px; height: 90%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% / 20%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
}
.scn-portrait-of-tyrant .shadow-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: pty-shadow 5s ease-in-out infinite;
}
.scn-portrait-of-tyrant .crown {
  position: absolute;
  top: 22%; left: 46%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(255,180,80,0.6);
  animation: pty-crown 3s ease-in-out infinite;
}
@keyframes pty-tyrant { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes pty-flame { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.2) rotate(5deg); opacity: 1; } }
@keyframes pty-shadow { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes pty-crown { 0%,100% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.1); } }

/* --- Scene 3: democracy-follies --- */
.scn-democracy-follies {
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc0 30%, #d8c8a0 100%),
              radial-gradient(ellipse at 50% 80%, #d8c8a0 0%, transparent 70%);
}
.scn-democracy-follies .podium {
  position: absolute;
  bottom: 25%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a090 0%, #806050 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: df-podium 4s ease-in-out infinite alternate;
}
.scn-democracy-follies .figure-a {
  position: absolute;
  bottom: 15%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: df-fig 3s ease-in-out infinite;
}
.scn-democracy-follies .figure-b {
  position: absolute;
  bottom: 20%; left: 65%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: df-fig 3.5s ease-in-out infinite reverse;
}
.scn-democracy-follies .figure-c {
  position: absolute;
  bottom: 10%; left: 40%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #8a4a6a 0%, #6a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: df-fig 2.8s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-democracy-follies .speech-dot {
  position: absolute;
  bottom: 55%; left: 42%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0e800 0%, #a0a000 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(224,232,0,0.5);
  animation: df-dot 2s ease-in-out infinite;
}
.scn-democracy-follies .confetti-1 {
  position: absolute;
  top: 10%; left: 30%; width: 8px; height: 8px;
  background: #70c0e8;
  border-radius: 20% 80% 50% 50%;
  animation: df-confetti 5s linear infinite;
}
.scn-democracy-follies .confetti-2 {
  position: absolute;
  top: 20%; left: 60%; width: 6px; height: 10px;
  background: #e8a070;
  border-radius: 30% 70% 60% 40%;
  animation: df-confetti 6s linear infinite;
  animation-delay: -2s;
}
.scn-democracy-follies .confetti-3 {
  position: absolute;
  top: 5%; left: 80%; width: 10px; height: 6px;
  background: #80e880;
  border-radius: 50% 50% 30% 70%;
  animation: df-confetti 4.5s linear infinite;
  animation-delay: -4s;
}
@keyframes df-podium { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); } }
@keyframes df-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(8deg); } 70% { transform: translateY(2px) rotate(-5deg); } }
@keyframes df-dot { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes df-confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 100% { transform: translateY(80vh) rotate(720deg); opacity: 0; } }

/* --- Scene 4: ethical-gradation --- */
.scn-ethical-gradation {
  background: linear-gradient(180deg, #1a2030 0%, #243045 40%, #304050 100%),
              radial-gradient(ellipse at 50% 20%, #243045 0%, transparent 60%);
}
.scn-ethical-gradation .figure-med {
  position: absolute;
  bottom: 20%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(100,160,220,0.3);
  animation: eg-figure 8s ease-in-out infinite;
}
.scn-ethical-gradation .figure-med::before {
  content: '';
  position: absolute;
  top: 20%; left: 50%; width: 20px; height: 10px;
  transform: translateX(-50%);
  background: #1a2a3a;
  border-radius: 50% 50% 0 0;
}
.scn-ethical-gradation .book {
  position: absolute;
  bottom: 28%; left: 35%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: eg-book 6s ease-in-out infinite alternate;
}
.scn-ethical-gradation .sphere {
  position: absolute;
  bottom: 55%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle at 30% 30%, #c0d8f0 0%, #8090b0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(120,160,220,0.4);
  animation: eg-sphere 10s linear infinite;
}
.scn-ethical-gradation .light-rays {
  position: absolute;
  top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 80%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: eg-light 12s ease-in-out infinite alternate;
}
.scn-ethical-gradation .gradation-1 {
  position: absolute;
  bottom: 45%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, #4a6a8a 0%, #8aa0c0 50%, #4a6a8a 100%);
  border-radius: 2px;
  animation: eg-grad 4s ease-in-out infinite;
}
.scn-ethical-gradation .gradation-2 {
  position: absolute;
  bottom: 40%; left: 15%; right: 15%; height: 1px;
  background: linear-gradient(90deg, #3a5a7a 0%, #7a90b0 50%, #3a5a7a 100%);
  border-radius: 1px;
  animation: eg-grad 5s ease-in-out infinite;
  animation-delay: -1.5s;
}
.scn-ethical-gradation .gradation-3 {
  position: absolute;
  bottom: 35%; left: 20%; right: 20%; height: 1px;
  background: linear-gradient(90deg, #2a4a6a 0%, #6a80a0 50%, #2a4a6a 100%);
  border-radius: 1px;
  animation: eg-grad 6s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes eg-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes eg-book { 0% { transform: rotate(-2deg) scaleX(1); } 100% { transform: rotate(2deg) scaleX(1.05); } }
@keyframes eg-sphere { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes eg-light { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.9); } }
@keyframes eg-grad { 0%,100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.2); } }

.scn-socrates-questions-justice {
  background: 
    radial-gradient(ellipse at 50% 80%, rgba(255, 140, 50, 0.3) 0%, transparent 60%),
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
}
.scn-socrates-questions-justice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
  animation: soc1-floor 10s ease-in-out infinite;
}
.scn-socrates-questions-justice .wall-left {
  position: absolute; top: 0; left: 0; width: 50%; height: 70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
}
.scn-socrates-questions-justice .wall-right {
  position: absolute; top: 0; right: 0; width: 50%; height: 80%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
}
.scn-socrates-questions-justice .fireplace-flame {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #ffa040 0%, #cc6020 40%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  animation: soc1-fire 0.8s ease-in-out infinite alternate;
}
.scn-socrates-questions-justice .fire-glow {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,160,64,0.4) 0%, transparent 70%);
  animation: soc1-glow 3s ease-in-out infinite alternate;
}
.scn-socrates-questions-justice .socrates-profile {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-5deg);
  animation: soc1-figure 6s ease-in-out infinite alternate;
}
.scn-socrates-questions-justice .cephalus-profile {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  transform: rotate(3deg);
  animation: soc1-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-socrates-questions-justice .table-stand {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px;
  animation: soc1-table 15s ease-in-out infinite;
}
@keyframes soc1-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.9; transform: translateY(0); }
}
@keyframes soc1-fire {
  0% { transform: translateX(-50%) scaleY(0.9); }
  100% { transform: translateX(-50%) scaleY(1.2); }
}
@keyframes soc1-glow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes soc1-figure {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes soc1-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-cephalus-excuses {
  background: 
    radial-gradient(ellipse at 80% 70%, rgba(200,100,30,0.2) 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
}
.scn-cephalus-excuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 0 0 0;
}
.scn-cephalus-excuses .wall-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 72%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
}
.scn-cephalus-excuses .door-arch {
  position: absolute; top: 0; right: 10%; width: 50px; height: 100%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% / 20% 20% 0 0;
  animation: ce-door 20s ease-in-out infinite alternate;
}
.scn-cephalus-excuses .figure-leaving {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  transform: rotate(10deg);
  animation: ce-walk 6s ease-in-out infinite;
}
.scn-cephalus-excuses .figure-entering {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 50% 50% / 50% 50% 50% 50%;
  transform: rotate(-5deg);
  animation: ce-walk 6s ease-in-out infinite reverse;
}
.scn-cephalus-excuses .lamp-glow {
  position: absolute; bottom: 28%; left: 15%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #cc6020 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.5);
  animation: ce-lamp 4s ease-in-out infinite alternate;
}
.scn-cephalus-excuses .chair {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%;
  animation: ce-chair 12s ease-in-out infinite;
}
@keyframes ce-door {
  0% { opacity: 0.9; }
  50% { opacity: 0.5; }
  100% { opacity: 0.9; }
}
@keyframes ce-walk {
  0% { transform: rotate(10deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(-5px); }
  50% { transform: rotate(10deg) translateX(0); }
  75% { transform: rotate(15deg) translateX(5px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes ce-lamp {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ce-chair {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}

.scn-polemarchus-takes-over {
  background: 
    radial-gradient(ellipse at 50% 20%, rgba(200,150,50,0.15) 0%, transparent 70%),
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-polemarchus-takes-over .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-polemarchus-takes-over .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-polemarchus-takes-over .table-scrolls {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: pm-table 15s ease-in-out infinite;
}
.scn-polemarchus-takes-over .candle-flame {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #ffc040 0%, #ff8020 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: pm-candle 1.5s ease-in-out infinite alternate;
}
.scn-polemarchus-takes-over .candle-wax {
  position: absolute; bottom: 28%; left: 35%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-polemarchus-takes-over .figure-polemarchus {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 40% 40% 50% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  animation: pm-figure 7s ease-in-out infinite alternate;
}
.scn-polemarchus-takes-over .figure-socrates {
  position: absolute; bottom: 20%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  transform: rotate(-5deg);
  animation: pm-figure 7s ease-in-out infinite alternate-reverse;
}
.scn-polemarchus-takes-over .curtain-left {
  position: absolute; top: 0; left: 0; width: 30px; height: 70%;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 0 30% 30% 0;
  animation: pm-curtain 10s ease-in-out infinite alternate;
}
.scn-polemarchus-takes-over .curtain-right {
  position: absolute; top: 0; right: 0; width: 30px; height: 70%;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 30% 0 0 30%;
  animation: pm-curtain 10s ease-in-out infinite alternate-reverse;
}
@keyframes pm-table {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-1px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes pm-candle {
  0% { transform: scaleY(0.8); opacity: 0.8; }
  100% { transform: scaleY(1.2); opacity: 1; }
}
@keyframes pm-figure {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes pm-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(5px); }
}

.scn-exception-to-repayment {
  background: 
    radial-gradient(ellipse at 40% 50%, rgba(150,100,50,0.2) 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-exception-to-repayment .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-exception-to-repayment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0a0a 0%, #0a0000 100%);
}
.scn-exception-to-repayment .chest-open {
  position: absolute; bottom: 18%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 90%, 0 70%);
  animation: ex-chest 20s ease-in-out infinite;
}
.scn-exception-to-repayment .sword-object {
  position: absolute; bottom: 20%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(-30deg);
  animation: ex-sword 8s ease-in-out infinite alternate;
}
.scn-exception-to-repayment .figure-socrates {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: ex-figure 6s ease-in-out infinite alternate;
}
.scn-exception-to-repayment .figure-cephalus {
  position: absolute; bottom: 16%; right: 20%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  transform: rotate(8deg);
  animation: ex-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-exception-to-repayment .lamp-glow {
  position: absolute; bottom: 30%; right: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc040 0%, #cc6020 60%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(255,192,64,0.4);
  animation: ex-lamp 3s ease-in-out infinite alternate;
}
.scn-exception-to-repayment .shadow-effect {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes ex-chest {
  0% { transform: scale(1); }
  50% { transform: scale(1.03) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes ex-sword {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes ex-figure {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ex-lamp {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(1); }
}

.scn-god-representation {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2218 60%, #3a2a18 100%),
    radial-gradient(ellipse at 50% 55%, rgba(255,220,150,0.15) 0%, transparent 70%);
}
.scn-god-representation .bg-chamber {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0f0c08 0%, transparent 100%);
  animation: gr-chamber 20s ease-in-out infinite alternate;
}
.scn-god-representation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #2a1e14 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: gr-floor 18s ease-in-out infinite alternate;
}
.scn-god-representation .pillar-l,
.scn-god-representation .pillar-r {
  position: absolute; bottom: 22%; width: 5%; height: 65%;
  background: linear-gradient(90deg, #2a1e14 0%, #3a2a18 40%, #2a1e14 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gr-pillar 12s ease-in-out infinite alternate;
}
.scn-god-representation .pillar-l { left: 16%; }
.scn-god-representation .pillar-r { right: 16%; }
.scn-god-representation .altar {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 28%; height: 14%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
  animation: gr-altar 8s ease-in-out infinite alternate;
}
.scn-god-representation .light-orb {
  position: absolute; bottom: 34%; left: 50%; transform: translate(-50%, -50%);
  width: 8%; padding-bottom: 8%; border-radius: 50%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6), 0 0 60px 20px rgba(255,208,128,0.3);
  animation: gr-light 4s ease-in-out infinite alternate;
}
@keyframes gr-chamber { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes gr-floor { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.01) translateY(-2px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes gr-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes gr-altar { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.01) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes gr-light { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,208,128,0.5), 0 0 40px 10px rgba(255,208,128,0.2) } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.7), 0 0 80px 30px rgba(255,208,128,0.3) } 100% { opacity: 0.85; box-shadow: 0 0 25px 8px rgba(255,208,128,0.55), 0 0 50px 15px rgba(255,208,128,0.25) } }

.scn-god-unchangeable {
  background:
    linear-gradient(180deg, #0e0a0a 0%, #1a1412 50%, #2a1e18 100%),
    radial-gradient(ellipse at 40% 60%, rgba(100,80,60,0.1) 0%, transparent 80%);
}
.scn-god-unchangeable .cavern-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, transparent 0%, #0a0806 100%);
  animation: gu-deep 25s ease-in-out infinite alternate;
}
.scn-god-unchangeable .cavern-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: gu-wall 20s ease-in-out infinite alternate;
}
.scn-god-unchangeable .stone-block {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 22%;
  background: linear-gradient(135deg, #3a2e24 0%, #1e1612 100%);
  border-radius: 8% 8% 6% 6%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5), 0 10px 30px rgba(0,0,0,0.7);
  animation: gu-stone 30s ease-in-out infinite alternate;
}
.scn-god-unchangeable .mote {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(220,200,160,0.4) 0%, transparent 60%);
  width: 4px; height: 4px;
  animation: gu-mote 15s ease-in-out infinite;
}
.scn-god-unchangeable .mote.a { top: 20%; left: 20%; animation-duration: 18s; animation-delay: -4s; }
.scn-god-unchangeable .mote.b { top: 40%; left: 70%; animation-duration: 22s; animation-delay: -10s; width: 6px; height: 6px; }
.scn-god-unchangeable .mote.c { top: 15%; left: 50%; animation-duration: 12s; animation-delay: -1s; width: 3px; height: 3px; }
@keyframes gu-deep { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.65 } }
@keyframes gu-wall { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.01) translateY(-1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes gu-stone { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.002) rotate(0.5deg) } 100% { transform: translateX(-50%) scale(1) rotate(0deg) } }
@keyframes gu-mote { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4 } 33% { transform: translateY(-20px) translateX(5px) scale(1.2); opacity: 0.7 } 66% { transform: translateY(-10px) translateX(-3px) scale(0.8); opacity: 0.5 } 100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4 } }

.scn-god-true {
  background:
    linear-gradient(180deg, #0c0e10 0%, #181a1a 50%, #222428 100%),
    radial-gradient(ellipse at 50% 40%, rgba(180,180,200,0.05) 0%, transparent 70%);
}
.scn-god-true .bg-vault {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #101214 0%, transparent 100%);
  animation: gt-vault 30s ease-in-out infinite alternate;
}
.scn-god-true .arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2e30 0%, #181a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.5);
  animation: gt-arch 20s ease-in-out infinite alternate;
}
.scn-god-true .pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1c1e 0%, #0e1012 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.6);
  animation: gt-pool 15s ease-in-out infinite alternate;
}
.scn-god-true .reflection {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(180,180,200,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  transform: scaleY(0.6);
  animation: gt-reflect 12s ease-in-out infinite alternate;
}
.scn-god-true .ripple {
  position: absolute; bottom: 25%; border-radius: 50%;
  background: transparent;
  border: 1px solid rgba(180,180,200,0.15);
  width: 20px; height: 20px;
  animation: gt-ripple 6s ease-out infinite;
}
.scn-god-true .ripple.r1 { left: 30%; animation-delay: 0s; }
.scn-god-true .ripple.r2 { left: 60%; animation-delay: 3s; }
.scn-god-true .light-lantern {
  position: absolute; top: 18%; left: 50%; transform: translateX(-50%);
  width: 6%; height: 8%;
  background: radial-gradient(ellipse, #ffe0a0 0%, #c08040 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 15px rgba(255,224,160,0.4), 0 0 60px 30px rgba(255,224,160,0.15);
  animation: gt-lantern 5s ease-in-out infinite alternate;
}
@keyframes gt-vault { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.55 } }
@keyframes gt-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes gt-pool { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes gt-reflect { 0% { opacity: 0.3; filter: blur(6px) } 50% { opacity: 0.5; filter: blur(4px) } 100% { opacity: 0.35; filter: blur(5px) } }
@keyframes gt-ripple { 0% { transform: scale(0.5); opacity: 0.6 } 50% { transform: scale(1.5); opacity: 0.2 } 100% { transform: scale(2.5); opacity: 0 } }
@keyframes gt-lantern { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,224,160,0.3), 0 0 40px 20px rgba(255,224,160,0.1) } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,224,160,0.5), 0 0 80px 40px rgba(255,224,160,0.2) } 100% { opacity: 0.85; box-shadow: 0 0 25px 12px rgba(255,224,160,0.35), 0 0 50px 25px rgba(255,224,160,0.15) } }

.scn-primitive-state-recap {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a201c 50%, #1e1816 100%),
    radial-gradient(ellipse at 50% 60%, rgba(200,150,100,0.08) 0%, transparent 70%);
}
.scn-primitive-state-recap .cave-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0a0a 0%, transparent 100%);
  animation: ps-sky 25s ease-in-out infinite alternate;
}
.scn-primitive-state-recap .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1412 0%, #2a201c 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 40px rgba(0,0,0,0.5);
  animation: ps-ground 18s ease-in-out infinite alternate;
}
.scn-primitive-state-recap .fire {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 14%;
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #8a3a20 30%, transparent 60%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 -10px 40px 10px rgba(200,85,61,0.4), 0 -20px 80px 20px rgba(200,85,61,0.15);
  animation: ps-fire 3s ease-in-out infinite alternate;
}
.scn-primitive-state-recap .hut {
  position: absolute; bottom: 20%;
  width: 12%; height: 20%;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1612 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5), 0 6px 20px rgba(0,0,0,0.4);
  animation: ps-hut 10s ease-in-out infinite alternate;
}
.scn-primitive-state-recap .hut.a { left: 20%; animation-delay: 0s; }
.scn-primitive-state-recap .hut.b { right: 20%; animation-delay: -5s; }
.scn-primitive-state-recap .figure {
  position: absolute; bottom: 18%;
  width: 4%; height: 14%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ps-figure 8s ease-in-out infinite alternate;
}
.scn-primitive-state-recap .figure.sil-a { left: 35%; animation-delay: 0s; }
.scn-primitive-state-recap .figure.sil-b { right: 35%; animation-delay: -4s; }
@keyframes ps-sky { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.75 } }
@keyframes ps-ground { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.01) translateY(-1px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes ps-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity: 0.8 } 25% { transform: translateX(-50%) scaleY(1.06) rotate(0deg); opacity: 1 } 50% { transform: translateX(-50%) scaleY(0.95) rotate(2deg); opacity: 0.9 } 75% { transform: translateX(-50%) scaleY(1.03) rotate(-1deg); opacity: 1 } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity: 0.85 } }
@keyframes ps-hut { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes ps-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }

.scn-luxurious-state {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 60%);
}
.scn-luxurious-state .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b88a 100%);
  animation: lux-wall 16s ease-in-out infinite alternate;
}
.scn-luxurious-state .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 0 0 4% 4%;
  animation: lux-floor 12s ease-in-out infinite alternate;
}
.scn-luxurious-state .col-left {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f0e0c8 0%, #c8b090 50%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.1), -2px 0 6px rgba(0,0,0,0.05);
  animation: lux-column 20s ease-in-out infinite alternate;
}
.scn-luxurious-state .col-right {
  position: absolute; bottom: 20%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #f0e0c8 0%, #c8b090 50%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.1), -2px 0 6px rgba(0,0,0,0.05);
  animation: lux-column 20s ease-in-out infinite alternate-reverse;
}
.scn-luxurious-state .drape-a {
  position: absolute; top: 0; left: 20%; width: 60px; height: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #7a3010 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: lux-drape-a 8s ease-in-out infinite alternate;
}
.scn-luxurious-state .drape-b {
  position: absolute; top: 0; right: 20%; width: 60px; height: 45%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #7a3010 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: lux-drape-b 9s ease-in-out infinite alternate;
}
.scn-luxurious-state .dancer {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b090 60%, #b08860 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lux-dancer 5s ease-in-out infinite;
}
.scn-luxurious-state .easel {
  position: absolute; bottom: 24%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: lux-easel 14s ease-in-out infinite alternate;
}
.scn-luxurious-state .lyre {
  position: absolute; bottom: 26%; right: 22%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lux-lyre 7s ease-in-out infinite alternate;
}
@keyframes lux-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes lux-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes lux-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(0.995) } }
@keyframes lux-drape-a { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(0.5deg) scaleY(1.01) } 100% { transform: rotate(-0.3deg) scaleY(0.99) } }
@keyframes lux-drape-b { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(-0.5deg) scaleY(1.01) } 100% { transform: rotate(0.3deg) scaleY(0.99) } }
@keyframes lux-dancer { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } 25% { transform: translateX(-48%) rotate(1deg) scaleY(1.01) } 50% { transform: translateX(-52%) rotate(-1deg) scaleY(0.98) } 75% { transform: translateX(-47%) rotate(2deg) scaleY(1.01) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes lux-easel { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes lux-lyre { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-nature-of-guardians {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a484 100%),
    radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%);
}
.scn-nature-of-guardians .hall-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a484 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
  animation: ng-wall 18s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%);
  border-radius: 0 0 3% 3%;
  animation: ng-floor 14s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .guard-left {
  position: absolute; bottom: 22%; left: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a22 60%, #3a2a12 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ng-guard-l 6s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .guard-right {
  position: absolute; bottom: 22%; right: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a22 60%, #3a2a12 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ng-guard-r 6.5s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .hound-a {
  position: absolute; bottom: 20%; left: 32%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #a09078 0%, #8a7a62 60%, #6a5a42 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ng-hound-a 4s ease-in-out infinite;
}
.scn-nature-of-guardians .hound-b {
  position: absolute; bottom: 20%; right: 32%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 60%, #5a4a32 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ng-hound-b 4.5s ease-in-out infinite;
}
.scn-nature-of-guardians .spear-a {
  position: absolute; bottom: 40%; left: 22%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #a09078 0%, #6a5a42 50%, #4a3a22 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ng-spear-a 7s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .spear-b {
  position: absolute; bottom: 40%; right: 22%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #a09078 0%, #6a5a42 50%, #4a3a22 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ng-spear-b 7.5s ease-in-out infinite alternate;
}
.scn-nature-of-guardians .torch {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #d09030 60%, #a06010 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,0.5), 0 0 40px 12px rgba(240,192,96,0.2);
  animation: ng-torch 3s ease-in-out infinite alternate;
}
@keyframes ng-wall { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes ng-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(0.995) } }
@keyframes ng-guard-l { 0% { transform: translateX(0) translateY(0) rotate(-0.5deg) } 50% { transform: translateX(1px) translateY(-1px) rotate(0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ng-guard-r { 0% { transform: translateX(0) translateY(0) rotate(0.5deg) } 50% { transform: translateX(-1px) translateY(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ng-hound-a { 0% { transform: translateX(0) translateY(0) scaleX(1) } 25% { transform: translateX(3px) translateY(-1px) scaleX(1.01) } 50% { transform: translateX(5px) translateY(0) scaleX(0.99) } 75% { transform: translateX(2px) translateY(-1px) scaleX(1) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes ng-hound-b { 0% { transform: translateX(0) translateY(0) scaleX(1) } 25% { transform: translateX(-3px) translateY(-1px) scaleX(1.01) } 50% { transform: translateX(-5px) translateY(0) scaleX(0.99) } 75% { transform: translateX(-2px) translateY(-1px) scaleX(1) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes ng-spear-a { 0% { transform: rotate(-0.5deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.3deg) } }
@keyframes ng-spear-b { 0% { transform: rotate(0.5deg) } 50% { transform: rotate(-0.5deg) } 100% { transform: rotate(0.3deg) } }
@keyframes ng-torch { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.95); } }

.scn-education-of-guardians {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%);
}
.scn-education-of-guardians .room-wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
  animation: eg-wall 20s ease-in-out infinite alternate;
}
.scn-education-of-guardians .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 0 0 5% 5%;
  animation: eg-floor 15s ease-in-out infinite alternate;
}
.scn-education-of-guardians .lamplight {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09040 0%, #b07030 40%, #8a5020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(180,100,40,0.3), 0 0 120px 40px rgba(180,100,40,0.1);
  animation: eg-lamp 5s ease-in-out infinite alternate;
}
.scn-education-of-guardians .teacher {
  position: absolute; bottom: 26%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 2px rgba(180,100,40,0.2);
  animation: eg-teacher 8s ease-in-out infinite alternate;
}
.scn-education-of-guardians .student-a {
  position: absolute; bottom: 24%; left: 46%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 60%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: eg-stud-a 10s ease-in-out infinite alternate;
}
.scn-education-of-guardians .student-b {
  position: absolute; bottom: 24%; right: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 60%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: eg-stud-b 11s ease-in-out infinite alternate;
}
.scn-education-of-guardians .lyre-instr {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: eg-lyre 6s ease-in-out infinite alternate;
}
.scn-education-of-guardians .scroll {
  position: absolute; bottom: 18%; left: 38%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: eg-scroll 12s ease-in-out infinite alternate;
}
.scn-education-of-guardians .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: eg-shadow 20s ease-in-out infinite alternate;
}
@keyframes eg-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes eg-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(0.995) } }
@keyframes eg-lamp { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.03); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.97); } }
@keyframes eg-teacher { 0% { transform: translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform: translateX(-1px) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes eg-stud-a { 0% { transform: translateX(0) translateY(0) rotate(0.5deg); } 50% { transform: translateX(1px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes eg-stud-b { 0% { transform: translateX(0) translateY(0) rotate(0.5deg); } 50% { transform: translateX(-1px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes eg-lyre { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eg-scroll { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes eg-shadow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-censorship-of-myths {
  background:
    linear-gradient(180deg, #1a0a1a 0%, #2a0a2a 30%, #1a0a1a 60%, #0a000a 100%),
    radial-gradient(ellipse at 50% 50%, #3a1a3a 0%, transparent 70%);
}
.scn-censorship-of-myths .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a0a2a 0%, #1a0a1a 50%, #0a000a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  animation: cm-wall 12s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%);
  border-radius: 0 0 5% 5%;
  animation: cm-floor 16s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .zeus-figure {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a3a 0%, #2a0a2a 50%, #1a001a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 0 0 20px 4px rgba(100,40,100,0.3);
  transform-origin: bottom center;
  animation: cm-zeus 4s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .hephaestus {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a0a2a 0%, #1a001a 60%, #0a000a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cm-hep 3.5s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .chain-a {
  position: absolute; bottom: 40%; left: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a4a6a 0%, #3a1a3a 50%, #2a0a2a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: cm-chain-a 2s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .chain-b {
  position: absolute; bottom: 40%; left: 42%; width: 3px; height: 26px;
  background: linear-gradient(180deg, #6a4a6a 0%, #3a1a3a 50%, #2a0a2a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: cm-chain-b 2.3s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .lightning {
  position: absolute; top: 10%; left: 50%; width: 6px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a0c8 0%, #8a4a8a 40%, #4a1a4a 70%, transparent 100%);
  clip-path: polygon(50% 0%, 45% 35%, 55% 35%, 40% 70%, 50% 70%, 30% 100%, 55% 60%, 45% 60%, 60% 25%, 50% 25%);
  opacity: 0.6;
  animation: cm-bolt 3s ease-in-out infinite;
}
.scn-censorship-of-myths .altar {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a3a 0%, #2a0a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: cm-altar 20s ease-in-out infinite alternate;
}
.scn-censorship-of-myths .smoke {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 40px;
  background: radial-gradient(circle, rgba(100,60,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cm-smoke 7s ease-in-out infinite;
}
@keyframes cm-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cm-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(0.995) } }
@keyframes cm-zeus { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) scaleY(1) } 25% { transform: translateX(-48%) translateY(-2px) rotate(0.5deg) scaleY(1.01) } 50% { transform: translateX(-52%) translateY(0) rotate(-0.5deg) scaleY(0.99) } 75% { transform: translateX(-49%) translateY(-1px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) scaleY(1) } }
@keyframes cm-hep { 0% { transform: translateX(0) translateY(0) rotate(0.5deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0.3deg) } }
@keyframes cm-chain-a { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes cm-chain-b { 0% { transform: rotate(0.5deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0.3deg) } }
@keyframes cm-bolt { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.8); } 25% { opacity: 0.8; transform: translateX(-50%) scaleY(1.1); } 50% { opacity: 0.3; transform: translateX(-50%) scaleY(0.9); } 75% { opacity: 0.6; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.1; transform: translateX(-50%) scaleY(0.8); } }
@keyframes cm-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; } 25% { transform: translateY(-8px) translateX(3px) scale(1.2); opacity: 0.5; } 50% { transform: translateY(-16px) translateX(-2px) scale(1.4); opacity: 0.3; } 75% { transform: translateY(-24px) translateX(4px) scale(1.6); opacity: 0.2; } 100% { transform: translateY(-32px) translateX(-1px) scale(1.8); opacity: 0; } }

/* shepherd-only-for-sheep */
.scn-shepherd-only-for-sheep {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%), radial-gradient(ellipse at 30% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-shepherd-only-for-sheep .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  animation: sh-wall 20s ease-in-out infinite alternate;
}
.scn-shepherd-only-for-sheep .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
}
.scn-shepherd-only-for-sheep .window {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #0a1a2a 0%, #040a12 100%);
  border: 6px solid #3a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,220,160,0.1);
}
.scn-shepherd-only-for-sheep .candle {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 50%, #6a4a2a 100%);
  border-radius: 2px;
}
.scn-shepherd-only-for-sheep .candle-glow {
  position: absolute; bottom: 38%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: sh-glow 3s ease-in-out infinite alternate;
}
.scn-shepherd-only-for-sheep .shepherd {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-shepherd 6s ease-in-out infinite;
}
.scn-shepherd-only-for-sheep .sheep1,
.scn-shepherd-only-for-sheep .sheep2 {
  position: absolute; bottom: 18%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
}
.scn-shepherd-only-for-sheep .sheep1 { left: 60%; animation: sh-sheep 12s ease-in-out infinite; }
.scn-shepherd-only-for-sheep .sheep2 { left: 70%; animation: sh-sheep 12s ease-in-out infinite 2s; }

@keyframes sh-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sh-glow {
  0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); }
}
@keyframes sh-shepherd {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(2px) rotate(0deg); }
  70% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sh-sheep {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

/* rulers-not-willing */
.scn-rulers-not-willing {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 60%);
}
.scn-rulers-not-willing .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1010 100%);
  animation: rw-wall 15s ease-in-out infinite alternate;
}
.scn-rulers-not-willing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
}
.scn-rulers-not-willing .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-rulers-not-willing .figure-ruler {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rw-ruler 8s ease-in-out infinite;
}
.scn-rulers-not-willing .crown {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 12px;
  background: linear-gradient(180deg, #c8a84a 0%, #8a6a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rw-crown 4s ease-in-out infinite alternate;
}
.scn-rulers-not-willing .scepter {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #c8a84a 0%, #8a6a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rw-scepter 6s ease-in-out infinite;
}
.scn-rulers-not-willing .brazier {
  position: absolute; bottom: 20%; left: 80%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
}
.scn-rulers-not-willing .brazier-glow {
  position: absolute; bottom: 30%; left: 80%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ff8a40 0%, rgba(255,138,64,0.3) 40%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: rw-brazier 2s ease-in-out infinite alternate;
}

@keyframes rw-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rw-ruler {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes rw-crown {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rw-scepter {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes rw-brazier {
  0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

/* each-art-gives-good */
.scn-each-art-gives-good {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%), radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 70%);
}
.scn-each-art-gives-good .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a3a2a 0%, #1a1a0e 100%);
  animation: ea-wall 18s ease-in-out infinite alternate;
}
.scn-each-art-gives-good .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0e0e08 100%);
}
.scn-each-art-gives-good .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
}
.scn-each-art-gives-good .book {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 26px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: ea-book 6s ease-in-out infinite;
}
.scn-each-art-gives-good .lyre {
  position: absolute; bottom: 24%; left: 40%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #8a7a4a 0%, #5e4a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ea-lyre 5s ease-in-out infinite alternate;
}
.scn-each-art-gives-good .helmet {
  position: absolute; bottom: 24%; left: 60%; width: 28px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 10% 10%;
  animation: ea-helmet 7s ease-in-out infinite;
}
.scn-each-art-gives-good .scales {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 10px;
  background: linear-gradient(180deg, #8a7a4a 0%, #5e4a2a 100%);
  border-radius: 2px;
  animation: ea-scales 8s ease-in-out infinite;
}
.scn-each-art-gives-good .figure-philosopher {
  position: absolute; bottom: 22%; left: 30%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0e0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ea-philosopher 10s ease-in-out infinite;
}
.scn-each-art-gives-good .lamp {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a84a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(200,168,74,0.4);
  animation: ea-lamp 4s ease-in-out infinite alternate;
}

@keyframes ea-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ea-book {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ea-lyre {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes ea-helmet {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ea-scales {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ea-philosopher {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ea-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px rgba(200,168,74,0.3); }
  100% { opacity: 1; box-shadow: 0 0 25px 8px rgba(200,168,74,0.5); }
}

/* pay-not-part-of-art */
.scn-pay-not-part-of-art {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-pay-not-part-of-art .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  animation: pn-wall 14s ease-in-out infinite alternate;
}
.scn-pay-not-part-of-art .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
}
.scn-pay-not-part-of-art .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 110px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
}
.scn-pay-not-part-of-art .coins-pile {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #c8a84a 0%, #8a6a2a 50%, #5e4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pn-coins 8s ease-in-out infinite;
}
.scn-pay-not-part-of-art .hand {
  position: absolute; bottom: 26%; left: 45%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: pn-hand 6s ease-in-out infinite alternate;
}
.scn-pay-not-part-of-art .figure-merchant {
  position: absolute; bottom: 20%; left: 35%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pn-merchant 12s ease-in-out infinite;
}
.scn-pay-not-part-of-art .scale {
  position: absolute; bottom: 22%; left: 70%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #8a7a4a 0%, #5e4a2a 100%);
  border-radius: 4px;
  animation: pn-scale 7s ease-in-out infinite;
}
.scn-pay-not-part-of-art .bag {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  animation: pn-bag 9s ease-in-out infinite;
}
.scn-pay-not-part-of-art .candle {
  position: absolute; bottom: 32%; left: 20%; width: 6px; height: 36px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 50%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.4);
  animation: pn-candle 3s ease-in-out infinite alternate;
}

@keyframes pn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pn-coins {
  0% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
  50% { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
  100% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
}
@keyframes pn-hand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pn-merchant {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes pn-scale {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pn-bag {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes pn-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.05); }
}

.scn-utility-in-politics { background: linear-gradient(180deg, #1c1621 0%, #2a1f2e 50%, #3a2a3e 100%), radial-gradient(ellipse at 50% 80%, #4a3040 0%, transparent 70%); }
.scn-utility-in-politics .wall-back { position:absolute; inset:0 30% 0 0; background: linear-gradient(90deg, #2a1f2e 0%, #3a2a3e 100%); animation: utils-pulse 8s ease-in-out infinite; }
.scn-utility-in-politics .wall-side { position:absolute; inset:0 0 0 70%; background: linear-gradient(270deg, #1c1621 0%, #2a1f2e 100%); animation: utils-pulse 8s ease-in-out infinite reverse; }
.scn-utility-in-politics .table { position:absolute; left:50%; bottom:18%; width:160px; height:20px; 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,.5); }
.scn-utility-in-politics .lamp-glow { position:absolute; left:50%; bottom:45%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #b08030 50%, transparent 100%); border-radius:50%; animation: utils-glow 3s ease-in-out infinite alternate; }
.scn-utility-in-politics .lamp-body { position:absolute; left:50%; bottom:50%; width:14px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: utils-flicker 4s ease-in-out infinite; }
.scn-utility-in-politics .figure1 { position:absolute; left:30%; bottom:16%; width:24px; 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: utils-bob 5s ease-in-out infinite; }
.scn-utility-in-politics .figure2 { position:absolute; left:55%; bottom:16%; width:24px; 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: utils-bob 5s ease-in-out infinite 2.5s; }
.scn-utility-in-politics .shadow { position:absolute; left:50%; bottom:16%; width:120px; height:8px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: utils-sway 6s ease-in-out infinite; }
@keyframes utils-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes utils-glow { 0% { opacity:0.6; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.15) } 100% { opacity:0.7; transform:translateX(-50%) scale(0.95) } }
@keyframes utils-flicker { 0% { opacity:0.9; transform:translateX(-50%) scale(1) } 25% { opacity:1; transform:translateX(-50%) scale(1.05) } 50% { opacity:0.8; transform:translateX(-50%) scale(0.98) } 75% { opacity:1; transform:translateX(-50%) scale(1.02) } 100% { opacity:0.9; transform:translateX(-50%) scale(1) } }
@keyframes utils-bob { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes utils-sway { 0% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.2) } 100% { transform:translateX(-50%) scaleX(1) } }

.scn-notes-on-adeimantus-objection { background: linear-gradient(180deg, #1a1620 0%, #2a1f2e 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3040 0%, transparent 80%); }
.scn-notes-on-adeimantus-objection .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f2e 0%, #1a1620 100%); }
.scn-notes-on-adeimantus-objection .bookshelf { position:absolute; left:10%; top:10%; width:30%; height:70%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); animation: notes-shelf 20s ease-in-out infinite; }
.scn-notes-on-adeimantus-objection .desk { position:absolute; left:40%; bottom:15%; width:45%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-notes-on-adeimantus-objection .figure { position:absolute; left:50%; bottom:16%; width:22px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: notes-write 4s ease-in-out infinite; }
.scn-notes-on-adeimantus-objection .scroll { position:absolute; left:58%; bottom:28%; width:28px; height:18px; background: linear-gradient(180deg, #c8b08a 0%, #a08860 100%); border-radius:10% 10% 30% 30%; transform:rotate(10deg); animation: notes-unroll 6s ease-in-out infinite alternate; }
.scn-notes-on-adeimantus-objection .inkpot { position:absolute; left:48%; bottom:28%; width:10px; height:12px; background: #1a1a2a; border-radius:40% 40% 20% 20%; box-shadow: inset 0 -2px 4px rgba(255,255,255,.1); animation: notes-flicker 3s ease-in-out infinite; }
.scn-notes-on-adeimantus-objection .candle-glow { position:absolute; left:35%; bottom:40%; width:20px; height:24px; background: radial-gradient(circle, #f0c060 0%, #b08030 60%, transparent 100%); border-radius:50%; animation: notes-glow 4s ease-in-out infinite alternate; }
@keyframes notes-shelf { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes notes-write { 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 notes-unroll { 0% { transform:rotate(10deg) scaleY(1) } 50% { transform:rotate(12deg) scaleY(1.1) } 100% { transform:rotate(8deg) scaleY(0.95) } }
@keyframes notes-flicker { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes notes-glow { 0% { transform:scale(0.95); opacity:0.6 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(1); opacity:0.7 } }

.scn-socrates-seeks-justice { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 50%, #dcc4a4 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-socrates-seeks-justice .window { position:absolute; top:10%; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 50%, #fff4e0 0%, #dcc4a4 100%); border:6px solid #a08860; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(255,200,100,.3); animation: socr-light 10s ease-in-out infinite alternate; }
.scn-socrates-seeks-justice .sunbeam { position:absolute; top:10%; left:35%; width:30%; height:80%; background: linear-gradient(180deg, rgba(255,230,180,.4) 0%, transparent 100%); filter: blur(6px); animation: socr-beam 8s ease-in-out infinite; }
.scn-socrates-seeks-justice .column-l { position:absolute; top:20%; left:25%; width:8%; height:70%; background: linear-gradient(90deg, #b8a080 0%, #d8c4a4 30%, #c8b090 70%, #a08860 100%); border-radius:4% 4% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.2); }
.scn-socrates-seeks-justice .column-r { position:absolute; top:20%; right:25%; width:8%; height:70%; background: linear-gradient(270deg, #b8a080 0%, #d8c4a4 30%, #c8b090 70%, #a08860 100%); border-radius:4% 4% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2); }
.scn-socrates-seeks-justice .socrates { position:absolute; left:45%; bottom:15%; width:26px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: socr-search 5s ease-in-out infinite; }
.scn-socrates-seeks-justice .glaucon { position:absolute; left:55%; bottom:15%; width:22px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: socr-search 5s ease-in-out infinite 2.5s; }
.scn-socrates-seeks-justice .candle { position:absolute; left:38%; bottom:30%; width:8px; height:18px; background: linear-gradient(180deg, #f0c060 0%, #b08030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 4px #c08040, 0 0 40px 8px rgba(192,128,64,.3); animation: socr-candle 3s ease-in-out infinite alternate; }
@keyframes socr-light { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes socr-beam { 0% { opacity:0.3; transform:skewX(-5deg) } 50% { opacity:0.5; transform:skewX(0deg) } 100% { opacity:0.3; transform:skewX(5deg) } }
@keyframes socr-search { 0% { transform:translateX(-50%) translateY(0) rotate(-3deg) } 25% { transform:translateX(-50%) translateY(-4px) rotate(0deg) } 50% { transform:translateX(-50%) translateY(0) rotate(3deg) } 75% { transform:translateX(-50%) translateY(-4px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-3deg) } }
@keyframes socr-candle { 0% { transform:scaleY(0.95); opacity:0.8; box-shadow:0 0 15px 3px #c08040,0 0 30px 6px rgba(192,128,64,.2); } 50% { transform:scaleY(1.08); opacity:1; box-shadow:0 0 25px 6px #f0c060,0 0 50px 12px rgba(240,192,96,.4); } 100% { transform:scaleY(1); opacity:0.9; box-shadow:0 0 20px 4px #c08040,0 0 40px 8px rgba(192,128,64,.3); } }

.scn-wisdom-in-state { background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a8 50%, #d0b890 100%), radial-gradient(ellipse at 50% 80%, #ffe8c8 0%, transparent 70%); }
.scn-wisdom-in-state .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a08860 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); animation: wisdom-floor 12s ease-in-out infinite; }
.scn-wisdom-in-state .throne { position:absolute; left:50%; bottom:25%; width:60px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6040 0%, #5a3a1a 100%); border-radius:12% 12% 8% 8%; box-shadow: 4px 4px 12px rgba(0,0,0,.4), inset 0 -4px 0px rgba(255,200,100,.2); }
.scn-wisdom-in-state .wisdom { position:absolute; left:50%; bottom:30%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wisdom-gesture 6s ease-in-out infinite; }
.scn-wisdom-in-state .carpenter { position:absolute; left:20%; bottom:25%; width:10px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:30% 30% 20% 20%; transform:rotate(-15deg); animation: wisdom-tool 8s ease-in-out infinite; }
.scn-wisdom-in-state .metalworker { position:absolute; left:30%; bottom:25%; width:12px; height:16px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20% 20% 10% 10%; transform:rotate(10deg); animation: wisdom-tool 8s ease-in-out infinite 2s; }
.scn-wisdom-in-state .husbandman { position:absolute; left:70%; bottom:25%; width:14px; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; transform:rotate(-5deg); animation: wisdom-tool 8s ease-in-out infinite 4s; }
.scn-wisdom-in-state .window { position:absolute; top:10%; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e0c8a8 100%); border:4px solid #a08860; border-radius:6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(255,200,100,.2); }
.scn-wisdom-in-state .light-rays { position:absolute; top:10%; left:22%; width:56%; height:50%; background: repeating-linear-gradient(106deg, transparent 0px, transparent 12px, rgba(255,230,180,.15) 12px, rgba(255,230,180,.15) 16px); filter: blur(2px); animation: wisdom-rays 15s ease-in-out infinite alternate; }
@keyframes wisdom-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wisdom-gesture { 0% { transform:translateX(-50%) rotate(0deg) } 33% { transform:translateX(-50%) rotate(5deg) } 66% { transform:translateX(-50%) rotate(-5deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes wisdom-tool { 0% { transform:rotate(-15deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-2px) } 100% { transform:rotate(-15deg) translateY(0) } }
@keyframes wisdom-rays { 0% { opacity:0.3; transform:scaleY(0.95) } 50% { opacity:0.5; transform:scaleY(1.05) } 100% { opacity:0.35; transform:scaleY(1) } }

/* Scene: habit-and-philosophy */
.scn-habit-and-philosophy {
  background:
    radial-gradient(ellipse at 50% 120%, #2a1f14 0%, #1c140f 60%, transparent 80%),
    linear-gradient(180deg, #1e1814 0%, #2a2218 40%, #1e1814 100%);
}
.scn-habit-and-philosophy .window-bg {
  position: absolute; top: 8%; left: 18%; width: 30%; height: 35%;
  background: linear-gradient(180deg, rgba(150,160,200,0.08) 0%, rgba(150,160,200,0.02) 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 40px rgba(150,160,200,0.1);
  animation: hp-window 20s ease-in-out infinite alternate;
}
.scn-habit-and-philosophy .desk {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f14 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hp-desk 12s ease-in-out infinite alternate;
}
.scn-habit-and-philosophy .book {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 14%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-3deg);
  box-shadow: 2px 3px 8px rgba(0,0,0,0.4);
  animation: hp-book 8s ease-in-out infinite alternate;
}
.scn-habit-and-philosophy .candle {
  position: absolute; bottom: 28%; left: 64%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #b87860 0%, #7a5040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 8px #e8a870;
  animation: hp-candle 4s ease-in-out infinite;
}
.scn-habit-and-philosophy .chair {
  position: absolute; bottom: 10%; right: 22%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c140f 100%);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(30% 0%, 70% 0%, 75% 70%, 60% 100%, 40% 100%, 25% 70%);
  animation: hp-chair 15s ease-in-out infinite alternate;
}
.scn-habit-and-philosophy .figure {
  position: absolute; bottom: 18%; left: 32%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1c1814 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
@keyframes hp-window { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.02); } 100% { opacity:0.5; transform:scale(0.98); } }
@keyframes hp-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes hp-book { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-1px); } 100% { transform:rotate(-3deg) translateY(0); } }
@keyframes hp-candle { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(0.98); } }
@keyframes hp-chair { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-1px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes hp-figure { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }

/* Scene: freedom-of-will */
.scn-freedom-of-will {
  background:
    radial-gradient(ellipse at 40% 100%, #1e1814 0%, transparent 70%),
    linear-gradient(180deg, #2a2218 0%, #1c140f 50%, #12100a 100%);
}
.scn-freedom-of-will .bg-wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 70%;
  background: linear-gradient(180deg, #3a3024 0%, #2a2218 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
  animation: fw-wall 25s ease-in-out infinite alternate;
}
.scn-freedom-of-will .gate-left {
  position: absolute; bottom: 10%; left: 22%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f14 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: fw-gate 12s ease-in-out infinite alternate;
}
.scn-freedom-of-will .gate-right {
  position: absolute; bottom: 10%; right: 22%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f14 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: fw-gate 12s ease-in-out infinite alternate-reverse;
}
.scn-freedom-of-will .scale-pole {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 2%; height: 40%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: fw-pole 9s ease-in-out infinite;
}
.scn-freedom-of-will .scale-left {
  position: absolute; bottom: 34%; left: 34%; width: 14%; height: 8%;
  background: radial-gradient(circle at 50% 100%, #7a6048 0%, #4a3828 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fw-scale 6s ease-in-out infinite alternate;
}
.scn-freedom-of-will .scale-right {
  position: absolute; bottom: 34%; right: 34%; width: 14%; height: 8%;
  background: radial-gradient(circle at 50% 100%, #7a6048 0%, #4a3828 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fw-scale 6s ease-in-out infinite alternate-reverse;
}
.scn-freedom-of-will .figure {
  position: absolute; bottom: 12%; left: 46%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1c1814 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-figure 7s ease-in-out infinite;
}
.scn-freedom-of-will .lantern {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 50%, #f0c068 0%, #b08040 70%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.3);
  animation: fw-lantern 3s ease-in-out infinite alternate;
}
@keyframes fw-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fw-gate { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes fw-pole { 0% { transform:translateX(-50%) rotate(-0.5deg); } 50% { transform:translateX(-50%) rotate(0.5deg); } 100% { transform:translateX(-50%) rotate(-0.5deg); } }
@keyframes fw-scale { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fw-figure { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes fw-lantern { 0% { opacity:0.8; box-shadow: 0 0 18px 4px #c08040; } 50% { opacity:1; box-shadow: 0 0 32px 10px #ffd060; } 100% { opacity:0.9; box-shadow: 0 0 22px 5px #c08040; } }

/* Scene: first-choice-not-best */
.scn-first-choice-not-best {
  background:
    radial-gradient(ellipse at 50% 130%, #1e1814 0%, transparent 70%),
    linear-gradient(180deg, #2a2218 0%, #1c140f 50%, #12100a 100%);
}
.scn-first-choice-not-best .wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 65%;
  background: linear-gradient(180deg, #3a3024 0%, #2a2218 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  animation: fc-wall 20s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f14 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fc-table 14s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .scroll {
  position: absolute; bottom: 22%; left: 38%; width: 22%; height: 12%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 2px 3px 8px rgba(0,0,0,0.4);
  animation: fc-scroll 10s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .staff {
  position: absolute; bottom: 10%; left: 14%; width: 3%; height: 50%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(8deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: fc-staff 6s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .lamp {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #f0c068 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,0.4);
  animation: fc-lamp 4s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .stool {
  position: absolute; bottom: 10%; right: 22%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c140f 100%);
  border-radius: 10% 10% 6% 6%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 80%, 10% 80%);
  animation: fc-stool 12s ease-in-out infinite alternate;
}
.scn-first-choice-not-best .pilgrim {
  position: absolute; bottom: 16%; left: 28%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #1c1814 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-pilgrim 5s ease-in-out infinite;
}
@keyframes fc-wall { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fc-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes fc-scroll { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes fc-staff { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-1px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes fc-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 5px #c08040; } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd060; } 100% { opacity:0.9; box-shadow: 0 0 25px 6px #c08040; } }
@keyframes fc-stool { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes fc-pilgrim { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(3px) rotate(1.5deg); } 100% { transform:translateX(0) rotate(0); } }

/* Scene: precision-in-myth */
.scn-precision-in-myth {
  background:
    radial-gradient(ellipse at 50% 110%, #1e1814 0%, transparent 70%),
    linear-gradient(180deg, #2a2218 0%, #1c140f 50%, #12100a 100%);
}
.scn-precision-in-myth .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c140f 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: pm-floor 20s ease-in-out infinite alternate;
}
.scn-precision-in-myth .pedestal {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f14 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pm-pedestal 15s ease-in-out infinite alternate;
}
.scn-precision-in-myth .bowl {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 16%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.4);
  animation: pm-bowl 8s ease-in-out infinite alternate;
}
.scn-precision-in-myth .stone-a {
  position: absolute; bottom: 25%; left: 44%; width: 3%; height: 4%;
  background: radial-gradient(circle, #6a6048 0%, #3a3224 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pm-stone 6s ease-in-out infinite;
}
.scn-precision-in-myth .stone-b {
  position: absolute; bottom: 26%; left: 48%; width: 2.5%; height: 3.5%;
  background: radial-gradient(circle, #5a5240 0%, #2a241a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pm-stone 6s ease-in-out infinite 0.5s;
}
.scn-precision-in-myth .stone-c {
  position: absolute; bottom: 24%; left: 52%; width: 2.8%; height: 3.8%;
  background: radial-gradient(circle, #7a6a52 0%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pm-stone 6s ease-in-out infinite 1s;
}
.scn-precision-in-myth .hand {
  position: absolute; bottom: 28%; left: 44%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a241e 0%, #1c1814 100%);
  border-radius: 40% 40% 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 60%, 70% 100%, 30% 100%, 10% 60%);
  transform-origin: bottom center;
  animation: pm-hand 5s ease-in-out infinite;
}
.scn-precision-in-myth .candle {
  position: absolute; top: 14%; left: 50%; transform: translateX(-50%);
  width: 3%; height: 14%;
  background: linear-gradient(180deg, #b87860 0%, #7a5040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 8px #e8a870;
  animation: pm-candle 3s ease-in-out infinite;
}
@keyframes pm-floor { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pm-pedestal { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes pm-bowl { 0% { transform:translateX(-50%) rotate(0); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes pm-stone { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-1px) rotate(5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pm-hand { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(3px) rotate(2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pm-candle { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.03); } 100% { opacity:0.85; transform:scaleY(0.97); } }

.scn-gyges-ring {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 70%, #1a1a3e 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-gyges-ring .bg { position:absolute; inset:0; background: radial-gradient(circle at 35% 50%, #1e1e3a 0%, transparent 60%); }
.scn-gyges-ring .cave-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #0f0f1a 0%, transparent 100%); }
.scn-gyges-ring .cave-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #0f0f1a 0%, transparent 100%); }
.scn-gyges-ring .hand {
  position:absolute; bottom:15%; left:35%; width:100px; height:140px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 60%, #151525 100%);
  border-radius: 35% 30% 25% 25% / 60% 55% 40% 40%;
  animation: gyg1-hand 9s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-gyges-ring .ring {
  position:absolute; bottom:42%; left:50%; width:40px; height:14px;
  background: radial-gradient(circle, #d4a017 0%, #b8860b 60%, #8b6508 100%);
  border-radius: 50%; box-shadow: 0 0 25px 5px #d4a017;
  animation: gyg1-ring 4s ease-in-out infinite alternate;
}
.scn-gyges-ring .glow {
  position:absolute; bottom:38%; left:48%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(212,160,23,0.4) 0%, transparent 70%);
  border-radius: 50%; animation: gyg1-glow 3.5s ease-in-out infinite alternate;
}
.scn-gyges-ring .sparkle {
  position:absolute; top:20%; left:70%; width:4px; height:4px;
  background: #d4a017; border-radius: 50%;
  box-shadow: 0 0 8px #d4a017; animation: gyg1-sparkle 12s linear infinite;
}
@keyframes gyg1-hand { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }
@keyframes gyg1-ring { 0% { transform: rotate(0deg) scale(1); opacity:0.8; } 50% { transform: rotate(15deg) scale(1.1); opacity:1; } 100% { transform: rotate(-10deg) scale(0.95); opacity:0.7; } }
@keyframes gyg1-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes gyg1-sparkle { 0% { transform: translate(0, 0) scale(0); opacity:0; } 20% { transform: translate(-20px, -30px) scale(1); opacity:1; } 80% { transform: translate(40px, -80px) scale(0.5); opacity:0.6; } 100% { transform: translate(60px, -100px) scale(0); opacity:0; } }

.scn-gyges-descends {
  background: linear-gradient(180deg, #1e1e2e 0%, #12121b 50%, #08080c 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-gyges-descends .bg-shaft { position:absolute; inset:0; background: linear-gradient(180deg, #16162a 0%, #0a0a14 100%); }
.scn-gyges-descends .ledge {
  position:absolute; bottom:5%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: gyg2-ledge 20s ease-in-out infinite alternate;
}
.scn-gyges-descends .figure {
  position:absolute; top:10%; left:45%; width:18px; height:50px;
  background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 60%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg2-descend 14s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-gyges-descends .rope {
  position:absolute; top:0; left:48%; width:4px; height:100%;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%);
  border-radius: 2px; animation: gyg2-rope 6s ease-in-out infinite alternate;
  transform-origin: top center;
}
.scn-gyges-descends .light-beam {
  position:absolute; top:0%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: gyg2-light 5s ease-in-out infinite alternate;
}
.scn-gyges-descends .debris {
  position:absolute; bottom:25%; left:20%; width:10px; height:10px;
  background: #3a3a4a; border-radius: 50%;
  animation: gyg2-debris 8s linear infinite;
}
@keyframes gyg2-ledge { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(2px); } 100% { transform: scaleY(1.02); } }
@keyframes gyg2-descend { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(60vh) scale(0.9); } 100% { transform: translateY(0) scale(1); } }
@keyframes gyg2-rope { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes gyg2-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes gyg2-debris { 0% { transform: translate(0, 0) rotate(0deg); opacity:0.8; } 100% { transform: translate(40px, -120px) rotate(720deg); opacity:0; } }

.scn-ring-discovered {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 80%, #1e1e3e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-ring-discovered .bg-assembly { position:absolute; inset:0; background: radial-gradient(circle at 50% 70%, #23233a 0%, transparent 80%); }
.scn-ring-discovered .hand {
  position:absolute; bottom:15%; left:38%; width:90px; height:120px;
  background: linear-gradient(180deg, #2e2e44 0%, #1e1e32 60%, #141428 100%);
  border-radius: 30% 30% 20% 20% / 60% 55% 40% 40%;
  animation: gyg3-hand 10s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-ring-discovered .ring {
  position:absolute; bottom:38%; left:50%; width:34px; height:12px;
  background: radial-gradient(circle, #d4a017 0%, #b8860b 60%, #8b6508 100%);
  border-radius: 50%; box-shadow: 0 0 30px 6px #d4a017;
  animation: gyg3-ring 3.5s ease-in-out infinite alternate;
}
.scn-ring-discovered .glow {
  position:absolute; bottom:34%; left:48%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(212,160,23,0.35) 0%, transparent 70%);
  border-radius: 50%; animation: gyg3-glow 4s ease-in-out infinite alternate;
}
.scn-ring-discovered .shadow {
  position:absolute; bottom:10%; left:30%; width:120px; height:20px;
  background: radial-gradient(ellipse, #08080c 0%, transparent 100%);
  border-radius: 50%; animation: gyg3-shadow 9s ease-in-out infinite alternate;
}
.scn-ring-discovered .figure-left {
  position:absolute; bottom:15%; left:15%; width:30px; height:90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg3-figure 7s ease-in-out infinite alternate;
}
.scn-ring-discovered .figure-right {
  position:absolute; bottom:15%; right:15%; width:30px; height:90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg3-figure 7s ease-in-out infinite alternate-reverse;
}
@keyframes gyg3-hand { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(0deg) scale(0.97); } }
@keyframes gyg3-ring { 0% { transform: rotate(-5deg) scale(1); opacity:0.8; } 50% { transform: rotate(20deg) scale(1.15); opacity:1; } 100% { transform: rotate(-15deg) scale(0.9); opacity:0.7; } }
@keyframes gyg3-glow { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes gyg3-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.3; transform: scaleX(1.2); } 100% { opacity:0.6; transform: scaleX(0.9); } }
@keyframes gyg3-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-gyges-uses-ring {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 90%, #1e1e3e 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-gyges-uses-ring .bg-palace {
  position:absolute; inset:0; background: linear-gradient(180deg, #1e1e32 0%, #0f0f1a 100%);
}
.scn-gyges-uses-ring .throne {
  position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:120px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: gyg4-throne 8s ease-in-out infinite alternate;
}
.scn-gyges-uses-ring .king {
  position:absolute; bottom:20%; left:45%; width:30px; height:90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg4-king 12s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-gyges-uses-ring .queen {
  position:absolute; bottom:20%; left:55%; width:28px; height:80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg4-queen 10s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-gyges-uses-ring .gyges {
  position:absolute; bottom:15%; left:30%; width:32px; height:95px;
  background: linear-gradient(180deg, #2e2e44 0%, #1e1e32 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gyg4-approach 15s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-gyges-uses-ring .dagger {
  position:absolute; bottom:40%; left:38%; width:20px; height:50px;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 50%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 12px #c8553d;
  animation: gyg4-dagger 6s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-gyges-uses-ring .ring-glow {
  position:absolute; bottom:32%; left:35%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(212,160,23,0.5) 0%, transparent 70%);
  border-radius: 50%; animation: gyg4-ringglow 4s ease-in-out infinite alternate;
}
@keyframes gyg4-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes gyg4-king { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes gyg4-queen { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes gyg4-approach { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(40px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes gyg4-dagger { 0% { transform: translateY(0) rotate(-5deg); opacity:0.6; } 50% { transform: translateY(-10px) rotate(10deg); opacity:1; } 100% { transform: translateY(0) rotate(-5deg); opacity:0.6; } }
@keyframes gyg4-ringglow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(1); } }

/* posterity-rewards: dim interior, tense, scribe scene */
.scn-posterity-rewards {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0d0500 100%),
              radial-gradient(ellipse at 30% 60%, #4a2a10 0%, transparent 60%);
}
.scn-posterity-rewards .wall        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a0e05 0%, transparent 100%); }
.scn-posterity-rewards .desk        { position:absolute; bottom:12%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #4a2a1a 0%, #2a150a 100%); border-radius:4% 4% 0 0; box-shadow:0 -6px 20px rgba(0,0,0,.6); }
.scn-posterity-rewards .lamp        { position:absolute; bottom:34%; left:38%; width:16px; height:24px; background: radial-gradient(circle at 50% 20%, #d09050 0%, #8a5020 100%); border-radius:40% 40% 20% 20%; box-shadow:0 0 30px 8px #b07030; animation: pr-lampflicker 2s ease-in-out infinite; }
.scn-posterity-rewards .light-cone  { position:absolute; bottom:32%; left:36%; width:80px; height:60px; background: linear-gradient(180deg, rgba(200,150,100,.3) 0%, transparent 100%); clip-path: polygon(50% 0, 0% 100%, 100% 100%); transform-origin: top center; animation: pr-lightpulse 2.5s ease-in-out infinite; }
.scn-posterity-rewards .figure-torso{ position:absolute; bottom:25%; left:25%; width:40px; height:50px; background: linear-gradient(180deg, #2a150a 0%, #0d0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-posterity-rewards .figure-arm  { position:absolute; bottom:28%; left:28%; width:30px; height:8px; background: #1a0e05; border-radius:0 50% 50% 0; transform-origin: 0% 50%; animation: pr-armmove 4s ease-in-out infinite; }
.scn-posterity-rewards .scroll      { position:absolute; bottom:20%; left:35%; width:50px; height:14px; background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 100%); border-radius:30% 30% 20% 20%; animation: pr-scrollmove 6s ease-in-out infinite; }
.scn-posterity-rewards .inkpot      { position:absolute; bottom:22%; left:48%; width:12px; height:16px; background: #1a0a00; border-radius:50% 50% 40% 40%; box-shadow:inset 0 2px 4px rgba(0,0,0,.5); }
.scn-posterity-rewards .shadow      { position:absolute; bottom:14%; left:20%; right:20%; height:8%; background: rgba(0,0,0,.6); filter:blur(8px); animation: pr-shadowsway 7s ease-in-out infinite; }

@keyframes pr-lampflicker { 0% { opacity: .8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: .75; transform: scaleY(0.95); } }
@keyframes pr-lightpulse   { 0% { opacity: .5; transform: scaleX(0.95); } 50% { opacity: .85; transform: scaleX(1); } 100% { opacity: .45; transform: scaleX(0.9); } }
@keyframes pr-armmove      { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8px, -3px) rotate(6deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pr-shadowsway   { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes pr-scrollmove   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* prose-writers-too: dim interior, speaker at podium */
.scn-prose-writers-too {
  background: linear-gradient(180deg, #1f1308 0%, #0e0803 50%, #050200 100%),
              radial-gradient(ellipse at 50% 80%, #3a1f0c 0%, transparent 70%);
}
.scn-prose-writers-too .bg-wall        { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0e05 0%, transparent 100%); }
.scn-prose-writers-too .podium        { position:absolute; bottom:20%; left:45%; width:48px; height:28px; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius:10% 10% 5% 5%; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-prose-writers-too .speaker-figure{ position:absolute; bottom:28%; left:42%; width:36px; height:50px; background: linear-gradient(180deg, #2a150a 0%, #0d0500 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; animation: pw-figuresway 5s ease-in-out infinite; }
.scn-prose-writers-too .open-book     { position:absolute; bottom:22%; left:47%; width:32px; height:20px; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius:20% 20% 10% 10%; transform: perspective(40px) rotateX(5deg); }
.scn-prose-writers-too .candle        { position:absolute; bottom:32%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #f0d090 0%, #d0a060 50%, #8a6020 100%); border-radius:30%; }
.scn-prose-writers-too .candle-glow   { position:absolute; bottom:30%; left:45%; width:24px; height:24px; background: radial-gradient(circle, rgba(240,200,120,.5) 0%, transparent 100%); animation: pw-candleflicker 1.8s ease-in-out infinite; }
.scn-prose-writers-too .dust          { position:absolute; bottom:40%; left:30%; width:6px; height:6px; background: rgba(200,180,150,.3); border-radius:50%; filter: blur(2px); animation: pw-dustfloat 12s linear infinite; animation-delay: 0s; }
.scn-prose-writers-too .motes         { position:absolute; bottom:40%; left:30%; width:6px; height:6px; background: rgba(200,180,150,.3); border-radius:50%; filter: blur(2px); animation: pw-dustfloat 15s linear infinite; animation-delay: -5s; }

@keyframes pw-figuresway   { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pw-candleflicker{ 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: .65; transform: scale(0.97); } }
@keyframes pw-dustfloat    { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .3; } 50% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity: .6; } 100% { transform: translateY(-40px) translateX(20px) scale(0.8); opacity: .1; } }

/* gods-apportion: dim chamber, kneeling figure with weight */
.scn-gods-apportion {
  background: linear-gradient(180deg, #1a0a05 0%, #0d0502 40%, #050200 100%),
              radial-gradient(ellipse at 50% 50%, #2a150a 0%, transparent 50%);
}
.scn-gods-apportion .chamber         { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1f0e06 0%, #0a0300 100%); }
.scn-gods-apportion .altar           { position:absolute; bottom:18%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%); border-radius:10% 10% 0 0; box-shadow:0 -10px 30px rgba(0,0,0,.8); }
.scn-gods-apportion .kneeling-figure{ position:absolute; bottom:12%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #1a0a00 0%, #0d0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: ga-figuretremble 3s ease-in-out infinite; }
.scn-gods-apportion .chains         { position:absolute; bottom:18%; left:48%; width:20px; height:30px; border:2px solid #5a3a1a; border-radius:0 0 50% 50%; border-top:none; animation: ga-chainsway 4s ease-in-out infinite; }
.scn-gods-apportion .weight         { position:absolute; bottom:10%; left:46%; width:24px; height:24px; background: #2a1508; border-radius:50% 50% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: ga-weightdangle 4s ease-in-out infinite; }
.scn-gods-apportion .torch          { position:absolute; bottom:40%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #8a6020 100%); border-radius:30%; }
.scn-gods-apportion .torch-glow     { position:absolute; bottom:38%; left:27%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,150,80,.6) 0%, transparent 100%); animation: ga-torchflicker 2.2s ease-in-out infinite; }
.scn-gods-apportion .shadow-pillar  { position:absolute; bottom:0; left:60%; width:40px; height:60%; background: rgba(0,0,0,.4); filter:blur(10px); animation: ga-pillarslide 8s ease-in-out infinite; }

@keyframes ga-figuretremble { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ga-chainsway     { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes ga-weightdangle  { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px, -2px) rotate(6deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ga-torchflicker  { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .6; transform: scale(0.95); } }
@keyframes ga-pillarslide   { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }

/* poets-on-virtue: dim interior, archway path, walking figure */
.scn-poets-on-virtue {
  background: linear-gradient(180deg, #1f1208 0%, #0e0602 50%, #050200 100%),
              radial-gradient(ellipse at 50% 30%, #3a1a0a 0%, transparent 70%);
}
.scn-poets-on-virtue .room            { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); }
.scn-poets-on-virtue .arch            { position:absolute; bottom:30%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #2a1508 0%, #1a0a00 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.6); }
.scn-poets-on-virtue .path-floor      { position:absolute; bottom:0; left:22%; right:22%; height:30%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius:30% 30% 0 0; }
.scn-poets-on-virtue .walking-figure  { position:absolute; bottom:18%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #1a0a00 0%, #0d0500 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; animation: pv-walk 4s ease-in-out infinite; }
.scn-poets-on-virtue .signpost        { position:absolute; bottom:28%; left:55%; width:8px; height:28px; background: #2a1508; border-radius:10%; }
.scn-poets-on-virtue .lantern         { position:absolute; bottom:32%; left:50%; width:8px; height:12px; background: radial-gradient(circle at 50% 50%, #d09050 0%, #8a5020 100%); border-radius:30%; box-shadow:0 0 20px 4px #b07030; animation: pv-lanternflicker 1.6s ease-in-out infinite; }
.scn-poets-on-virtue .lantern-glow    { position:absolute; bottom:30%; left:47%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,150,80,.4) 0%, transparent 100%); animation: pv-glowpulse 2s ease-in-out infinite; }
.scn-poets-on-virtue .shadow-blot     { position:absolute; bottom:10%; left:40%; width:60px; height:8px; background: rgba(0,0,0,.5); filter:blur(6px); animation: pv-shadowblot 6s ease-in-out infinite; }

@keyframes pv-walk           { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(30px) translateY(0) rotate(0deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(60px) translateY(0) rotate(0deg); } }
@keyframes pv-lanternflicker  { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } 100% { opacity: .7; transform: scale(0.96); } }
@keyframes pv-glowpulse       { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .4; transform: scale(0.95); } }
@keyframes pv-shadowblot      { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1); } }

.scn-more-tolerance { background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 40%, #4a3520 70%, #3d2a1a 100%), radial-gradient(ellipse at 50% 20%, #4a3520 0%, transparent 70%); }
.scn-more-tolerance { position: relative; overflow: hidden; min-height: 100vh; }
.scn-more-tolerance .wall-panel { position: absolute; inset: 8% 10% 20% 10%; background: linear-gradient(135deg, #5a3f28 0%, #4a3520 50%, #3d2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,0.5); opacity: 0.9; animation: mt-wall 20s ease-in-out infinite alternate; }
.scn-more-tolerance .writing-desk { position: absolute; bottom: 12%; left: 20%; width: 55%; height: 18%; background: linear-gradient(180deg, #6a4f30 0%, #4a3520 50%, #3a2510 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 8px 30px rgba(0,0,0,0.6); transform-origin: bottom center; animation: mt-desk 12s ease-in-out infinite; }
.scn-more-tolerance .candle { position: absolute; bottom: 28%; left: 35%; width: 8px; height: 28px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 60%, #a08860 100%); border-radius: 3px 3px 2px 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); transform-origin: bottom center; animation: mt-candle 5s ease-in-out infinite; }
.scn-more-tolerance .candle-flame { position: absolute; bottom: 46%; left: 35%; width: 10px; height: 18px; margin-left: -1px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ffa040 40%, #ff6010 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 40px 20px rgba(255,160,64,0.4), 0 0 80px 40px rgba(255,160,64,0.15); animation: mt-flame 0.4s ease-in-out infinite alternate; }
.scn-more-tolerance .parchment { position: absolute; bottom: 14%; left: 30%; width: 32%; height: 14%; background: linear-gradient(135deg, #f0e6d0 0%, #e8dcc4 40%, #d4c4a8 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 12px rgba(0,0,0,0.3); transform: rotate(-2deg); animation: mt-parchment 8s ease-in-out infinite; }
.scn-more-tolerance .inkwell { position: absolute; bottom: 16%; left: 64%; width: 14px; height: 16px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 60%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,255,0.05); animation: mt-inkwell 15s ease-in-out infinite; }
.scn-more-tolerance .quill { position: absolute; bottom: 22%; left: 60%; width: 4px; height: 40px; background: linear-gradient(180deg, #f0e8e0 0%, #d8ccc0 50%, #c0b0a0 100%); border-radius: 2px 2px 40% 40%; transform: rotate(15deg); transform-origin: 50% 90%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: mt-quill 4s ease-in-out infinite alternate; }
.scn-more-tolerance .shadow-figure { position: absolute; bottom: 18%; right: 16%; width: 60px; height: 90px; background: radial-gradient(ellipse at 50% 60%, rgba(20,15,10,0.7) 0%, rgba(20,15,10,0.4) 60%, transparent 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; filter: blur(3px); animation: mt-shadow 10s ease-in-out infinite alternate; }
@keyframes mt-wall { 0% { opacity: 0.85; transform: scale(1); } 50% { opacity: 0.95; transform: scale(1.01); } 100% { opacity: 0.88; transform: scale(0.99); } }
@keyframes mt-desk { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes mt-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes mt-flame { 0% { transform: scaleX(1) scaleY(1) translateY(0); opacity: 0.9; } 30% { transform: scaleX(1.1) scaleY(0.9) translateY(-2px); opacity: 1; } 60% { transform: scaleX(0.9) scaleY(1.1) translateY(-1px); opacity: 0.95; } 100% { transform: scaleX(1.05) scaleY(0.95) translateY(0); opacity: 0.92; } }
@keyframes mt-parchment { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2.5deg) translateY(0); } }
@keyframes mt-inkwell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes mt-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(14deg) translateY(0); } }
@keyframes mt-shadow { 0% { opacity: 0.3; transform: translateX(0) translateY(0); } 50% { opacity: 0.5; transform: translateX(-4px) translateY(-2px); } 100% { opacity: 0.35; transform: translateX(2px) translateY(0); } }

.scn-more-father-of-all { background: linear-gradient(180deg, #1e1812 0%, #2a2018 35%, #3a2a1e 60%, #2a2018 100%), radial-gradient(ellipse at 60% 30%, #3a2a1e 0%, transparent 70%); }
.scn-more-father-of-all { position: relative; overflow: hidden; min-height: 100vh; }
.scn-more-father-of-all .wall-drape { position: absolute; inset: 0; background: linear-gradient(135deg, #2a2018 0%, #3a2a1e 30%, #2a2018 60%, #1e1812 100%); box-shadow: inset 0 0 120px rgba(0,0,0,0.6); animation: mfa-drape 25s ease-in-out infinite alternate; }
.scn-more-father-of-all .curtain-left { position: absolute; top: 0; left: 0; width: 22%; height: 100%; background: linear-gradient(180deg, #4a3020 0%, #5a3a28 30%, #4a3020 60%, #3a2218 100%); border-radius: 0 40% 60% 0 / 0 20% 30% 0; box-shadow: 8px 0 30px rgba(0,0,0,0.5); transform-origin: left center; animation: mfa-curtain-l 14s ease-in-out infinite alternate; }
.scn-more-father-of-all .curtain-right { position: absolute; top: 0; right: 0; width: 18%; height: 100%; background: linear-gradient(180deg, #4a3020 0%, #5a3a28 30%, #4a3020 60%, #3a2218 100%); border-radius: 40% 0 0 60% / 20% 0 0 30%; box-shadow: -8px 0 30px rgba(0,0,0,0.5); transform-origin: right center; animation: mfa-curtain-r 16s ease-in-out infinite alternate; }
.scn-more-father-of-all .podium { position: absolute; bottom: 15%; left: 50%; width: 40%; height: 20%; transform: translateX(-50%); background: linear-gradient(180deg, #6a4f38 0%, #5a3f28 40%, #4a3020 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.5); animation: mfa-podium 20s ease-in-out infinite; }
.scn-more-father-of-all .veil { position: absolute; bottom: 28%; left: 50%; width: 30%; height: 50%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(200,180,160,0.25) 0%, rgba(180,160,140,0.15) 50%, rgba(160,140,120,0.08) 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; filter: blur(2px); box-shadow: 0 0 40px rgba(200,180,160,0.1); animation: mfa-veil 8s ease-in-out infinite alternate; }
.scn-more-father-of-all .veil-figure { position: absolute; bottom: 18%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, rgba(30,22,18,0.8) 0%, rgba(40,30,24,0.6) 50%, transparent 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(4px); animation: mfa-figure 12s ease-in-out infinite alternate; }
.scn-more-father-of-all .lantern-top { position: absolute; top: 18%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7040 0%, #6a5028 40%, #5a4020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 0 30px rgba(200,160,80,0.3); animation: mfa-lantern 6s ease-in-out infinite alternate; }
.scn-more-father-of-all .lantern-glow { position: absolute; top: 22%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,160,80,0.15) 0%, rgba(200,160,80,0.05) 40%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: mfa-glow 4s ease-in-out infinite alternate; }
@keyframes mfa-drape { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes mfa-curtain-l { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(-4px); } 100% { transform: scaleX(0.98) translateX(2px); } }
@keyframes mfa-curtain-r { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(4px); } 100% { transform: scaleX(0.98) translateX(-2px); } }
@keyframes mfa-podium { 0% { transform: translateX(-50%) translateY(0) rotate(-0.3deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(0.3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-0.2deg); } }
@keyframes mfa-veil { 0% { opacity: 0.6; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.8; transform: translateX(-50%) scaleY(1.02); } 100% { opacity: 0.65; transform: translateX(-50%) scaleY(0.98); } }
@keyframes mfa-figure { 0% { opacity: 0.4; transform: translateX(-50%) scaleY(1) translateY(0); } 50% { opacity: 0.55; transform: translateX(-50%) scaleY(1.01) translateY(-2px); } 100% { opacity: 0.45; transform: translateX(-50%) scaleY(0.99) translateY(0); } }
@keyframes mfa-lantern { 0% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 20px rgba(200,160,80,0.2); } 50% { transform: translateX(-50%) rotate(2deg); box-shadow: 0 0 40px rgba(200,160,80,0.4); } 100% { transform: translateX(-50%) rotate(-1deg); box-shadow: 0 0 25px rgba(200,160,80,0.25); } }
@keyframes mfa-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.55; transform: translateX(-50%) scale(0.95); } }

.scn-more-advanced-opinions { background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 35%, #4a3520 65%, #3d2a1a 100%), radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 70%); }
.scn-more-advanced-opinions { position: relative; overflow: hidden; min-height: 100vh; }
.scn-more-advanced-opinions .chamber-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 40%, #3a2a1a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,0.5); animation: mao-wall 30s ease-in-out infinite alternate; }
.scn-more-advanced-opinions .hearth-stone { position: absolute; bottom: 8%; left: 8%; width: 30%; height: 10%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 4px 20px rgba(0,0,0,0.5); animation: mao-hearth 25s ease-in-out infinite; }
.scn-more-advanced-opinions .fire-glow { position: absolute; bottom: 12%; left: 12%; width: 18%; height: 18%; background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,0.3) 0%, rgba(200,120,40,0.1) 40%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: mao-fire 3s ease-in-out infinite alternate; }
.scn-more-advanced-opinions .table-round { position: absolute; bottom: 12%; left: 50%; width: 55%; height: 22%; transform: translateX(-50%); background: linear-gradient(180deg, #6a4f30 0%, #4a3520 40%, #3a2510 100%); border-radius: 30% 30% 15% 15% / 50% 50% 25% 25%; box-shadow: 0 8px 40px rgba(0,0,0,0.5); animation: mao-table 18s ease-in-out infinite; }
.scn-more-advanced-opinions .debater-left { position: absolute; bottom: 20%; left: 28%; width: 40px; height: 65px; background: radial-gradient(ellipse at 50% 40%, rgba(40,30,20,0.8) 0%, rgba(30,22,16,0.5) 60%, transparent 100%); border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; filter: blur(1px); animation: mao-debater-l 6s ease-in-out infinite alternate; }
.scn-more-advanced-opinions .debater-right { position: absolute; bottom: 20%; right: 28%; width: 45px; height: 70px; background: radial-gradient(ellipse at 50% 40%, rgba(50,38,28,0.8) 0%, rgba(40,30,20,0.5) 60%, transparent 100%); border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; filter: blur(1px); animation: mao-debater-r 7s ease-in-out infinite alternate; }
.scn-more-advanced-opinions .wine-cup { position: absolute; bottom: 16%; left: 46%; width: 14px; height: 18px; background: linear-gradient(180deg, #8a6040 0%, #6a4828 50%, #5a3818 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: mao-cup 9s ease-in-out infinite; }
.scn-more-advanced-opinions .shadow-arch { position: absolute; top: 5%; left: 15%; width: 70%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(20,15,10,0.3) 0%, transparent 70%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(10px); animation: mao-arch 20s ease-in-out infinite alternate; }
@keyframes mao-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.88; } }
@keyframes mao-hearth { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes mao-fire { 0% { opacity: 0.6; transform: scale(1) translateY(0); } 30% { opacity: 0.9; transform: scale(1.1) translateY(-2px); } 60% { opacity: 0.7; transform: scale(0.9) translateY(0); } 100% { opacity: 0.65; transform: scale(1.05) translateY(-1px); } }
@keyframes mao-table { 0% { transform: translateX(-50%) translateY(0) rotate(-0.3deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(0.2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-0.2deg); } }
@keyframes mao-debater-l { 0% { transform: translateX(0) rotate(-2deg); opacity: 0.7; } 30% { transform: translateX(3px) rotate(-1deg); opacity: 0.85; } 60% { transform: translateX(-2px) rotate(0deg); opacity: 0.75; } 100% { transform: translateX(0) rotate(-2deg); opacity: 0.72; } }
@keyframes mao-debater-r { 0% { transform: translateX(0) rotate(2deg); opacity: 0.7; } 30% { transform: translateX(-3px) rotate(1deg); opacity: 0.8; } 60% { transform: translateX(2px) rotate(0deg); opacity: 0.75; } 100% { transform: translateX(0) rotate(2deg); opacity: 0.72; } }
@keyframes mao-cup { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes mao-arch { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.35; transform: scaleY(0.9); } }

.scn-more-prophetic { background: linear-gradient(180deg, #1e1812 0%, #2a2018 30%, #3a2a1e 55%, #2a2018 100%), radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 70%); }
.scn-more-prophetic { position: relative; overflow: hidden; min-height: 100vh; }
.scn-more-prophetic .cell-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 50%, #3a2a1a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.5); animation: mpr-wall 35s ease-in-out infinite alternate; }
.scn-more-prophetic .shelf-books { position: absolute; top: 12%; left: 6%; width: 88%; height: 20%; background: repeating-linear-gradient(90deg, #8a7050 0px, #8a7050 8px, #7a6040 8px, #7a6040 16px, #9a8060 16px, #9a8060 24px, #6a5030 24px, #6a5030 32px); border-radius: 2px; box-shadow: 0 4px 20px rgba(0,0,0,0.4), inset 0 2px 10px rgba(255,255,255,0.05); transform-origin: center top; animation: mpr-shelf 30s ease-in-out infinite; }
.scn-more-prophetic .basin-stone { position: absolute; bottom: 18%; left: 50%; width: 35%; height: 16%; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 40%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 6px 30px rgba(0,0,0,0.5), inset 0 2px 12px rgba(100,80,60,0.2); animation: mpr-basin 22s ease-in-out infinite; }
.scn-more-prophetic .basin-water { position: absolute; bottom: 20%; left: 50%; width: 28%; height: 10%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(80,100,120,0.35) 0%, rgba(60,80,100,0.2) 50%, rgba(40,60,80,0.1) 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 2px 10px rgba(100,140,180,0.15); animation: mpr-water 8s ease-in-out infinite alternate; }
.scn-more-prophetic .hand-dipping { position: absolute; bottom: 28%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, rgba(60,48,36,0.7) 0%, rgba(50,38,28,0.4) 60%, transparent 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: mpr-hand 6s ease-in-out infinite alternate; }
.scn-more-prophetic .scroll-unrolled { position: absolute; bottom: 12%; left: 12%; width: 30%; height: 8%; background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 40%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 12px rgba(0,0,0,0.3); transform: rotate(-3deg); animation: mpr-scroll 14s ease-in-out infinite; }
.scn-more-prophetic .oil-lamp { position: absolute; top: 30%; left: 50%; width: 28px; height: 22px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7040 0%, #6a5028 50%, #5a4020 100%); border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%; box-shadow: 0 0 20px rgba(200,160,80,0.2); animation: mpr-lamp 7s ease-in-out infinite alternate; }
.scn-more-prophetic .lamp-halo { position: absolute; top: 28%; left: 50%; width: 100px; height: 100px; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,160,80,0.12) 0%, rgba(200,160,80,0.04) 40%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: mpr-halo 5s ease-in-out infinite alternate; }
@keyframes mpr-wall { 0% { opacity: 0.88; } 50% { opacity: 0.96; } 100% { opacity: 0.9; } }
@keyframes mpr-shelf { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes mpr-basin { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) scale(0.99); } }
@keyframes mpr-water { 0% { opacity: 0.5; transform: translateX(-50%) scaleY(1) translateY(0); } 30% { opacity: 0.65; transform: translateX(-50%) scaleY(1.02) translateY(-1px); } 60% { opacity: 0.55; transform: translateX(-50%) scaleY(0.98) translateY(0); } 100% { opacity: 0.5; transform: translateX(-50%) scaleY(1) translateY(-0.5px); } }
@keyframes mpr-hand { 0% { transform: translateX(-50%) translateY(0) rotate(-5deg); opacity: 0.6; } 30% { transform: translateX(-50%) translateY(-4px) rotate(-3deg); opacity: 0.8; } 60% { transform: translateX(-50%) translateY(-2px) rotate(2deg); opacity: 0.65; } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: 0.6; } }
@keyframes mpr-scroll { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-3.5deg) translateY(0); } }
@keyframes mpr-lamp { 0% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 15px rgba(200,160,80,0.15); } 50% { transform: translateX(-50%) rotate(2deg); box-shadow: 0 0 30px rgba(200,160,80,0.3); } 100% { transform: translateX(-50%) rotate(-1deg); box-shadow: 0 0 20px rgba(200,160,80,0.2); } }
@keyframes mpr-halo { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.08); } 100% { opacity: 0.45; transform: translateX(-50%) scale(0.95); } }

.scn-christian-value-of-individual { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%); }
.scn-christian-value-of-individual .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 10% 10%; }
.scn-christian-value-of-individual .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); }
.scn-christian-value-of-individual .window { position: absolute; top: 12%; left: 35%; width: 16%; height: 22%; background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: cvi-window 12s ease-in-out infinite; }
.scn-christian-value-of-individual .light-beam { position: absolute; top: 30%; left: 38%; width: 24%; height: 40%; background: linear-gradient(180deg, rgba(255,200,100,.6) 0%, rgba(255,200,100,.1) 100%); transform: skewX(-5deg) rotate(3deg); transform-origin: top left; border-radius: 0 0 40% 40%; filter: blur(8px); animation: cvi-beam 4s ease-in-out infinite alternate; }
.scn-christian-value-of-individual .figure { position: absolute; bottom: 28%; left: 44%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cvi-figure 5s ease-in-out infinite; }
.scn-christian-value-of-individual .candle { position: absolute; bottom: 26%; left: 54%; width: 10px; height: 18px; background: linear-gradient(180deg, #c07020 0%, #804010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #ffb040; animation: cvi-candle 2s ease-in-out infinite alternate; }
.scn-christian-value-of-individual .halo { position: absolute; top: 14%; left: 42%; width: 16%; height: 16%; background: radial-gradient(circle, rgba(255,220,150,.6) 0%, rgba(255,220,150,0) 70%); border-radius: 50%; filter: blur(10px); animation: cvi-halo 8s ease-in-out infinite alternate; }
@keyframes cvi-window { 0% { opacity:.8; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 100%) } 50% { opacity:1; background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 100%) } 100% { opacity:.85; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 100%) } }
@keyframes cvi-beam { 0% { opacity:.5; transform: skewX(-5deg) rotate(2deg) scaleY(1) } 50% { opacity:.8; transform: skewX(-3deg) rotate(4deg) scaleY(1.05) } 100% { opacity:.6; transform: skewX(-6deg) rotate(1deg) scaleY(0.95) } }
@keyframes cvi-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cvi-candle { 0% { box-shadow: 0 0 8px 2px #d08020, 0 0 16px 4px rgba(208,128,32,.5); height: 16px } 50% { box-shadow: 0 0 16px 6px #ffb040, 0 0 32px 10px rgba(255,176,64,.6); height: 20px } 100% { box-shadow: 0 0 10px 3px #d08020, 0 0 20px 6px rgba(208,128,32,.4); height: 18px } }
@keyframes cvi-halo { 0% { opacity:.3; filter: blur(12px) } 50% { opacity:.6; filter: blur(8px) } 100% { opacity:.4; filter: blur(14px) } }

.scn-greek-family-custom { background: linear-gradient(180deg, #2a1a0a 0%, #1a120a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 80%); }
.scn-greek-family-custom .bg-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 15% 15%; }
.scn-greek-family-custom .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); }
.scn-greek-family-custom .table { position: absolute; bottom: 22%; left: 25%; width: 50%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gfc-table 20s ease-in-out infinite; }
.scn-greek-family-custom .lamp { position: absolute; bottom: 30%; left: 48%; width: 20px; height: 24px; background: radial-gradient(circle, #ffc080 0%, #b06020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 8px #ffa040; animation: gfc-lamp 3s ease-in-out infinite alternate; }
.scn-greek-family-custom .figure-adult { position: absolute; bottom: 24%; left: 30%; width: 26px; height: 52px; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gfc-figure 6s ease-in-out infinite; }
.scn-greek-family-custom .figure-child { position: absolute; bottom: 24%; left: 56%; width: 16px; height: 34px; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gfc-figure 6s ease-in-out infinite -3s; }
.scn-greek-family-custom .pot { position: absolute; bottom: 20%; left: 42%; width: 14px; height: 16px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: gfc-pot 8s ease-in-out infinite; }
@keyframes gfc-table { 0%,100% { transform: translateY(0); opacity:.9 } 50% { transform: translateY(-1px); opacity:1 } }
@keyframes gfc-lamp { 0% { box-shadow: 0 0 16px 4px #ffa040; transform: scale(1) } 50% { box-shadow: 0 0 28px 10px #ffc060; transform: scale(1.05) } 100% { box-shadow: 0 0 20px 6px #ffa040; transform: scale(.98) } }
@keyframes gfc-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes gfc-pot { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-1px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } }

.scn-great-error { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, transparent 70%); }
.scn-great-error .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 0 0 20% 20%; }
.scn-great-error .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); }
.scn-great-error .window { position: absolute; top: 10%; left: 36%; width: 28%; height: 18%; background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(80,40,80,.3); animation: ge3-window 15s ease-in-out infinite alternate; }
.scn-great-error .bars { position: absolute; top: 10%; left: 36%; width: 28%; height: 18%; background: repeating-linear-gradient(90deg, rgba(30,20,30,.8) 0% 6%, transparent 6% 14%); animation: ge3-bars 4s ease-in-out infinite; }
.scn-great-error .figure { position: absolute; bottom: 28%; left: 44%; width: 24px; height: 46px; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ge3-figure 5s ease-in-out infinite; }
.scn-great-error .chain { position: absolute; top: 24%; left: 50%; width: 4px; height: 40px; background: repeating-linear-gradient(180deg, #5a3a3a 0% 8%, transparent 8% 16%); transform-origin: top center; animation: ge3-chain 6s ease-in-out infinite; }
.scn-great-error .shadow { position: absolute; inset: 0; background: rgba(0,0,0,.3); animation: ge3-shadow 10s ease-in-out infinite alternate; pointer-events: none; }
@keyframes ge3-window { 0% { opacity:.7; box-shadow: inset 0 0 20px rgba(80,40,80,.3) } 50% { opacity:.9; box-shadow: inset 0 0 40px rgba(100,50,100,.5) } 100% { opacity:.75; box-shadow: inset 0 0 25px rgba(80,40,80,.3) } }
@keyframes ge3-bars { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) translateX(2px) } 100% { transform: scaleX(.98) translateX(-2px) } }
@keyframes ge3-figure { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ge3-chain { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes ge3-shadow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.3 } }

.scn-mankind-not-bred { background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%); }
.scn-mankind-not-bred .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 0 0 12% 12%; }
.scn-mankind-not-bred .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); }
.scn-mankind-not-bred .bookshelf { position: absolute; top: 8%; left: 10%; width: 30%; height: 60%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 10%, #3a2a1a 20%, #4a3a2a 30%, #3a2a1a 40%, #4a3a2a 50%, #3a2a1a 60%, #4a3a2a 70%, #3a2a1a 80%, #4a3a2a 90%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: mnb4-shelf 30s ease-in-out infinite; }
.scn-mankind-not-bred .desk { position: absolute; bottom: 18%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mnb4-desk 20s ease-in-out infinite; }
.scn-mankind-not-bred .lamp { position: absolute; bottom: 28%; left: 44%; width: 18px; height: 22px; background: radial-gradient(circle, #ffc080 0%, #a06020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ffb040; animation: mnb4-lamp 2.5s ease-in-out infinite alternate; }
.scn-mankind-not-bred .figure { position: absolute; bottom: 24%; left: 36%; width: 28px; height: 48px; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mnb4-figure 6s ease-in-out infinite; }
.scn-mankind-not-bred .window { position: absolute; top: 6%; right: 8%; width: 22%; height: 30%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,60,.5); animation: mnb4-window 12s ease-in-out infinite alternate; }
@keyframes mnb4-shelf { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes mnb4-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mnb4-lamp { 0% { box-shadow: 0 0 16px 4px #ffa040; opacity:.9 } 50% { box-shadow: 0 0 28px 10px #ffc060; opacity:1 } 100% { box-shadow: 0 0 20px 6px #ffa040; opacity:.95 } }
@keyframes mnb4-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes mnb4-window { 0% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); opacity:.8 } 50% { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); opacity:1 } 100% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); opacity:.85 } }

/* dantes-aspiration */
.scn-dantes-aspiration {
  background: linear-gradient(145deg, #1f140a 0%, #2c1d10 30%, #1a1008 70%), radial-gradient(ellipse at 45% 50%, #4a3518 0%, transparent 60%);
}
.scn-dantes-aspiration .window {
  position: absolute; left: 8%; top: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c97b3c 0%, #d4a35a 20%, #e8c88a 50%, #a0743a 100%);
  border: 6px solid #3d2915; border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255, 183, 77, 0.3);
  animation: di-window 10s ease-in-out infinite alternate;
}
.scn-dantes-aspiration .desk {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #5e4030 0%, #3d2915 100%);
  border-radius: 4px; box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
}
.scn-dantes-aspiration .figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 55%;
  background: linear-gradient(180deg, #1a1008 0%, #0d0803 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: di-figure 8s ease-in-out infinite;
}
.scn-dantes-aspiration .candle {
  position: absolute; bottom: 22%; left: 25%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #f5d4a0 0%, #c5995a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-dantes-aspiration .flame {
  position: absolute; bottom: calc(22% + 28px); left: 25.5%; width: 4px; height: 10px;
  background: radial-gradient(ellipse, #fff5e0 0%, #ffb74d 40%, #ffa726 70%, transparent 100%);
  border-radius: 50%;
  animation: di-flame 1.5s ease-in-out infinite alternate;
}
.scn-dantes-aspiration .glow-ambient {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 26% 40%, rgba(255, 183, 77, 0.08) 0%, transparent 60%);
  animation: di-glow 4s ease-in-out infinite alternate;
}
@keyframes di-window {
  0% { opacity: 0.7; border-color: #3d2915; }
  50% { opacity: 0.9; border-color: #5a3c20; }
  100% { opacity: 0.75; border-color: #4a2e18; }
}
@keyframes di-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes di-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes di-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.35; }
}

/* more-and-plato */
.scn-more-and-plato {
  background: linear-gradient(135deg, #1a0d05 0%, #2b1a0e 40%, #140a04 100%), radial-gradient(ellipse at 40% 60%, #3d2a16 0%, transparent 60%);
}
.scn-more-and-plato .wall-shadow {
  position: absolute; right: 10%; bottom: 0; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 20% 0% 0% 80%;
  animation: mp-shadow 12s ease-in-out infinite alternate;
}
.scn-more-and-plato .figure {
  position: absolute; bottom: 12%; left: 20%; width: 22px; height: 50%;
  background: linear-gradient(180deg, #1f140a 0%, #0d0803 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mp-figure 6s ease-in-out infinite;
}
.scn-more-and-plato .book {
  position: absolute; bottom: 12%; left: calc(20% + 8px); width: 40px; height: 30px;
  background: linear-gradient(135deg, #6e4f24 0%, #4a3518 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.7);
  transform: rotate(-5deg);
  animation: mp-book 10s ease-in-out infinite alternate;
}
.scn-more-and-plato .candle {
  position: absolute; bottom: 12%; right: 25%; width: 5px; height: 24px;
  background: linear-gradient(180deg, #f0cf9c 0%, #c59a5a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-more-and-plato .flame {
  position: absolute; bottom: calc(12% + 24px); right: 25.5%; width: 4px; height: 8px;
  background: radial-gradient(ellipse, #fff5e0 0%, #ffb74d 40%, #ffa726 70%, transparent 100%);
  border-radius: 50%;
  animation: mp-flame 1.8s ease-in-out infinite alternate;
}
.scn-more-and-plato .shelf {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 4px;
  background: #4a3518; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-more-and-plato .book-stack {
  position: absolute; top: 10%; left: 15%; width: 30px; height: 10%;
  background: linear-gradient(180deg, #6e4f24 0%, #4a3518 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  animation: mp-stack 15s ease-in-out infinite alternate;
}
@keyframes mp-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}
@keyframes mp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mp-book {
  0% { transform: rotate(-5deg) scaleX(1); opacity: 0.9; }
  50% { transform: rotate(-3deg) scaleX(1.02); opacity: 1; }
  100% { transform: rotate(-7deg) scaleX(0.98); opacity: 0.9; }
}
@keyframes mp-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.85) translateY(1px); opacity: 0.7; }
}
@keyframes mp-stack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* stir-of-times */
.scn-stir-of-times {
  background: linear-gradient(170deg, #1b1107 0%, #2a1c0e 35%, #0d0803 100%), radial-gradient(ellipse at 20% 30%, #4a3518 0%, transparent 70%);
}
.scn-stir-of-times .bookshelf {
  position: absolute; left: 5%; top: 15%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #3d2915 0%, #2a1c0e 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-stir-of-times .books-row {
  position: absolute; left: 8%; top: 20%; width: 34%; height: 8%;
  background: repeating-linear-gradient(90deg, #6e4f24 0px, #6e4f24 6px, #4a3518 6px, #4a3518 8px);
  border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: st-row 20s ease-in-out infinite alternate;
}
.scn-stir-of-times .figure {
  position: absolute; bottom: 10%; left: 55%; width: 18px; height: 50%;
  background: linear-gradient(180deg, #1f140a 0%, #0d0803 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: st-figure 7s ease-in-out infinite;
}
.scn-stir-of-times .lamp {
  position: absolute; bottom: 35%; left: 70%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0b680 0%, #c59a5a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-stir-of-times .light-cone {
  position: absolute; bottom: 35%; left: 72%; width: 80%; height: 50%;
  background: linear-gradient(135deg, rgba(255, 183, 77, 0.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  transform-origin: left bottom;
  animation: st-cone 5s ease-in-out infinite alternate;
}
.scn-stir-of-times .shadow {
  position: absolute; bottom: 0; right: 5%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: st-shadow 14s ease-in-out infinite alternate;
}
@keyframes st-row {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes st-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes st-cone {
  0% { transform: skewX(-2deg); opacity: 0.6; }
  50% { transform: skewX(2deg); opacity: 0.9; }
  100% { transform: skewX(-1deg); opacity: 0.7; }
}
@keyframes st-shadow {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}

/* christ-instituted-community */
.scn-christ-instituted-community {
  background: linear-gradient(160deg, #1f140a 0%, #2c1d10 30%, #140a04 70%), radial-gradient(ellipse at 50% 70%, #4a3518 0%, transparent 60%);
}
.scn-christ-instituted-community .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: radial-gradient(ellipse, #6e4f24 0%, #4a3518 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ci-table 9s ease-in-out infinite alternate;
}
.scn-christ-instituted-community .figure-left {
  position: absolute; bottom: 25%; left: 10%; width: 20px; height: 40%;
  background: linear-gradient(180deg, #2a1c0e 0%, #0d0803 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ci-left 6s ease-in-out infinite;
}
.scn-christ-instituted-community .figure-right {
  position: absolute; bottom: 25%; right: 10%; width: 20px; height: 40%;
  background: linear-gradient(180deg, #2a1c0e 0%, #0d0803 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ci-right 7s ease-in-out infinite reverse;
}
.scn-christ-instituted-community .figure-center {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 45%;
  background: linear-gradient(180deg, #3d2915 0%, #1a1008 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: ci-center 8s ease-in-out infinite;
}
.scn-christ-instituted-community .bread {
  position: absolute; bottom: 17%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #e0be6e 0%, #c59a5a 100%);
  border-radius: 40%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ci-bread 12s ease-in-out infinite alternate;
}
.scn-christ-instituted-community .cup {
  position: absolute; bottom: 19%; left: 38%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #a0743a 0%, #6e4f24 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ci-cup 10s ease-in-out infinite alternate;
}
.scn-christ-instituted-community .light-source {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffb74d 0%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255, 183, 77, 0.3);
  animation: ci-light 3s ease-in-out infinite alternate;
}
@keyframes ci-table {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.03) scaleY(0.98); }
  100% { transform: scaleX(0.97) scaleY(1.02); }
}
@keyframes ci-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(-0.5deg); }
}
@keyframes ci-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(1px) rotate(0.5deg); }
}
@keyframes ci-center {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ci-bread {
  0% { transform: translateX(-50%) rotate(5deg) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(8deg) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) rotate(2deg) scale(0.95); opacity: 0.85; }
}
@keyframes ci-cup {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ci-light {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.9); }
}

/* scene: augustine-wander */
.scn-augustine-wander {
  background: radial-gradient(ellipse at 70% 20%, #6a4a2a 0%, transparent 60%), linear-gradient(180deg, #1a0e0a 0%, #2a1e14 50%, #0e0a06 100%);
}
.scn-augustine-wander .desk {
  position: absolute; bottom: 8%; left: 10%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #4a3224 0%, #2a1e14 100%);
  border-radius: 6% 6% 0 0 / 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-augustine-wander .candle {
  position: absolute; bottom: 34%; left: 28%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 8px 2px rgba(200,160,80,.3);
  animation: aw-candle 6s ease-in-out infinite alternate;
}
.scn-augustine-wander .flame {
  position: absolute; bottom: 46%; left: 28.2%; width: 4px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: aw-flame 0.8s ease-in-out infinite alternate;
}
.scn-augustine-wander .figure {
  position: absolute; bottom: 8%; left: 38%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: aw-figure 12s ease-in-out infinite;
}
.scn-augustine-wander .window {
  position: absolute; bottom: 40%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 6%; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 12px rgba(100,80,40,.2);
  animation: aw-window 18s ease-in-out infinite alternate;
}
.scn-augustine-wander .scroll {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 30% 30% 30% 30%; filter: blur(1px);
  animation: aw-scroll 8s ease-in-out infinite;
}
@keyframes aw-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1.02) } }
@keyframes aw-flame { 0% { transform: translateY(0) scaleX(0.9); opacity: 0.9 } 50% { transform: translateY(-2px) scaleX(1.1); opacity: 1 } 100% { transform: translateY(0) scaleX(0.95); opacity: 0.95 } }
@keyframes aw-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes aw-window { 0% { background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%) } 50% { background: linear-gradient(180deg, #4a3e32 0%, #2e2620 100%) } 100% { background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%) } }
@keyframes aw-scroll { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }

/* scene: augustine-uncritical */
.scn-augustine-uncritical {
  background: radial-gradient(ellipse at 50% 30%, #5a3e2a 0%, transparent 70%), linear-gradient(180deg, #1a0e0a 0%, #2a1e14 50%, #0a0604 100%);
}
.scn-augustine-uncritical .book {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1e 100%);
  border-radius: 10%; box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: uc-book 20s ease-in-out infinite alternate;
}
.scn-augustine-uncritical .page {
  position: absolute; bottom: 24%; left: 23%; right: 23%; height: 32%;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 5%; transform: perspective(400px) rotateX(12deg);
  animation: uc-page 10s ease-in-out infinite;
}
.scn-augustine-uncritical .candle {
  position: absolute; bottom: 50%; left: 45%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #d4b080 0%, #a08060 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px 2px rgba(200,160,80,.4);
  animation: uc-candle 7s ease-in-out infinite alternate;
}
.scn-augustine-uncritical .flame {
  position: absolute; bottom: 66%; left: 45.3%; width: 5px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 80%);
  border-radius: 50%; filter: blur(2px);
  animation: uc-flame 0.6s ease-in-out infinite alternate;
}
.scn-augustine-uncritical .glow {
  position: absolute; bottom: 62%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,200,80,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: uc-glow 4s ease-in-out infinite alternate;
}
.scn-augustine-uncritical .inkwell {
  position: absolute; bottom: 22%; left: 15%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: uc-inkwell 15s ease-in-out infinite;
}
@keyframes uc-book { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1.01) } }
@keyframes uc-page { 0% { transform: perspective(400px) rotateX(12deg) translateY(0) } 50% { transform: perspective(400px) rotateX(14deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(12deg) translateY(0) } }
@keyframes uc-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1.02) } }
@keyframes uc-flame { 0% { transform: translateY(0) scaleX(0.85); opacity: 0.85 } 50% { transform: translateY(-3px) scaleX(1.15); opacity: 1 } 100% { transform: translateY(0) scaleX(0.9); opacity: 0.9 } }
@keyframes uc-glow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes uc-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* scene: augustine-not-blind */
.scn-augustine-not-blind {
  background: radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 60%), linear-gradient(180deg, #0e0a06 0%, #1e1610 50%, #2a1e14 100%);
}
.scn-augustine-not-blind .window {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 15px rgba(60,40,20,.3);
  animation: nb-window 22s ease-in-out infinite alternate;
}
.scn-augustine-not-blind .figure {
  position: absolute; bottom: 10%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: nb-figure 14s ease-in-out infinite;
}
.scn-augustine-not-blind .shelf {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(180deg, #4a3224 0%, #2a1e14 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: nb-shelf 30s ease-in-out infinite alternate;
}
.scn-augustine-not-blind .candle {
  position: absolute; bottom: 48%; left: 25%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4b080 0%, #a08060 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 8px 2px rgba(200,160,80,.3);
  animation: nb-candle 8s ease-in-out infinite alternate;
}
.scn-augustine-not-blind .flame {
  position: absolute; bottom: 62%; left: 25.2%; width: 4px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: nb-flame 0.7s ease-in-out infinite alternate;
}
.scn-augustine-not-blind .book {
  position: absolute; bottom: 53%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1e 100%);
  border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: nb-book 16s ease-in-out infinite;
}
@keyframes nb-window { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes nb-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nb-shelf { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1.02) } }
@keyframes nb-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.03) } }
@keyframes nb-flame { 0% { transform: translateY(0) scaleX(0.85); opacity: 0.9 } 50% { transform: translateY(-2px) scaleX(1.1); opacity: 1 } 100% { transform: translateY(0) scaleX(0.9); opacity: 0.95 } }
@keyframes nb-book { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } }

/* scene: augustine-and-plato */
.scn-augustine-and-plato {
  background: radial-gradient(ellipse at 30% 20%, #5a3e2a 0%, transparent 70%), linear-gradient(180deg, #1a0e0a 0%, #2a1e14 50%, #0e0a06 100%);
}
.scn-augustine-and-plato .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3224 0%, #2a1e14 100%);
  border-radius: 6% 6% 0 0 / 10% 10% 0 0; box-shadow: 0 6px 18px rgba(0,0,0,.6);
}
.scn-augustine-and-plato .book-left {
  position: absolute; bottom: 20%; left: 18%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1e 100%);
  border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: apl-book-l 16s ease-in-out infinite alternate;
}
.scn-augustine-and-plato .book-right {
  position: absolute; bottom: 25%; right: 18%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a3e2a 0%, #2a1e14 100%);
  border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: apl-book-r 18s ease-in-out infinite alternate;
}
.scn-augustine-and-plato .candle {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4b080 0%, #a08060 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,160,80,.4);
  animation: apl-candle 6s ease-in-out infinite alternate;
}
.scn-augustine-and-plato .flame {
  position: absolute; bottom: 48%; left: 48.3%; width: 5px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 80%);
  border-radius: 50%; filter: blur(2px);
  animation: apl-flame 0.8s ease-in-out infinite alternate;
}
.scn-augustine-and-plato .scroll {
  position: absolute; bottom: 14%; left: 42%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 30%; filter: blur(1px);
  animation: apl-scroll 10s ease-in-out infinite;
}
@keyframes apl-book-l { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes apl-book-r { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes apl-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1.02) } }
@keyframes apl-flame { 0% { transform: translateY(0) scaleX(0.85); opacity: 0.85 } 50% { transform: translateY(-2px) scaleX(1.15); opacity: 1 } 100% { transform: translateY(0) scaleX(0.9); opacity: 0.9 } }
@keyframes apl-scroll { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(3px) rotate(3deg) } }

.scn-end-of-horse {
  background: linear-gradient(180deg, #3a2a22 0%, #1f1610 40%, #0d0a07 100%), radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-end-of-horse .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3528 0%, #3a2518 15%, #2a1a10 30%, #3a2518 50%, #4a3528 70%, #2a1a10 100%);
  border-bottom: 4px solid #1a0e08;
  animation: eoh-wall 20s ease-in-out infinite;
}
.scn-end-of-horse .horse-head {
  position: absolute; bottom: 32%; left: 18%;
  width: 22%; height: 36%;
  background: radial-gradient(ellipse 130% 100% at 30% 100%, #1c1410 0%, #0e0a07 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: eoh-horse 8s ease-in-out infinite alternate;
}
.scn-end-of-horse .hay {
  position: absolute; bottom: 18%; left: 10%;
  width: 35%; height: 12%;
  background: linear-gradient(180deg, #8a7a42 0%, #6a5a32 40%, #4a3a22 100%);
  border-radius: 40% 60% 30% 50% / 70% 50% 60% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: eoh-hay 12s ease-in-out infinite alternate;
}
.scn-end-of-horse .lantern-glow {
  position: absolute; bottom: 38%; left: 72%;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle, #ffcc80 0%, #b08030 60%, transparent 100%);
  box-shadow: 0 0 30px 8px #d09040, 0 0 60px 16px rgba(192,128,64,0.3);
  animation: eoh-glow 3s ease-in-out infinite alternate;
}
.scn-end-of-horse .dust {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,220,180,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-end-of-horse .dust-a {
  top: 15%; left: 20%;
  animation: eoh-dust 18s linear infinite;
}
.scn-end-of-horse .dust-b {
  top: 25%; left: 50%;
  animation: eoh-dust 22s linear infinite 11s;
}
@keyframes eoh-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes eoh-horse {
  0% { transform: rotate(-2deg) translateY(0); }
  30% { transform: rotate(1deg) translateY(-2px); }
  70% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes eoh-hay {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(0.98); }
  100% { transform: scaleX(0.98) scaleY(1.01); }
}
@keyframes eoh-glow {
  0% { box-shadow: 0 0 20px 4px #b08030, 0 0 40px 8px rgba(192,128,64,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 35px 10px #ffcc80, 0 0 70px 20px rgba(255,204,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #c09040, 0 0 50px 12px rgba(192,144,64,0.3); opacity: 0.8; }
}
@keyframes eoh-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.6; }
  50% { transform: translate(40px, -30px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(80px, -60px) scale(2); opacity: 0; }
}

.scn-excellence-and-end {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0a0807 100%), radial-gradient(ellipse at 60% 20%, #3a2a22 0%, transparent 80%);
}
.scn-excellence-and-end .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a2a1f 0%, #2a1f15 30%, #1f1410 60%, #2a1f15 100%);
  animation: eae-wall 25s ease-in-out infinite;
}
.scn-excellence-and-end .doorframe {
  position: absolute; bottom: 25%; left: 30%;
  width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a352a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -2px 0 8px rgba(0,0,0,0.6);
}
.scn-excellence-and-end .door {
  position: absolute; bottom: 25%; left: 32%;
  width: 34%; height: 55%;
  background: linear-gradient(180deg, #5a3f30 0%, #3a2718 100%);
  border-radius: 2% 2% 0 0;
  transform-origin: left center;
  animation: eae-door 6s ease-in-out infinite alternate;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-excellence-and-end .light-under {
  position: absolute; bottom: 22%; left: 34%;
  width: 30%; height: 8%;
  background: radial-gradient(ellipse, #d0a060 0%, #b08030 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 20px #c09040, 0 -8px 40px rgba(192,144,64,0.2);
  animation: eae-light 4s ease-in-out infinite alternate;
}
.scn-excellence-and-end .figure {
  position: absolute; bottom: 26%; left: 12%;
  width: 14%; height: 40%;
  background: radial-gradient(ellipse 90% 100% at 50% 100%, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: eae-figure 9s ease-in-out infinite;
}
.scn-excellence-and-end .floor-shadow {
  position: absolute; bottom: 0; left: 5%;
  width: 90%; height: 28%;
  background: linear-gradient(0deg, rgba(20,15,10,0.6) 0%, transparent 100%);
  animation: eae-shadow 12s ease-in-out infinite alternate;
}
@keyframes eae-wall {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes eae-door {
  0% { transform: rotateY(0deg); }
  30% { transform: rotateY(-2deg); }
  70% { transform: rotateY(3deg); }
  100% { transform: rotateY(1deg); }
}
@keyframes eae-light {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes eae-figure {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(6px); }
  100% { transform: rotate(-2deg) translateX(2px); }
}
@keyframes eae-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}

.scn-sight-and-excellence {
  background: linear-gradient(180deg, #2a1f18 0%, #1a1410 50%, #0f0c08 100%), radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 70%);
}
.scn-sight-and-excellence .desk {
  position: absolute; bottom: 0; left: 5%;
  width: 90%; height: 30%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
}
.scn-sight-and-excellence .book {
  position: absolute; bottom: 22%; left: 12%;
  width: 25%; height: 16%;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%);
  border-radius: 6% 6% 12% 12% / 30% 30% 60% 60%;
  transform: rotate(-10deg);
  animation: sae-book 15s ease-in-out infinite alternate;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
}
.scn-sight-and-excellence .candle {
  position: absolute; bottom: 26%; left: 50%;
  width: 8%; height: 24%;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 40%, #8a7048 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: sae-candle 6s ease-in-out infinite;
}
.scn-sight-and-excellence .flame {
  position: absolute; bottom: 48%; left: 50%;
  width: 6%; height: 10%;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #ffd080 0%, #ffa030 40%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: sae-flame 1.5s ease-in-out infinite alternate;
}
.scn-sight-and-excellence .glasses {
  position: absolute; bottom: 16%; left: 28%;
  width: 18%; height: 10%;
  background: transparent;
  border: 3px solid #a0825a;
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 0 0 2px #6a5038 inset;
  transform: rotate(6deg);
  animation: sae-glasses 20s ease-in-out infinite alternate;
}
.scn-sight-and-excellence .glasses::before,
.scn-sight-and-excellence .glasses::after {
  content: '';
  position: absolute;
  width: 40%;
  height: 100%;
  border: inherit;
  border-radius: inherit;
  background: transparent;
}
.scn-sight-and-excellence .glasses::before {
  left: -30%;
  top: 0;
}
.scn-sight-and-excellence .glasses::after {
  right: -30%;
  top: 0;
}
.scn-sight-and-excellence .lens-glow {
  position: absolute; bottom: 16%; left: 28%;
  width: 18%; height: 10%;
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  background: radial-gradient(circle at 40% 30%, rgba(255,220,160,0.2) 0%, transparent 80%);
  transform: rotate(6deg);
  animation: sae-lens 5s ease-in-out infinite alternate;
}
@keyframes sae-book {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.02); }
  100% { transform: rotate(-12deg) scale(0.98); }
}
@keyframes sae-candle {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes sae-flame {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  30% { transform: translateX(-48%) scale(1.05) rotate(3deg); }
  60% { transform: translateX(-52%) scale(0.95) rotate(-2deg); }
  100% { transform: translateX(-50%) scale(1.03) rotate(1deg); }
}
@keyframes sae-glasses {
  0% { opacity: 0.7; transform: rotate(6deg); }
  50% { opacity: 1; transform: rotate(4deg); }
  100% { opacity: 0.8; transform: rotate(7deg); }
}
@keyframes sae-lens {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-soul-and-its-end {
  background: linear-gradient(180deg, #0a0807 0%, #1a1210 30%, #3a2820 60%, #4a3528 100%), radial-gradient(ellipse at 50% 0%, #6a4830 0%, transparent 70%);
}
.scn-soul-and-its-end .stair-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1f1410 0%, #2a1a12 50%, #0f0a08 100%);
  animation: soe-bg 30s ease-in-out infinite;
}
.scn-soul-and-its-end .stair-stringer {
  position: absolute; bottom: 0; left: 35%;
  width: 30%; height: 100%;
  background: linear-gradient(90deg, #3a2518 0%, #2a1a10 50%, #3a2518 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: soe-stringer 12s ease-in-out infinite alternate;
}
.scn-soul-and-its-end .step {
  position: absolute; left: 37%;
  width: 26%; height: 10%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 80%, #1a1008 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-soul-and-its-end .step-a {
  bottom: 5%;
  animation: soe-step-a 8s ease-in-out infinite alternate;
}
.scn-soul-and-its-end .step-b {
  bottom: 25%;
  animation: soe-step-b 8s ease-in-out infinite alternate 2s;
}
.scn-soul-and-its-end .step-c {
  bottom: 45%;
  animation: soe-step-c 8s ease-in-out infinite alternate 4s;
}
.scn-soul-and-its-end .climber {
  position: absolute; bottom: 40%; left: 42%;
  width: 12%; height: 20%;
  background: radial-gradient(ellipse 90% 100% at 50% 100%, #2a1a10 0%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: soe-climber 10s ease-in-out infinite;
}
.scn-soul-and-its-end .top-light {
  position: absolute; bottom: 80%; left: 40%;
  width: 20%; height: 20%;
  background: radial-gradient(circle, #d0a060 0%, #b08030 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c09040, 0 0 80px 20px rgba(192,144,64,0.2);
  animation: soe-light 4s ease-in-out infinite alternate;
}
@keyframes soe-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes soe-stringer {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}
@keyframes soe-step-a {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes soe-step-b {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes soe-step-c {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.03); }
  100% { transform: translateY(0) scaleX(0.97); }
}
@keyframes soe-climber {
  0% { transform: rotate(5deg) translateY(0); }
  30% { transform: rotate(0deg) translateY(-6px); }
  60% { transform: rotate(-3deg) translateY(-12px); }
  100% { transform: rotate(2deg) translateY(-18px); }
}
@keyframes soe-light {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}

/* scene: bad-company-of-rich – calm firelit */
.scn-bad-company-of-rich {
  background:
    linear-gradient(180deg, #2a1a12 0%, #4a3020 40%, #3a2218 100%),
    radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 60%);
}
.scn-bad-company-of-rich .bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #1a0e08 0%, #2a1a12 50%, transparent 100%);
  animation: bcr-pulse 12s ease-in-out infinite alternate;
}
.scn-bad-company-of-rich .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(0deg, #1a1008 0%, #3a2818 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-bad-company-of-rich .fireplace {
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:120px; height:80px;
  background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-bad-company-of-rich .fire {
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%);
  width:60px; height:50px;
  background:radial-gradient(circle at 50% 100%, #ff8830 0%, #cc4400 80%);
  border-radius: 50% 50% 40% 40%;
  animation: bcr-fire 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(255,136,48,.7), 0 0 80px 40px rgba(200,68,0,.4);
}
.scn-bad-company-of-rich .figure-a {
  position:absolute; bottom:20%; left:36%;
  width:20px; height:40px;
  background:linear-gradient(180deg, #1a0e08 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bcr-sway 4s ease-in-out infinite;
}
.scn-bad-company-of-rich .figure-b {
  position:absolute; bottom:20%; right:36%;
  width:20px; height:40px;
  background:linear-gradient(180deg, #1a0e08 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bcr-sway 4s ease-in-out infinite reverse;
}
.scn-bad-company-of-rich .smoke {
  position:absolute; bottom:50%; left:48%; width:30px; height:30px;
  background:radial-gradient(circle, rgba(255,180,100,.2) 0%, transparent 70%);
  border-radius:50%; filter:blur(8px);
  animation: bcr-smoke 6s ease-in-out infinite;
}
@keyframes bcr-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bcr-fire { 0% { transform: translateX(-50%) scale(1,1); opacity:.9 } 50% { transform: translateX(-50%) scale(1.05,1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95,0.95); opacity:.85 } }
@keyframes bcr-sway { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes bcr-smoke { 0% { transform: translate(0,0) scale(0.8); opacity:.3 } 50% { transform: translate(-5px,-15px) scale(1.2); opacity:.15 } 100% { transform: translate(5px,-30px) scale(1.5); opacity:0 } }

/* scene: near-death-fears – dark firelit */
.scn-near-death-fears {
  background:
    linear-gradient(180deg, #0f0806 0%, #1c100a 50%, #2a1810 100%),
    radial-gradient(ellipse at 30% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-near-death-fears .bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #080402 0%, #0f0806 50%, transparent 100%);
  animation: ndf-darkpulse 15s ease-in-out infinite alternate;
}
.scn-near-death-fears .wall {
  position:absolute; inset:0 0 25% 0; background:linear-gradient(90deg, #1a1008 0%, #0e0804 50%, #1a1008 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
}
.scn-near-death-fears .bed {
  position:absolute; bottom:15%; left:25%; right:25%; height:30%;
  background:linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-near-death-fears .figure {
  position:absolute; bottom:22%; left:40%; width:30px; height:50px;
  background:linear-gradient(180deg, #0e0804 0%, #060302 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: ndf-lying 4s ease-in-out infinite;
}
.scn-near-death-fears .candle {
  position:absolute; bottom:15%; right:30%; width:8px; height:30px;
  background:linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 2px;
}
.scn-near-death-fears .flame {
  position:absolute; bottom:42%; right:30%; width:12px; height:18px;
  background:radial-gradient(circle at 50% 100%, #ffaa40 0%, #ff6600 80%);
  border-radius: 50% 50% 30% 30%;
  animation: ndf-flame 1.2s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 10px rgba(255,170,64,.5), 0 0 40px 20px rgba(255,102,0,.2);
}
.scn-near-death-fears .shadow {
  position:absolute; bottom:10%; left:20%; width:80px; height:100px;
  background:linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.9) 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(12px);
  animation: ndf-shadow 6s ease-in-out infinite;
}
@keyframes ndf-darkpulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ndf-lying { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ndf-flame { 0% { transform: scale(1,1); opacity:.9 } 50% { transform: scale(1.1,1.2); opacity:1 } 100% { transform: scale(0.9,0.8); opacity:.8 } }
@keyframes ndf-shadow { 0% { transform: scale(1) translate(0,0); opacity:.6 } 50% { transform: scale(1.2) translate(5px,-5px); opacity:.8 } 100% { transform: scale(0.9) translate(-3px,3px); opacity:.5 } }

/* scene: fear-of-punishment – dark firelit */
.scn-fear-of-punishment {
  background:
    linear-gradient(180deg, #120806 0%, #1c0e0a 40%, #2a1410 100%),
    radial-gradient(ellipse at 70% 60%, #3a1a12 0%, transparent 60%);
}
.scn-fear-of-punishment .bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #080402 0%, #120806 50%, transparent 100%);
  animation: fop-throb 10s ease-in-out infinite alternate;
}
.scn-fear-of-punishment .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:linear-gradient(0deg, #0e0804 0%, #1a0e08 100%);
  border-radius: 40% 60% 0 0;
}
.scn-fear-of-punishment .bed {
  position:absolute; bottom:15%; left:20%; right:20%; height:25%;
  background:linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 15% 15% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-fear-of-punishment .child {
  position:absolute; bottom:25%; left:40%; width:24px; height:30px;
  background:linear-gradient(180deg, #0e0804 0%, #060302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fop-situp 3s ease-in-out infinite;
}
.scn-fear-of-punishment .blanket {
  position:absolute; bottom:17%; left:25%; width:50%; height:15px;
  background:linear-gradient(180deg, #3a2018 0%, #1a0e08 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-2deg);
}
.scn-fear-of-punishment .monster {
  position:absolute; bottom:30%; left:10%; width:100px; height:120px;
  background:linear-gradient(180deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.4) 70%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(15px);
  animation: fop-monster 5s ease-in-out infinite;
}
.scn-fear-of-punishment .glimmer {
  position:absolute; bottom:40%; left:45%; width:8px; height:8px;
  background:radial-gradient(circle, #ff9933 0%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 16px 6px rgba(255,153,51,.4);
  animation: fop-glimmer 2s ease-in-out infinite alternate;
}
@keyframes fop-throb { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fop-situp { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(-5deg) } 50% { transform: translateY(-12px) rotate(10deg) } 75% { transform: translateY(-6px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fop-monster { 0% { transform: scale(0.8) translate(0,0); opacity:.3 } 50% { transform: scale(1.1) translate(10px,-5px); opacity:.7 } 100% { transform: scale(0.9) translate(-5px,5px); opacity:.4 } }
@keyframes fop-glimmer { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.5; transform: scale(0.9) } }

/* scene: blessing-of-wealth – calm firelit */
.scn-blessing-of-wealth {
  background:
    linear-gradient(180deg, #2a1a12 0%, #4a3020 30%, #6a4030 60%, #3a2218 100%),
    radial-gradient(ellipse at 50% 30%, #cc8040 0%, transparent 60%);
}
.scn-blessing-of-wealth .bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #1a0e08 0%, #2a1a12 40%, transparent 100%);
  animation: bow-breathe 14s ease-in-out infinite alternate;
}
.scn-blessing-of-wealth .path {
  position:absolute; bottom:12%; left:20%; right:20%; height:30%;
  background:linear-gradient(0deg, #2a1810 0%, #4a3020 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: bow-path 8s ease-in-out infinite alternate;
}
.scn-blessing-of-wealth .figure {
  position:absolute; bottom:25%; left:45%; width:22px; height:50px;
  background:linear-gradient(180deg, #1a0e08 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bow-walk 6s ease-in-out infinite;
}
.scn-blessing-of-wealth .light {
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 50% 60%, rgba(255,180,100,.15) 0%, transparent 70%);
  animation: bow-glow 5s ease-in-out infinite alternate;
}
.scn-blessing-of-wealth .arch {
  position:absolute; bottom:10%; left:35%; right:35%; height:50%;
  background:linear-gradient(180deg, #4a2a1a 0%, transparent 60%);
  border-radius: 40% 40% 0 0;
  border: 2px solid rgba(200,140,80,.3);
  box-shadow: inset 0 0 30px rgba(200,140,80,.2);
}
.scn-blessing-of-wealth .halo {
  position:absolute; bottom:40%; left:48%; width:30px; height:30px;
  background:radial-gradient(circle, rgba(255,200,150,.6) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(6px);
  animation: bow-halo 4s ease-in-out infinite;
}
.scn-blessing-of-wealth .spark {
  position:absolute; bottom:35%; left:44%; width:4px; height:4px;
  background:#ffcc66;
  border-radius:50%;
  box-shadow: 0 0 10px 5px rgba(255,204,102,.6);
  animation: bow-spark 3s ease-in-out infinite;
}
@keyframes bow-breathe { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bow-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bow-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes bow-glow { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes bow-halo { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:.9 } 100% { transform: scale(0.9); opacity:.5 } }
@keyframes bow-spark { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(-2px,-4px) scale(1.5); opacity:.6 } 100% { transform: translate(2px,-8px) scale(0.8); opacity:0 } }

.scn-myth-of-er-sirens {
  background: linear-gradient(180deg, #0a0a2e 0%, #121240 50%, #1a1a58 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a6e 0%, transparent 70%);
}
.scn-myth-of-er-sirens .sky {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #1a1a5a 0%, transparent 60%);
  animation: sky-sir 20s ease-in-out infinite alternate;
}
.scn-myth-of-er-sirens .stars {
  position: absolute; inset: 0;
  background: radial-gradient(circle 1px at 20% 30%, #ffe0a0 0%, transparent 100%),
              radial-gradient(circle 2px at 70% 15%, #ffe0a0 0%, transparent 100%),
              radial-gradient(circle 1px at 40% 50%, #c0d0e0 0%, transparent 100%),
              radial-gradient(circle 1.5px at 85% 40%, #c0d0e0 0%, transparent 100%);
  animation: stars-sir 4s ease-in-out infinite alternate;
}
.scn-myth-of-er-sirens .spindle {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%) scaleY(0.6);
  background: linear-gradient(180deg, #d0b080 0%, #a08050 50%, #706030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(200,180,100,0.3);
  animation: spindle-sir 12s linear infinite;
}
.scn-myth-of-er-sirens .fates {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse 40% 100% at 25% 100%, #4a3a5a 0%, transparent 100%),
              radial-gradient(ellipse 40% 100% at 50% 100%, #4a3a5a 0%, transparent 100%),
              radial-gradient(ellipse 40% 100% at 75% 100%, #4a3a5a 0%, transparent 100%);
  animation: fates-sir 10s ease-in-out infinite;
}
.scn-myth-of-er-sirens .sirens {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 15%;
  background: radial-gradient(ellipse 20% 80% at 20% 50%, #8a7a9a 0%, transparent 100%),
              radial-gradient(ellipse 20% 80% at 50% 50%, #8a7a9a 0%, transparent 100%),
              radial-gradient(ellipse 20% 80% at 80% 50%, #8a7a9a 0%, transparent 100%);
  animation: sirens-sir 8s ease-in-out infinite alternate;
}
.scn-myth-of-er-sirens .glow {
  position: absolute; top: 50%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,180,140,0.15) 0%, transparent 70%);
  animation: glow-sir 6s ease-in-out infinite alternate;
}
@keyframes sky-sir {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes stars-sir {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes spindle-sir {
  0% { transform: translateX(-50%) scaleY(0.6) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(0.6) rotate(180deg); }
  100% { transform: translateX(-50%) scaleY(0.6) rotate(360deg); }
}
@keyframes fates-sir {
  0% { opacity: 0.7; transform: translateY(0) scaleY(1); }
  25% { opacity: 0.85; transform: translateY(-2px) scaleY(1.02); }
  50% { opacity: 0.75; transform: translateY(0) scaleY(0.98); }
  75% { opacity: 0.9; transform: translateY(-1px) scaleY(1.01); }
  100% { opacity: 0.7; transform: translateY(0) scaleY(1); }
}
@keyframes sirens-sir {
  0% { opacity: 0.5; transform: translateY(0) rotate(-2deg); }
  50% { opacity: 0.8; transform: translateY(-4px) rotate(2deg); }
  100% { opacity: 0.6; transform: translateY(-2px) rotate(0deg); }
}
@keyframes glow-sir {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
}

.scn-myth-of-er-choice {
  background: linear-gradient(180deg, #1a120a 0%, #2a1e10 40%, #3a2a15 100%),
              radial-gradient(ellipse at 50% 60%, #4a3018 0%, transparent 70%);
}
.scn-myth-of-er-choice .walls {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e10 30%, #1a120a 100%);
  animation: walls-cho 15s ease-in-out infinite alternate;
}
.scn-myth-of-er-choice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a15 0%, #2a1e10 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-myth-of-er-choice .pulpit {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a20 0%, #4a3018 50%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: pulpit-cho 4s ease-in-out infinite alternate;
}
.scn-myth-of-er-choice .figure-lachesis {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: figure-lachesis-cho 6s ease-in-out infinite;
}
.scn-myth-of-er-choice .lots {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(circle 3px at 20% 50%, #c07030 0%, transparent 100%),
              radial-gradient(circle 3px at 50% 50%, #d08040 0%, transparent 100%),
              radial-gradient(circle 3px at 80% 50%, #b06020 0%, transparent 100%);
  animation: lots-cho 3s ease-in-out infinite alternate;
}
.scn-myth-of-er-choice .samples {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #5a3a1a 0%, #4a2a10 50%, #5a3a1a 100%);
  border-radius: 10% / 50%;
  animation: samples-cho 5s ease-in-out infinite alternate;
}
.scn-myth-of-er-choice .light-source {
  position: absolute; top: 45%; left: 50%; width: 30px; height: 30px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #d09040 0%, transparent 60%);
  box-shadow: 0 0 40px 15px rgba(200,120,50,0.5);
  animation: light-cho 2s ease-in-out infinite alternate;
}
@keyframes walls-cho {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pulpit-cho {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
  50% { transform: translateX(-50%) scaleY(1.02); box-shadow: 0 10px 20px rgba(0,0,0,0.6); }
  100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
}
@keyframes figure-lachesis-cho {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-45%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-55%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes lots-cho {
  0% { opacity: 0.5; transform: translateY(0) scale(1); }
  50% { opacity: 0.8; transform: translateY(-3px) scale(1.1); }
  100% { opacity: 0.6; transform: translateY(0) scale(1); }
}
@keyframes samples-cho {
  0% { transform: scaleX(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleX(1.05) translateY(-2px); opacity: 0.9; }
  100% { transform: scaleX(1) translateY(0); opacity: 0.7; }
}
@keyframes light-cho {
  0% { opacity: 0.6; 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(1); }
}

.scn-myth-of-er-lots {
  background: linear-gradient(180deg, #1a120a 0%, #2a1a0e 40%, #1e140a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2510 0%, transparent 80%);
}
.scn-myth-of-er-lots .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 30%, #1a120a 100%);
  animation: bg-lot 12s ease-in-out infinite alternate;
}
.scn-myth-of-er-lots .fig-caster {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fig-caster-lot 4s ease-in-out infinite;
}
.scn-myth-of-er-lots .falling-lots {
  position: absolute; top: 40%; left: 10%; right: 10%; bottom: 35%;
  background: radial-gradient(circle 3px at 20% 80%, #c07030 0%, transparent 100%),
              radial-gradient(circle 2px at 40% 30%, #d08040 0%, transparent 100%),
              radial-gradient(circle 4px at 60% 70%, #b06020 0%, transparent 100%),
              radial-gradient(circle 3px at 80% 40%, #c07030 0%, transparent 100%);
  animation: falling-lots-lot 3s ease-in-out infinite;
}
.scn-myth-of-er-lots .ground-scrolls {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(90deg, #5a3a1a 0%, #4a2a10 20%, #5a3a1a 40%, #4a2a10 60%, #5a3a1a 80%, #4a2a10 100%);
  border-radius: 20% / 60%;
  animation: scrolls-lot 6s ease-in-out infinite alternate;
}
.scn-myth-of-er-lots .ambient-glow {
  position: absolute; top: 35%; left: 50%; width: 100px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(180,100,40,0.15) 0%, transparent 70%);
  animation: glow-lot 5s ease-in-out infinite alternate;
}
@keyframes bg-lot {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fig-caster-lot {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes falling-lots-lot {
  0% { opacity: 0.3; transform: translateY(0) scale(0.9); }
  50% { opacity: 0.7; transform: translateY(-5px) scale(1.1); }
  100% { opacity: 0.4; transform: translateY(-2px) scale(1); }
}
@keyframes scrolls-lot {
  0% { transform: scaleX(1) translateY(0); opacity: 0.5; }
  50% { transform: scaleX(1.08) translateY(-2px); opacity: 0.9; }
  100% { transform: scaleX(1) translateY(-1px); opacity: 0.6; }
}
@keyframes glow-lot {
  0% { opacity: 0.2; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 0.5; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
}

.scn-myth-of-er-warning {
  background: linear-gradient(180deg, #1a120a 0%, #2a1a0e 40%, #1e140a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2510 0%, transparent 80%);
}
.scn-myth-of-er-warning .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 30%, #1a120a 100%);
  animation: bg-war 15s ease-in-out infinite alternate;
}
.scn-myth-of-er-warning .scale {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6030 0%, #5a4020 50%, #3a2010 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  animation: scale-war 5s ease-in-out infinite alternate;
}
.scn-myth-of-er-warning .path-left {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 15%;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1a0a 100%);
  border-radius: 0 50% 0 50% / 0 80% 0 80%;
  animation: path-left-war 7s ease-in-out infinite;
}
.scn-myth-of-er-warning .path-right {
  position: absolute; bottom: 20%; right: 10%; width: 35%; height: 15%;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1a0a 100%);
  border-radius: 50% 0 50% 0 / 80% 0 80% 0;
  animation: path-right-war 7s ease-in-out infinite;
}
.scn-myth-of-er-warning .figure-choice {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-war 4s ease-in-out infinite alternate;
}
.scn-myth-of-er-warning .shadow-glow {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,60,20,0.2) 0%, transparent 70%);
  animation: shadow-war 3s ease-in-out infinite alternate;
}
@keyframes bg-war {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes scale-war {
  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 path-left-war {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(0.95); }
}
@keyframes path-right-war {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1.05); }
}
@keyframes figure-war {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes shadow-war {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(1); }
}

.scn-further-confusion {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0e0602 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-further-confusion .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e1e12 0%, #1e1008 100%);
  animation: si-fc-wall 15s ease-in-out infinite alternate;
}
.scn-further-confusion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a100a 0%, #0e0804 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-further-confusion .window {
  position: absolute; top: 15%; left: 15%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at center, #4a3a2a 0%, #2a1a0e 70%);
  border: 3px solid #2a1a0e;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(74,58,42,0.5), inset 0 0 20px #3a2a1a;
  animation: si-fc-window 8s ease-in-out infinite alternate;
}
.scn-further-confusion .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #c08040 0%, #8a5820 50%, #4a2a10 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(192,128,64,0.4), 0 0 80px 30px rgba(192,128,64,0.2);
  animation: si-fc-lamp 4s ease-in-out infinite alternate;
}
.scn-further-confusion .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-further-confusion .figure1 {
  position: absolute; bottom: 25%; left: 35%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-fc-fig1 6s ease-in-out infinite;
}
.scn-further-confusion .figure2 {
  position: absolute; bottom: 25%; right: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-fc-fig2 7s ease-in-out infinite reverse;
}
.scn-further-confusion .books {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 50%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: 2px 0 5px rgba(0,0,0,0.3);
  animation: si-fc-books 10s ease-in-out infinite;
}
.scn-further-confusion .dust {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: si-fc-dust 12s linear infinite;
}
@keyframes si-fc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si-fc-window { 0% { box-shadow: 0 0 20px 5px rgba(74,58,42,0.4), inset 0 0 15px #3a2a1a } 50% { box-shadow: 0 0 40px 15px rgba(74,58,42,0.6), inset 0 0 25px #4a3a2a } 100% { box-shadow: 0 0 25px 8px rgba(74,58,42,0.45), inset 0 0 18px #3a2a1a } }
@keyframes si-fc-lamp { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(192,128,64,0.3) } 50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 50px 20px rgba(192,128,64,0.5) } 100% { transform: scale(0.98) rotate(-1deg); box-shadow: 0 0 35px 12px rgba(192,128,64,0.35) } }
@keyframes si-fc-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si-fc-fig2 { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(-2px) rotate(-1deg) } 66% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si-fc-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-fc-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.3 } 25% { transform: translate(20px, -10px) scale(1.2); opacity: 0.5 } 50% { transform: translate(40px, -5px) scale(0.8); opacity: 0.2 } 75% { transform: translate(60px, -15px) scale(1.1); opacity: 0.4 } 100% { transform: translate(80px, -8px) scale(1); opacity: 0.3 } }

.scn-cleitophon-intervenes {
  background: linear-gradient(180deg, #1e1410 0%, #120a08 50%, #0a0604 100%), radial-gradient(ellipse at 40% 50%, #2a1e1a 0%, transparent 60%);
}
.scn-cleitophon-intervenes .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1210 0%, #2a1e18 50%, #1a1210 100%);
  animation: si-ci-bg 20s ease-in-out infinite alternate;
}
.scn-cleitophon-intervenes .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 10px;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateX(15deg);
}
.scn-cleitophon-intervenes .scroll {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #c8b898 0%, #e8d8b8 30%, #d8c8a8 70%, #b8a888 100%);
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: si-ci-scroll 8s ease-in-out infinite;
}
.scn-cleitophon-intervenes .hand {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #d8b898 0%, #b89070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-ci-hand 4s ease-in-out infinite;
}
.scn-cleitophon-intervenes .arm {
  position: absolute; bottom: 35%; left: 25%; width: 50px; height: 12px;
  background: linear-gradient(90deg, #c8a888 0%, #b89070 100%);
  border-radius: 10px;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: si-ci-arm 4s ease-in-out infinite;
}
.scn-cleitophon-intervenes .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.4);
  filter: blur(5px);
  border-radius: 50%;
  animation: si-ci-shadow 6s ease-in-out infinite alternate;
}
.scn-cleitophon-intervenes .candle {
  position: absolute; bottom: 32%; left: 60%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #e8d8b8 0%, #d8c098 50%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,180,150,0.3);
  animation: si-ci-candle 3s ease-in-out infinite alternate;
}
.scn-cleitophon-intervenes .book {
  position: absolute; bottom: 22%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: si-ci-book 10s ease-in-out infinite;
}
.scn-cleitophon-intervenes .inkwell {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes si-ci-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si-ci-scroll { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-ci-hand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si-ci-arm { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(-20deg) } 75% { transform: rotate(-25deg) } 100% { transform: rotate(-20deg) } }
@keyframes si-ci-shadow { 0% { transform: scale(1); opacity: 0.4 } 50% { transform: scale(1.1); opacity: 0.6 } 100% { transform: scale(0.95); opacity: 0.35 } }
@keyframes si-ci-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 15px 5px rgba(200,180,150,0.3) } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 25px 10px rgba(200,180,150,0.5) } 100% { transform: scaleY(0.98) rotate(-0.5deg); box-shadow: 0 0 18px 6px rgba(200,180,150,0.35) } }
@keyframes si-ci-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }

.scn-meaning-of-interest {
  background: linear-gradient(180deg, #1e1612 0%, #120c08 50%, #0a0604 100%), radial-gradient(ellipse at 30% 70%, #2a1e18 0%, transparent 60%);
}
.scn-meaning-of-interest .bookshelf {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 40%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: si-mi-shelf 15s ease-in-out infinite alternate;
}
.scn-meaning-of-interest .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-mi-fig 8s ease-in-out infinite;
}
.scn-meaning-of-interest .book-fall {
  position: absolute; top: 15%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.4);
  animation: si-mi-fall 6s ease-in-out infinite;
}
.scn-meaning-of-interest .lamp {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 28px;
  background: radial-gradient(circle at 50% 20%, #c08040 0%, #8a5820 50%, #4a2a10 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.3), 0 0 60px 20px rgba(192,128,64,0.15);
  animation: si-mi-lamp 4s ease-in-out infinite alternate;
}
.scn-meaning-of-interest .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 8px;
  background: rgba(0,0,0,0.4);
  filter: blur(4px);
  border-radius: 50%;
}
.scn-meaning-of-interest .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-meaning-of-interest .paper {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  animation: si-mi-paper 12s ease-in-out infinite alternate;
}
@keyframes si-mi-shelf { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si-mi-fig { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(4px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes si-mi-fall { 0% { transform: translateY(-20px) rotate(-10deg); opacity: 0 } 20% { transform: translateY(0) rotate(0deg); opacity: 1 } 80% { transform: translateY(0) rotate(0deg); opacity: 1 } 100% { transform: translateY(30px) rotate(10deg); opacity: 0 } }
@keyframes si-mi-lamp { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(192,128,64,0.3) } 50% { transform: scale(1.08) rotate(2deg); box-shadow: 0 0 40px 15px rgba(192,128,64,0.5) } 100% { transform: scale(0.95) rotate(-1deg); box-shadow: 0 0 25px 10px rgba(192,128,64,0.35) } }
@keyframes si-mi-paper { 0% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(5deg) } }

.scn-thrasymachus-clarifies {
  background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 50%, #060202 100%), radial-gradient(ellipse at 50% 40%, #2a1a12 0%, transparent 60%);
}
.scn-thrasymachus-clarifies .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a100c 0%, #2a1a12 50%, #1a100c 100%);
  animation: si-tc-wall 5s ease-in-out infinite alternate;
}
.scn-thrasymachus-clarifies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #120a08 0%, #080404 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.7);
}
.scn-thrasymachus-clarifies .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a0e0a 100%);
  border-radius: 6px;
  box-shadow: 0 -5px 12px rgba(0,0,0,0.5);
}
.scn-thrasymachus-clarifies .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 26px;
  background: radial-gradient(circle at 50% 20%, #c07030 0%, #904818 50%, #4a2010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(192,112,48,0.5), 0 0 80px 30px rgba(192,112,48,0.25);
  animation: si-tc-lamp 0.8s ease-in-out infinite alternate;
}
.scn-thrasymachus-clarifies .figure1 {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-tc-fig1 1.5s ease-in-out infinite;
}
.scn-thrasymachus-clarifies .figure2 {
  position: absolute; bottom: 22%; right: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-tc-fig2 1.8s ease-in-out infinite reverse;
}
.scn-thrasymachus-clarifies .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 12px;
  background: rgba(0,0,0,0.6);
  filter: blur(6px);
  border-radius: 50%;
  animation: si-tc-shadow 2s ease-in-out infinite alternate;
}
.scn-thrasymachus-clarifies .flicker {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(192,112,48,0.08) 0%, transparent 60%);
  animation: si-tc-flicker 0.4s linear infinite;
}
.scn-thrasymachus-clarifies .dust {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(220,180,140,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: si-tc-dust 3s linear infinite;
}
@keyframes si-tc-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes si-tc-lamp { 0% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 30px 10px rgba(192,112,48,0.4) } 50% { transform: scale(1.15) rotate(3deg); box-shadow: 0 0 60px 25px rgba(192,112,48,0.6) } 100% { transform: scale(0.9) rotate(-2deg); box-shadow: 0 0 35px 12px rgba(192,112,48,0.35) } }
@keyframes si-tc-fig1 { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(-4px) rotate(-3deg) } 75% { transform: translateX(6px) rotate(4deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes si-tc-fig2 { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-6px) rotate(-4deg) } 50% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(-8px) rotate(-5deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes si-tc-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.5 } 50% { transform: scale(1.1) translateX(10px); opacity: 0.7 } 100% { transform: scale(0.95) translateX(-5px); opacity: 0.4 } }
@keyframes si-tc-flicker { 0%,100% { opacity: 0.6 } 10% { opacity: 1 } 30% { opacity: 0.5 } 60% { opacity: 0.9 } 80% { opacity: 0.4 } }
@keyframes si-tc-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.2 } 25% { transform: translate(15px, -8px) scale(1.3); opacity: 0.4 } 50% { transform: translate(30px, -4px) scale(0.8); opacity: 0.1 } 75% { transform: translate(45px, -12px) scale(1.1); opacity: 0.3 } 100% { transform: translate(60px, -6px) scale(1); opacity: 0.2 } }

.scn-magnificent-lie {
  background:
    radial-gradient(ellipse at 50% 60%, #2a2218 0%, #1a1410 50%, #0d0a08 100%) 0 0 / 100% 100%,
    linear-gradient(180deg, #1a1410 0%, #2a2218 30%, #1a1410 100%);
}

.scn-magnificent-lie .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1812 0%, #2a2218 50%, #1a1410 100%);
  animation: ml-ambient 12s ease-in-out infinite alternate;
}

.scn-magnificent-lie .desk {
  position: absolute;
  bottom: 10%;
  left: 25%;
  right: 25%;
  height: 25%;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(15deg);
  animation: ml-desk 20s ease-in-out infinite;
}

.scn-magnificent-lie .candle {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 14px;
  height: 36px;
  margin-left: -7px;
  background: linear-gradient(180deg, #c8b088 0%, #8a6e4a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,176,136,0.3);
  animation: ml-candle 8s ease-in-out infinite;
}

.scn-magnificent-lie .flame {
  position: absolute;
  bottom: 56%;
  left: 50%;
  width: 16px;
  height: 24px;
  margin-left: -8px;
  background: radial-gradient(ellipse at 50% 60%, #ffe080 0%, #ffb040 40%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 12px #ffa030, 0 0 60px 24px rgba(255,160,48,0.4);
  animation: ml-flame 3s ease-in-out infinite alternate;
}

.scn-magnificent-lie .scroll {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 80px;
  height: 18px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a47c 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ml-scroll 10s ease-in-out infinite alternate;
}

.scn-magnificent-lie .hand {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #8a6e4a 0%, #5a4228 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: ml-hand 6s ease-in-out infinite alternate;
}

.scn-magnificent-lie .shadow {
  position: absolute;
  bottom: 10%;
  left: 30%;
  right: 30%;
  height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%);
  pointer-events: none;
  animation: ml-shadow 12s ease-in-out infinite alternate;
}

.scn-magnificent-lie .dust {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 6px;
  height: 6px;
  background: rgba(200,180,140,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: ml-dust 25s linear infinite;
  box-shadow: 40px 20px 0 0 rgba(200,180,140,0.1), 80px 50px 0 0 rgba(200,180,140,0.12), 120px 10px 0 0 rgba(200,180,140,0.08);
}

/* Keyframes for magnificent-lie */
@keyframes ml-ambient {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ml-desk {
  0%, 100% { transform: perspective(800px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(800px) rotateX(15deg) translateY(-2px); }
}
@keyframes ml-candle {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
}
@keyframes ml-flame {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(255,160,48,0.3); }
  50% { transform: scaleY(1.1) scaleX(1); opacity: 1; box-shadow: 0 0 35px 14px #ffb040, 0 0 60px 24px rgba(255,160,48,0.5); }
  100% { transform: scaleY(0.9) scaleX(0.85); opacity: 0.75; box-shadow: 0 0 15px 6px #ff9030, 0 0 30px 12px rgba(255,144,48,0.25); }
}
@keyframes ml-scroll {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes ml-hand {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(6deg) translateY(0); }
}
@keyframes ml-shadow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}
@keyframes ml-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  100% { transform: translateY(-200px) translateX(100px); opacity: 0; }
}

/* ────────────────────────────────────── */
.scn-camp-and-communal-life {
  background:
    linear-gradient(180deg, #4a7ab0 0%, #6a9ac0 30%, #7ab0d0 60%, #b0d0e0 100%),
    radial-gradient(ellipse at 50% 100%, #d0e8f0 0%, transparent 60%);
}
.scn-camp-and-communal-life .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a7ab0 0%, #7ab0d0 40%, #b0d0e0 100%);
  animation: ccl-sky 15s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .mountain {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: ccl-mountain 20s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: ccl-ground 10s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .tent-1 {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 60px;
  height: 50px;
  background: linear-gradient(180deg, #c8b878 0%, #a09050 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ccl-tent1 8s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .tent-2 {
  position: absolute;
  bottom: 30%;
  right: 30%;
  width: 45px;
  height: 40px;
  background: linear-gradient(180deg, #b8a868 0%, #8a7a40 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: ccl-tent2 6s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-camp-and-communal-life .fire {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 30px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #ffa030 0%, #ff8040 30%, #c84000 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px #ffa030, 0 0 60px 30px rgba(255,160,48,0.3);
  animation: ccl-fire 3s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .figure {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccl-figure 5s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .flag {
  position: absolute;
  bottom: 55%;
  left: 30%;
  width: 4px;
  height: 30px;
  background: #5a3a1a;
  transform-origin: bottom center;
  animation: ccl-flag 4s ease-in-out infinite alternate;
}
.scn-camp-and-communal-life .flag::after {
  content: "";
  position: absolute;
  top: 0;
  left: 4px;
  width: 20px;
  height: 14px;
  background: #c04020;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  animation: ccl-flag-cloth 4s ease-in-out infinite alternate;
}

@keyframes ccl-sky {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes ccl-mountain {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes ccl-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes ccl-tent1 {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ccl-tent2 {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.04) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ccl-fire {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.85; box-shadow: 0 0 20px 10px #ffa030, 0 0 40px 20px rgba(255,160,48,0.2); }
  50% { transform: scaleY(1.15) scaleX(1); opacity: 1; box-shadow: 0 0 40px 20px #ffb040, 0 0 80px 40px rgba(255,176,64,0.4); }
  100% { transform: scaleY(0.9) scaleX(0.85); opacity: 0.8; box-shadow: 0 0 15px 8px #ff9030, 0 0 30px 15px rgba(255,144,48,0.15); }
}
@keyframes ccl-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ccl-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ccl-flag-cloth {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}

/* ────────────────────────────────────── */
.scn-religious-and-ethical-aspect {
  background:
    radial-gradient(ellipse at 50% 40%, #2e241c 0%, #1e1612 50%, #0e0a08 100%),
    linear-gradient(180deg, #2a201a 0%, #1e1612 50%, #100c0a 100%);
}

.scn-religious-and-ethical-aspect .study-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a1e16 0%, #3a2a1e 50%, #1e1410 100%);
  animation: rea-wall 20s ease-in-out infinite alternate;
}
.scn-religious-and-ethical-aspect .bookshelf {
  position: absolute;
  top: 10%;
  left: 10%;
  right: 60%;
  bottom: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: rea-shelf 12s ease-in-out infinite alternate;
}
.scn-religious-and-ethical-aspect .desk {
  position: absolute;
  bottom: 15%;
  left: 15%;
  right: 15%;
  height: 20%;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(10deg);
  animation: rea-desk 18s ease-in-out infinite;
}
.scn-religious-and-ethical-aspect .lamp {
  position: absolute;
  bottom: 32%;
  left: 32%;
  width: 18px;
  height: 28px;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px 3px rgba(160,128,80,0.4);
  animation: rea-lamp 8s ease-in-out infinite alternate;
}
.scn-religious-and-ethical-aspect .book-open {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 70px;
  height: 26px;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
  animation: rea-book 14s ease-in-out infinite alternate;
}
.scn-religious-and-ethical-aspect .quill {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 4px;
  height: 36px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b8a888 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  transform: rotate(20deg);
  animation: rea-quill 5s ease-in-out infinite alternate;
}
.scn-religious-and-ethical-aspect .inkwell {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 16px;
  height: 14px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-religious-and-ethical-aspect .hands {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a422a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: rea-hands 7s ease-in-out infinite alternate;
}

@keyframes rea-wall {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes rea-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes rea-desk {
  0% { transform: perspective(600px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(10deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(10deg) translateY(0); }
}
@keyframes rea-lamp {
  0% { transform: rotate(-2deg); opacity: 0.85; box-shadow: 0 0 8px 2px rgba(160,128,80,0.3); }
  50% { transform: rotate(2deg); opacity: 1; box-shadow: 0 0 16px 5px rgba(160,128,80,0.5); }
  100% { transform: rotate(-2deg); opacity: 0.88; box-shadow: 0 0 10px 3px rgba(160,128,80,0.35); }
}
@keyframes rea-book {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes rea-quill {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-3px); }
  100% { transform: rotate(18deg) translateY(0); }
}
@keyframes rea-hands {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

/* ────────────────────────────────────── */
.scn-appeal-to-homer {
  background:
    radial-gradient(ellipse at 50% 50%, #2a2218 0%, #1a1410 60%, #0d0a08 100%),
    linear-gradient(180deg, #1e1812 0%, #2a2218 40%, #1a1410 100%);
}

.scn-appeal-to-homer .scroll-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a1e16 50%, #1a1410 100%);
  animation: ah-bg 20s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .scroll-unrolled {
  position: absolute;
  bottom: 20%;
  left: 20%;
  right: 20%;
  height: 40%;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  border-radius: 4px 4px 10% 10% / 10% 10% 20% 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(5deg);
  animation: ah-scroll 15s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .figure-silhouette {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #0d0a08 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ah-figure 6s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .lyre {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: ah-lyre 8s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .tablet {
  position: absolute;
  bottom: 32%;
  left: 35%;
  width: 24px;
  height: 30px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ah-tablet 10s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .lamp-glow {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 50px;
  height: 50px;
  margin-left: -25px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ah-glow 4s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .shadow-pillar {
  position: absolute;
  bottom: 0;
  left: 30%;
  right: 30%;
  height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ah-shadow 12s ease-in-out infinite alternate;
}
.scn-appeal-to-homer .dust-motes {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 8px;
  height: 8px;
  background: rgba(200,180,140,0.1);
  border-radius: 50%;
  filter: blur(5px);
  animation: ah-dust 30s linear infinite;
  box-shadow: 30px 40px 0 0 rgba(200,180,140,0.12), 70px 80px 0 0 rgba(200,180,140,0.08), 110px 30px 0 0 rgba(200,180,140,0.1);
}

@keyframes ah-bg {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes ah-scroll {
  0% { transform: perspective(800px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(800px) rotateX(5deg) translateY(-4px); }
  100% { transform: perspective(800px) rotateX(5deg) translateY(0); }
}
@keyframes ah-figure {
  0% { transform: rotate(-2deg) translateY(0) scaleX(1); }
  50% { transform: rotate(2deg) translateY(-2px) scaleX(1.02); }
  100% { transform: rotate(-2deg) translateY(0) scaleX(1); }
}
@keyframes ah-lyre {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(18deg) scaleY(1.03); }
  100% { transform: rotate(14deg) scaleY(1); }
}
@keyframes ah-tablet {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ah-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 ah-shadow {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.7; }
}
@keyframes ah-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: translateY(-300px) translateX(150px); opacity: 0; }
}

.scn-spartan-military-rules {
  background: linear-gradient(180deg, #2a2420 0%, #3a3028 40%, #1e1815 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 65%);
}
.scn-spartan-military-rules .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2722 0%, #3a312a 50%, #221e1a 100%);
  box-shadow: inset 0 8px 24px rgba(0,0,0,.5);
  animation: smr-shadow 18s ease-in-out infinite alternate;
}
.scn-spartan-military-rules .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  border-radius: 12% 12% 0 0 / 20% 20% 0 0;
}
.scn-spartan-military-rules .bench {
  position: absolute; bottom: 18%; left: 30%; width: 35%; height: 4%;
  background: linear-gradient(90deg, #4a3828 0%, #5c4834 50%, #3a2a1c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: smr-bench 14s ease-in-out infinite alternate;
}
.scn-spartan-military-rules .shield {
  position: absolute; bottom: 24%; right: 22%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, #4a3422 50%, #2a1a10 100%);
  border-radius: 50% 50% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 2px 2px 6px rgba(0,0,0,.5);
  transform: rotate(8deg);
  animation: smr-shield 6s ease-in-out infinite;
}
.scn-spartan-military-rules .spear {
  position: absolute; bottom: 20%; right: 35%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 40%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-12deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: smr-spear 20s ease-in-out infinite alternate;
}
.scn-spartan-military-rules .figure {
  position: absolute; bottom: 14%; left: 38%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 60%, #1a120c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: smr-figure 5s ease-in-out infinite;
}
.scn-spartan-military-rules .lamp {
  position: absolute; bottom: 28%; left: 20%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #c08040 0%, #8a5a2a 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 6px 2px #a07040;
  transform: rotate(-5deg);
  animation: smr-lamp 4s ease-in-out infinite alternate;
}
.scn-spartan-military-rules .lamp-glow {
  position: absolute; bottom: 22%; left: 16%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c08040 0%, #a0703030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: smr-lamp-glow 4s ease-in-out infinite alternate;
}
@keyframes smr-shadow { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.02); } 100% { opacity: .5; transform: scaleY(.98); } }
@keyframes smr-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes smr-shield { 0% { transform: rotate(8deg) scale(1); } 40% { transform: rotate(5deg) scale(1.02); } 60% { transform: rotate(10deg) scale(.98); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes smr-spear { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }
@keyframes smr-figure { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes smr-lamp { 0% { opacity: .7; transform: rotate(-5deg) scale(1); } 50% { opacity: 1; transform: rotate(-3deg) scale(1.05); } 100% { opacity: .8; transform: rotate(-5deg) scale(.98); } }
@keyframes smr-lamp-glow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(.95); } }

.scn-love-of-lacedaemon {
  background: linear-gradient(180deg, #2a2018 0%, #3a2e24 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a20 0%, transparent 70%);
}
.scn-love-of-lacedaemon .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a140e 80%);
  animation: lol-depth 20s ease-in-out infinite alternate;
}
.scn-love-of-lacedaemon .hearth-glow {
  position: absolute; bottom: 20%; left: 40%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #c0804040 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(30px);
  animation: lol-hearth 12s ease-in-out infinite alternate;
}
.scn-love-of-lacedaemon .table {
  position: absolute; bottom: 12%; left: 50%; width: 70px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a22 0%, #7a5238 50%, #4a2e1a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.3);
  animation: lol-table 18s ease-in-out infinite alternate;
}
.scn-love-of-lacedaemon .brazier {
  position: absolute; bottom: 16%; left: 50%; width: 20px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #d09050 0%, #8a5a2a 70%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 18px 6px #c08040;
  animation: lol-brazier 3s ease-in-out infinite alternate;
}
.scn-love-of-lacedaemon .figure-l {
  position: absolute; bottom: 8%; left: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 80%);
  border-radius: 45% 40% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: lol-figure-l 6s ease-in-out infinite;
}
.scn-love-of-lacedaemon .figure-r {
  position: absolute; bottom: 8%; right: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 80%);
  border-radius: 40% 45% 35% 35% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,.4);
  animation: lol-figure-r 6s ease-in-out infinite;
}
.scn-love-of-lacedaemon .scroll {
  position: absolute; bottom: 16%; left: 50%; width: 30px; height: 6px;
  transform: translateX(-50%) translateY(10px);
  background: linear-gradient(90deg, #b8a080 0%, #d8c0a0 50%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
  animation: lol-scroll 9s ease-in-out infinite alternate;
}
@keyframes lol-depth { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes lol-hearth { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .6; transform: scale(.95); } }
@keyframes lol-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes lol-brazier { 0% { opacity: .7; transform: translateX(-50%) scale(1) rotate(0); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05) rotate(2deg); } 100% { opacity: .8; transform: translateX(-50%) scale(.98) rotate(0); } }
@keyframes lol-figure-l { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lol-figure-r { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(-2deg); } 60% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lol-scroll { 0% { transform: translateX(-50%) translateY(10px) scaleX(1); } 50% { transform: translateX(-50%) translateY(8px) scaleX(1.02); } 100% { transform: translateX(-50%) translateY(10px) scaleX(.98); } }

.scn-longing-for-ideal {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #141420 100%),
              radial-gradient(ellipse at 30% 50%, #3a3a50 0%, transparent 60%);
}
.scn-longing-for-ideal .bg-walls {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1e1e30 0%, #2a2a40 50%, #1a1a28 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
  animation: lfi-walls 22s ease-in-out infinite alternate;
}
.scn-longing-for-ideal .window-frame {
  position: absolute; top: 15%; right: 25%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 0 4px #2a1a0e, 0 8px 16px rgba(0,0,0,.5);
  transform: rotate(1deg);
  animation: lfi-frame 16s ease-in-out infinite alternate;
}
.scn-longing-for-ideal .window-light {
  position: absolute; top: 18%; right: 28%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #c8a860 0%, #a0804020 60%, transparent);
  border-radius: 4%;
  filter: blur(4px);
  animation: lfi-light 6s ease-in-out infinite alternate;
}
.scn-longing-for-ideal .figure {
  position: absolute; bottom: 12%; right: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 70%, #0e0e18 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: lfi-figure 5s ease-in-out infinite;
}
.scn-longing-for-ideal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a28 0%, #10101a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-longing-for-ideal .shadow {
  position: absolute; bottom: 10%; right: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #0a0a12 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lfi-shadow 8s ease-in-out infinite alternate;
}
@keyframes lfi-walls { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes lfi-frame { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes lfi-light { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .6; transform: scale(.98); } }
@keyframes lfi-figure { 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 lfi-shadow { 0% { transform: scaleX(1) translateX(0); opacity: .7; } 50% { transform: scaleX(1.1) translateX(4px); opacity: .9; } 100% { transform: scaleX(.95) translateX(-2px); opacity: .6; } }

.scn-athenian-freedom-and-spartan-discipline {
  background: linear-gradient(135deg, #2a2a2e 0%, #3a3a40 50%, #1e1e22 100%),
              radial-gradient(ellipse at 30% 50%, #3a3a44 0%, transparent 70%);
}
.scn-athenian-freedom-and-spartan-discipline .bg-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(180deg, #2a2624 0%, #3a322e 50%, #1e1a18 100%);
  box-shadow: inset -8px 0 16px rgba(0,0,0,.3);
  animation: afs-left 20s ease-in-out infinite alternate;
}
.scn-athenian-freedom-and-spartan-discipline .bg-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #1e1e28 100%);
  box-shadow: inset 8px 0 16px rgba(0,0,0,.3);
  animation: afs-right 20s ease-in-out infinite alternate;
}
.scn-athenian-freedom-and-spartan-discipline .spartan-pillar {
  position: absolute; bottom: 10%; left: 25%; width: 24px; height: 80px;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: afs-pillar 14s ease-in-out infinite alternate;
}
.scn-athenian-freedom-and-spartan-discipline .athenian-lyre {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #a08858 0%, #705838 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: -2px 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: afs-lyre 6s ease-in-out infinite;
}
.scn-athenian-freedom-and-spartan-discipline .figure-c {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 64px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a40 0%, #22222a 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: afs-figure 8s ease-in-out infinite;
}
.scn-athenian-freedom-and-spartan-discipline .divider {
  position: absolute; inset: 5% 50% 5% auto; width: 2px;
  background: linear-gradient(180deg, transparent, #6a6a7a 30%, #8a8a9a 50%, #6a6a7a 70%, transparent);
  transform: translateX(-50%);
  animation: afs-divider 12s ease-in-out infinite alternate;
}
@keyframes afs-left { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes afs-right { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes afs-pillar { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(.98); } }
@keyframes afs-lyre { 0% { transform: rotate(-5deg) scale(1); } 40% { transform: rotate(-2deg) scale(1.02); } 60% { transform: rotate(-7deg) scale(.98); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes afs-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes afs-divider { 0% { opacity: .4; transform: translateX(-50%) scaleY(1); } 50% { opacity: .8; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: .5; transform: translateX(-50%) scaleY(.95); } }

/* Scene: thrasymachus-sophist */
.scn-thrasymachus-sophist {
  background: 
    linear-gradient(180deg, #f5ecd7 0%, #e3d5b0 50%, #c4b090 100%),
    radial-gradient(ellipse at 30% 60%, #fff8e7 0%, transparent 70%);
}
.scn-thrasymachus-sophist .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dbc4 0%, #d6c8af 40%, #b8a68a 100%);
  animation: s1-room 8s ease-in-out infinite alternate;
}
.scn-thrasymachus-sophist .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8b7a64 0%, #6b5a44 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: s1-floor 6s ease-in-out infinite alternate;
}
.scn-thrasymachus-sophist .window-light {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #fff3c4 0%, #f5d89a 60%, transparent 80%);
  border-radius: 4px;
  box-shadow: 0 0 30px 15px rgba(245,216,154,0.5), 0 0 60px 30px rgba(245,216,154,0.2);
  animation: s1-light 3s ease-in-out infinite alternate;
}
.scn-thrasymachus-sophist .table {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-thrasymachus-sophist .sophist-silhouette {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s1-sway 4s ease-in-out infinite;
}
.scn-thrasymachus-sophist .sophist-hand {
  position: absolute; bottom: 40%; left: 52%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: s1-hand 2.5s ease-in-out infinite alternate;
}
.scn-thrasymachus-sophist .money-bag {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 40% 30%, #b3936b 0%, #7a5c3c 70%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: s1-bag 3s ease-in-out infinite alternate;
}
.scn-thrasymachus-sophist .shadow-line {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a3a2a 50%, transparent 100%);
  filter: blur(2px);
  animation: s1-shadow 5s ease-in-out infinite alternate;
}
@keyframes s1-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s1-light { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.85; transform: scale(1) } }
@keyframes s1-sway { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes s1-hand { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes s1-bag { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes s1-shadow { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(8px) } 100% { opacity:0.4; transform: translateX(-4px) } }

/* Scene: glaucon-and-adeimantus */
.scn-glaucon-and-adeimantus {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d6c8b0 40%, #b8a68a 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 70%);
}
.scn-glaucon-and-adeimantus .stage-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d6c8b0 0%, #c0b098 40%, #a09078 100%);
  animation: s2-bg 10s ease-in-out infinite alternate;
}
.scn-glaucon-and-adeimantus .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8b7a64 0%, #6b5a44 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.2);
}
.scn-glaucon-and-adeimantus .spotlight {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 160px;
  background: radial-gradient(ellipse, rgba(255,248,232,0.6) 0%, transparent 70%);
  transform: translateX(-50%);
  border-radius: 50%;
  animation: s2-spotlight 6s ease-in-out infinite alternate;
}
.scn-glaucon-and-adeimantus .figure-left {
  position: absolute; bottom: 20%; left: 28%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s2-figure 8s ease-in-out infinite;
}
.scn-glaucon-and-adeimantus .figure-center {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: s2-figure-center 9s ease-in-out infinite;
}
.scn-glaucon-and-adeimantus .figure-right {
  position: absolute; bottom: 20%; right: 28%; width: 28px; height: 78px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s2-figure 8s ease-in-out infinite reverse;
}
.scn-glaucon-and-adeimantus .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  filter: blur(1px);
  animation: s2-curtain 15s ease-in-out infinite alternate;
}
.scn-glaucon-and-adeimantus .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 30% 0 0 30% / 20% 0 0 20%;
  filter: blur(1px);
  animation: s2-curtain 15s ease-in-out infinite alternate-reverse;
}
@keyframes s2-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s2-spotlight { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.8; transform: translateX(-50%) scale(0.95) } }
@keyframes s2-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes s2-figure-center { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-50%) rotate(-2deg) } 66% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes s2-curtain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }

/* Scene: characters-successive-morality */
.scn-characters-successive-morality {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-characters-successive-morality .bg-dim {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3a 50%, #0a0a18 100%);
  animation: s3-bg 12s ease-in-out infinite alternate;
}
.scn-characters-successive-morality .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-characters-successive-morality .light-source {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #c8b880 0%, rgba(200,184,128,0.2) 70%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,184,128,0.3);
  animation: s3-light 5s ease-in-out infinite alternate;
}
.scn-characters-successive-morality .char-1 {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s3-char 7s ease-in-out infinite;
}
.scn-characters-successive-morality .char-2 {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s3-char 7s ease-in-out infinite 1s;
}
.scn-characters-successive-morality .char-3 {
  position: absolute; bottom: 30%; right: 25%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s3-char 7s ease-in-out infinite 2s;
}
.scn-characters-successive-morality .progression-line {
  position: absolute; bottom: 35%; left: 15%; right: 15%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,184,128,0.4) 50%, transparent 100%);
  filter: blur(2px);
  animation: s3-line 10s ease-in-out infinite alternate;
}
@keyframes s3-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s3-light { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes s3-char { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes s3-line { 0% { opacity:0.2; transform: scaleX(0.8) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.9) } }

/* Scene: socrates-delineation */
.scn-socrates-delineation {
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #141420 40%, #0a0a12 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-socrates-delineation .study-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e18 100%);
  animation: s4-wall 10s ease-in-out infinite alternate;
}
.scn-socrates-delineation .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(15deg);
}
.scn-socrates-delineation .lamp {
  position: absolute; bottom: 45%; left: 60%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
}
.scn-socrates-delineation .lamp::after {
  content: '';
  position: absolute; bottom: -8px; left: -10px; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #f0c868 0%, rgba(240,200,104,0.3) 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,200,104,0.4);
  animation: s4-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-socrates-delineation .socrates-profile {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 40% 40% 30% / 50% 50% 30% 40%;
  transform-origin: bottom center;
  animation: s4-breathe 6s ease-in-out infinite;
}
.scn-socrates-delineation .socrates-hand {
  position: absolute; bottom: 25%; left: 48%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: top center;
  animation: s4-hand 5s ease-in-out infinite alternate;
}
.scn-socrates-delineation .scroll {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #c8b080 0%, #a08060 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: s4-scroll 8s ease-in-out infinite alternate;
}
.scn-socrates-delineation .book {
  position: absolute; bottom: 24%; left: 52%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateY(10deg);
  animation: s4-book 7s ease-in-out infinite alternate;
}
@keyframes s4-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s4-lamp-glow { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes s4-breathe { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes s4-hand { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes s4-scroll { 0% { transform: perspective(200px) rotateX(-5deg) translateX(0) } 50% { transform: perspective(200px) rotateX(-8deg) translateX(3px) } 100% { transform: perspective(200px) rotateX(-5deg) translateX(0) } }
@keyframes s4-book { 0% { transform: perspective(200px) rotateY(10deg) } 50% { transform: perspective(200px) rotateY(15deg) } 100% { transform: perspective(200px) rotateY(5deg) } }

.scn-bacon-new-atlantis {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1c1410 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%);
}
.scn-bacon-new-atlantis .back-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1f1a 40%, transparent 100%);
  animation: bna-wall 15s ease-in-out infinite alternate;
}
.scn-bacon-new-atlantis .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(0deg, #1a100e 0%, #231814 40%, #2a1f1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: bna-floor 20s ease-in-out infinite alternate;
}
.scn-bacon-new-atlantis .desk {
  position: absolute;
  bottom: 22%; left: 50%;
  width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3528 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bna-desk 8s ease-in-out infinite;
}
.scn-bacon-new-atlantis .bookstack {
  position: absolute;
  bottom: 26%; left: 48%;
  width: 12%; height: 14%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 50%, #3a2418 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: bna-book 10s ease-in-out infinite;
}
.scn-bacon-new-atlantis .candle {
  position: absolute;
  bottom: 28%; left: 56%;
  width: 3%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b080 0%, #b09060 30%, #8a6e44 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: bna-candle 5s ease-in-out infinite alternate;
}
.scn-bacon-new-atlantis .glow {
  position: absolute;
  bottom: 28%; left: 56%;
  width: 40%; height: 60%;
  transform: translate(-50%, -20%);
  background: radial-gradient(circle, #ffd090 0%, #c09050 40%, transparent 70%);
  opacity: 0.3;
  pointer-events: none;
  animation: bna-glow 4s ease-in-out infinite alternate;
}
.scn-bacon-new-atlantis .figure {
  position: absolute;
  bottom: 20%; left: 38%;
  width: 14%; height: 32%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bna-figure 12s ease-in-out infinite;
}
.scn-bacon-new-atlantis .shadows {
  position: absolute;
  bottom: 18%; left: 20%;
  width: 60%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: bna-shadows 8s ease-in-out infinite alternate;
}
@keyframes bna-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bna-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bna-desk { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes bna-book { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes bna-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes bna-glow { 0% { opacity:0.2; transform: translate(-50%, -20%) scale(0.9) } 50% { opacity:0.4; transform: translate(-50%, -20%) scale(1.1) } 100% { opacity:0.25; transform: translate(-50%, -20%) scale(0.95) } }
@keyframes bna-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes bna-shadows { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-bacon-pity {
  background: 
    linear-gradient(180deg, #3a2a1e 0%, #2a1f1a 40%, #1a140e 100%),
    radial-gradient(ellipse at 70% 60%, #5a3a24 0%, transparent 60%);
}
.scn-bacon-pity .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 50%, transparent 100%);
  animation: bp-wall 18s ease-in-out infinite alternate;
}
.scn-bacon-pity .doorway {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 30%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1f1612 0%, #0f0a08 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  border: 4px solid #4a3528;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: bp-door 20s ease-in-out infinite;
}
.scn-bacon-pity .pedestal {
  position: absolute;
  bottom: 22%; left: 42%;
  width: 12%; height: 16%;
  background: linear-gradient(180deg, #5a3a24 0%, #3a2a1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: bp-pedestal 14s ease-in-out infinite alternate;
}
.scn-bacon-pity .lamp {
  position: absolute;
  bottom: 40%; left: 42%;
  width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b08040 60%, #8a5e30 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform: rotate(5deg);
  animation: bp-lamp 6s ease-in-out infinite alternate;
}
.scn-bacon-pity .glow {
  position: absolute;
  bottom: 34%; left: 44%;
  width: 50%; height: 50%;
  background: radial-gradient(circle, rgba(200,150,80,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: bp-glow 5s ease-in-out infinite alternate;
}
.scn-bacon-pity .figure-profile {
  position: absolute;
  bottom: 24%; left: 28%;
  width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: bp-figure 12s ease-in-out infinite;
}
.scn-bacon-pity .hand-extended {
  position: absolute;
  bottom: 32%; left: 40%;
  width: 12%; height: 8%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(15deg);
  transform-origin: right center;
  animation: bp-hand 8s ease-in-out infinite alternate;
}
.scn-bacon-pity .light-pool {
  position: absolute;
  bottom: 18%; left: 30%;
  width: 40%; height: 12%;
  background: radial-gradient(ellipse, rgba(180,130,70,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: bp-pool 10s ease-in-out infinite alternate;
}
@keyframes bp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bp-door { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes bp-pedestal { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bp-lamp { 0% { transform: rotate(3deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.05) } 100% { transform: rotate(2deg) scaleY(0.98) } }
@keyframes bp-glow { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.35; transform: scale(0.95) } }
@keyframes bp-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) } }
@keyframes bp-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(12deg) } }
@keyframes bp-pool { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-campanella-community {
  background: 
    linear-gradient(180deg, #2a2220 0%, #1f1612 40%, #140e0c 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 50%);
}
.scn-campanella-community .hall-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1f1f 50%, transparent 100%);
  animation: cc-hall 16s ease-in-out infinite alternate;
}
.scn-campanella-community .pillar-left {
  position: absolute;
  bottom: 20%; left: 8%;
  width: 5%; height: 60%;
  background: linear-gradient(90deg, #4a3a3a 0%, #6a5048 30%, #4a3a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: cc-pillar 20s ease-in-out infinite alternate;
}
.scn-campanella-community .pillar-right {
  position: absolute;
  bottom: 20%; right: 8%;
  width: 5%; height: 60%;
  background: linear-gradient(270deg, #4a3a3a 0%, #6a5048 30%, #4a3a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: cc-pillar 20s ease-in-out infinite alternate 0.3s;
}
.scn-campanella-community .floor-tile {
  position: absolute;
  bottom: 0; left: 10%;
  width: 80%; height: 20%;
  background: linear-gradient(180deg, #2a2220 0%, #1f1612 100%);
  border: 4px solid #3a2a2a;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: cc-floor 24s ease-in-out infinite alternate;
}
.scn-campanella-community .magistrate {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 12%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(180,90,40,0.3);
  animation: cc-magistrate 10s ease-in-out infinite alternate;
}
.scn-campanella-community .citizens {
  position: absolute;
  bottom: 24%; left: 22%;
  width: 20%; height: 20%;
  background: linear-gradient(180deg, #1f1612 0%, #140e0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: cc-citizens 14s ease-in-out infinite;
}
.scn-campanella-community .hearth {
  position: absolute;
  bottom: 20%; left: 36%;
  width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 60%, #c08040 0%, #8a5e30 40%, #4a3420 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  animation: cc-hearth 6s ease-in-out infinite alternate;
}
@keyframes cc-hall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cc-pillar { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes cc-floor { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes cc-magistrate { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cc-citizens { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes cc-hearth { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }

.scn-campanella-walls {
  background: 
    linear-gradient(180deg, #1a1713 0%, #2a221e 30%, #3a3028 60%, #2a221e 100%),
    radial-gradient(ellipse at 50% 60%, #3a3028 0%, transparent 60%);
}
.scn-campanella-walls .sky-outside {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2520 0%, #1f1a15 50%, transparent 100%);
  animation: cw-sky 20s ease-in-out infinite alternate;
}
.scn-campanella-walls .outer-wall {
  position: absolute;
  bottom: 30%; left: 5%;
  width: 90%; height: 50%;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2a24 50%, #2a1e1a 100%);
  border-radius: 60% 60% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  animation: cw-outer 18s ease-in-out infinite alternate;
}
.scn-campanella-walls .inner-wall-1 {
  position: absolute;
  bottom: 30%; left: 15%;
  width: 70%; height: 44%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2e 50%, #3a2a22 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: scale(0.85);
  animation: cw-inner1 22s ease-in-out infinite alternate;
}
.scn-campanella-walls .inner-wall-2 {
  position: absolute;
  bottom: 30%; left: 25%;
  width: 50%; height: 38%;
  background: linear-gradient(180deg, #6a5a46 0%, #5a4a38 50%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 40% 40% 20% 20%;
  transform: scale(0.75);
  animation: cw-inner2 26s ease-in-out infinite alternate;
}
.scn-campanella-walls .figures-painted {
  position: absolute;
  bottom: 30%; left: 8%;
  width: 84%; height: 8%;
  background: repeating-linear-gradient(90deg, 
    transparent 0px, 
    #1a1410 4px, transparent 8px,
    #1a1410 4px, transparent 8px),
    repeating-linear-gradient(90deg, 
    #2a1e1a 0px, #2a1e1a 2px, transparent 2px, transparent 20px);
  background-size: 20px 100%;
  opacity: 0.4;
  filter: blur(1px);
  animation: cw-figures 30s linear infinite;
}
.scn-campanella-walls .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(0deg, #1f1a15 0%, #2a221e 60%, #3a3028 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: cw-ground 12s ease-in-out infinite alternate;
}
.scn-campanella-walls .archway {
  position: absolute;
  bottom: 35%; left: 45%;
  width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #1a1713 0%, #0f0c0a 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: cw-arch 15s ease-in-out infinite;
}
@keyframes cw-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cw-outer { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes cw-inner1 { 0% { transform: scale(0.85) } 50% { transform: scale(0.88) } 100% { transform: scale(0.83) } }
@keyframes cw-inner2 { 0% { transform: scale(0.75) } 50% { transform: scale(0.78) } 100% { transform: scale(0.73) } }
@keyframes cw-figures { 0% { background-position: 0 0 } 100% { background-position: 200px 0 } }
@keyframes cw-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cw-arch { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }

.scn-imagine-state-creation {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1f1410 100%),
    radial-gradient(ellipse at 50% 80%, #4a3328 0%, transparent 70%);
}
.scn-imagine-state-creation .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1f 0%, #2a1f1a 100%);
  animation: s1-bg 20s ease-in-out infinite alternate;
}
.scn-imagine-state-creation .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1410 100%);
  animation: s1-floor 15s ease-in-out infinite alternate;
}
.scn-imagine-state-creation .desk {
  position: absolute; bottom: 38%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #4a3328 0%, #3a2a1f 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-imagine-state-creation .figure {
  position: absolute; bottom: 36%; left: 42%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 6s ease-in-out infinite;
}
.scn-imagine-state-creation .lamp {
  position: absolute; bottom: 44%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.4), 0 0 40px 16px rgba(255,208,128,0.2);
  animation: s1-lamp 4s ease-in-out infinite alternate;
}
.scn-imagine-state-creation .thought {
  position: absolute; top: 20%; left: 55%; width: 14%; height: 10%;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: s1-thought 8s ease-in-out infinite;
}
@keyframes s1-bg {
  0% { opacity: 0.9; transform: scale(1.02); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.01); }
}
@keyframes s1-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes s1-figure {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-2px) rotate(1deg) scale(1.01); }
}
@keyframes s1-lamp {
  0% { box-shadow: 0 0 15px 5px rgba(255,208,128,0.3), 0 0 30px 10px rgba(255,208,128,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.5), 0 0 50px 20px rgba(255,208,128,0.3); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px rgba(255,208,128,0.35), 0 0 35px 12px rgba(255,208,128,0.2); opacity: 0.92; }
}
@keyframes s1-thought {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0.6; }
  50% { transform: translate(8px, -6px) scale(1.1); opacity: 0.9; }
  100% { transform: translate(-4px, 4px) scale(0.9); opacity: 0.7; }
}

.scn-state-arises-from-needs {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1f1410 100%),
    radial-gradient(ellipse at 50% 50%, #4a3328 0%, transparent 70%);
}
.scn-state-arises-from-needs .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1f 0%, #2a1f1a 100%);
  animation: s2-bg 18s ease-in-out infinite alternate;
}
.scn-state-arises-from-needs .floor {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1410 100%);
  animation: s2-floor 14s ease-in-out infinite alternate;
}
.scn-state-arises-from-needs .table {
  position: absolute; bottom: 45%; left: 30%; width: 40%; height: 7%;
  background: linear-gradient(180deg, #4a3328 0%, #3a2a1f 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s2-table 20s ease-in-out infinite;
}
.scn-state-arises-from-needs .figure-left {
  position: absolute; bottom: 40%; left: 22%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure-left 8s ease-in-out infinite;
}
.scn-state-arises-from-needs .figure-right {
  position: absolute; bottom: 40%; right: 22%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure-right 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-state-arises-from-needs .goods {
  position: absolute; bottom: 43%; left: 44%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: s2-goods 5s ease-in-out infinite alternate;
}
.scn-state-arises-from-needs .light {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  filter: blur(10px);
  animation: s2-light 6s ease-in-out infinite alternate;
}
@keyframes s2-bg {
  0% { opacity: 0.85; transform: scale(1.03); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.01); }
}
@keyframes s2-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes s2-table {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes s2-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(6px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes s2-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-6px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-12px) translateY(0) rotate(0deg); }
}
@keyframes s2-goods {
  0% { transform: scale(0.95) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.98) translateY(0); opacity: 0.85; }
}
@keyframes s2-light {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.75; transform: scale(0.95); }
}

.scn-creator-is-necessity {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1f1410 100%),
    radial-gradient(ellipse at 40% 70%, #4a3328 0%, transparent 70%);
}
.scn-creator-is-necessity .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1f 0%, #2a1f1a 100%);
  animation: s3-bg 22s ease-in-out infinite alternate;
}
.scn-creator-is-necessity .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1410 100%);
  animation: s3-floor 16s ease-in-out infinite alternate;
}
.scn-creator-is-necessity .anvil {
  position: absolute; bottom: 45%; left: 38%; width: 14%; height: 12%;
  background: linear-gradient(180deg, #5e4a3a 0%, #4a3328 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-creator-is-necessity .figure {
  position: absolute; bottom: 42%; left: 36%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-figure 7s ease-in-out infinite;
}
.scn-creator-is-necessity .hammer {
  position: absolute; bottom: 55%; left: 47%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: top center;
  animation: s3-hammer 3s ease-in-out infinite;
}
.scn-creator-is-necessity .fire {
  position: absolute; bottom: 42%; left: 52%; width: 10%; height: 14%;
  background: radial-gradient(circle, #ffa040 0%, #b05020 60%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,160,64,0.4);
  border-radius: 50%;
  animation: s3-fire 3s ease-in-out infinite alternate;
}
.scn-creator-is-necessity .sparks {
  position: absolute; top: 15%; left: 45%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s3-sparks 5s ease-in-out infinite;
}
@keyframes s3-bg {
  0% { opacity: 0.85; transform: scale(1.02); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.01); }
}
@keyframes s3-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes s3-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes s3-hammer {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes s3-fire {
  0% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 20px 10px rgba(255,160,64,0.3); }
  50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 40px 20px rgba(255,160,64,0.5); }
  100% { opacity: 0.85; transform: scale(0.98); box-shadow: 0 0 25px 12px rgba(255,160,64,0.35); }
}
@keyframes s3-sparks {
  0% { transform: translateY(0) scale(0.8); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 1; }
  100% { transform: translateY(5px) scale(0.9); opacity: 0.7; }
}

.scn-four-or-five-men {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1f1410 100%),
    radial-gradient(ellipse at 50% 50%, #4a3328 0%, transparent 70%);
}
.scn-four-or-five-men .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1f 0%, #2a1f1a 100%);
  animation: s4-bg 20s ease-in-out infinite alternate;
}
.scn-four-or-five-men .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1410 100%);
  animation: s4-floor 15s ease-in-out infinite alternate;
}
.scn-four-or-five-men .pile {
  position: absolute; bottom: 40%; left: 45%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1f 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: s4-pile 10s ease-in-out infinite;
}
.scn-four-or-five-men .figure1 {
  position: absolute; bottom: 40%; left: 10%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-walk 10s linear infinite;
}
.scn-four-or-five-men .figure2 {
  position: absolute; bottom: 40%; left: 22%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-walk 10s linear infinite;
  animation-delay: -2.5s;
}
.scn-four-or-five-men .figure3 {
  position: absolute; bottom: 40%; left: 34%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-walk 10s linear infinite;
  animation-delay: -5s;
}
.scn-four-or-five-men .figure4 {
  position: absolute; bottom: 40%; left: 58%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-walk 10s linear infinite;
  animation-delay: -7.5s;
}
@keyframes s4-bg {
  0% { opacity: 0.85; transform: scale(1.02); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.01); }
}
@keyframes s4-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes s4-pile {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes s4-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-1px) 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); }
}

/* Scene 1: sailors-too */
.scn-sailors-too {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f05 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-sailors-too .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-sailors-too .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); }
.scn-sailors-too .table  { position:absolute; bottom:22%; left:15%; width:40%; height:20%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius:2%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-sailors-too .lantern { position:absolute; bottom:32%; left:30%; width:10px; height:14px; background: radial-gradient(circle, #e0a030 0%, #c08020 60%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #e0a030, 0 0 40px 12px rgba(224,160,48,.4); animation: s1-lantern 4s ease-in-out infinite; }
.scn-sailors-too .figure-sailor { position:absolute; bottom:18%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s1-figure 6s ease-in-out infinite; }
.scn-sailors-too .window { position:absolute; top:10%; right:15%; width:30%; height:25%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border:4px solid #4a3020; border-radius:2%; box-shadow:inset 0 0 10px rgba(0,0,0,.5); animation: s1-window 8s ease-in-out infinite alternate; }
.scn-sailors-too .crate  { position:absolute; bottom:10%; left:55%; width:15%; height:15%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius:2%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: s1-crate 10s ease-in-out infinite alternate; }
@keyframes s1-lantern { 0%,100% { opacity:.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } }
@keyframes s1-figure { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(8px) rotate(1deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes s1-window { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes s1-crate { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }

/* Scene 2: retailers */
.scn-retailers {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0f05 100%),
    radial-gradient(ellipse at 40% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-retailers .stall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-retailers .counter  { position:absolute; bottom:25%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-retailers .merchant { position:absolute; bottom:28%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r2-merchant 7s ease-in-out infinite alternate; }
.scn-retailers .goods    { position:absolute; bottom:22%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:4%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation: r2-goods 12s ease-in-out infinite alternate; }
.scn-retailers .lamp     { position:absolute; bottom:55%; left:50%; width:8px; height:12px; background: radial-gradient(circle, #e0a030 0%, #c08020 60%); border-radius:50% 50% 30% 30%; box-shadow:0 0 16px 4px #e0a030, 0 0 32px 8px rgba(224,160,48,.4); animation: r2-lamp 5s ease-in-out infinite; }
.scn-retailers .shelf    { position:absolute; bottom:55%; left:5%; width:30%; height:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2%; }
.scn-retailers .buyer    { position:absolute; bottom:15%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r2-buyer 10s ease-in-out infinite alternate; }
@keyframes r2-merchant { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes r2-goods { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes r2-lamp { 0%,100% { opacity:.85; transform:scale(1) rotate(-3deg); } 50% { opacity:1; transform:scale(1.1) rotate(3deg); } }
@keyframes r2-buyer { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(6px) rotate(1deg); } 100% { transform:translateX(0) rotate(-2deg); } }

/* Scene 3: retail-and-merchants */
.scn-retail-and-merchants {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f05 100%),
    radial-gradient(ellipse at 30% 50%, #5a3a2a 0%, transparent 60%);
}
.scn-retail-and-merchants .shop-front    { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:0 0 4% 4%; box-shadow:inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-retail-and-merchants .door           { position:absolute; bottom:25%; left:45%; width:20%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 2% 2%; box-shadow:0 0 6px rgba(0,0,0,.5); animation: r3-door 15s ease-in-out infinite; }
.scn-retail-and-merchants .merchant-walk  { position:absolute; bottom:18%; left:20%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r3-walk 5s ease-in-out infinite; }
.scn-retail-and-merchants .pack           { position:absolute; bottom:20%; left:25%; width:16px; height:20px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation: r3-pack 5s ease-in-out infinite; }
.scn-retail-and-merchants .candle         { position:absolute; bottom:48%; left:35%; width:4px; height:14px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 12px 3px #e0c080, 0 0 24px 6px rgba(224,192,128,.3); animation: r3-candle 3s ease-in-out infinite; }
.scn-retail-and-merchants .signboard      { position:absolute; bottom:55%; left:60%; width:20%; height:10%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:4%; box-shadow:0 0 6px rgba(0,0,0,.4); animation: r3-sign 8s ease-in-out infinite alternate; }
.scn-retail-and-merchants .shadow-arch    { position:absolute; bottom:0; left:0; right:0; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); }
@keyframes r3-door  { 0%,100% { transform:scaleX(1); } 50% { transform:scaleX(0.95); } }
@keyframes r3-walk  { 0% { transform:translateX(0) rotate(-3deg); } 25% { transform:translateX(10px) rotate(1deg); } 50% { transform:translateX(20px) rotate(-1deg); } 75% { transform:translateX(30px) rotate(2deg); } 100% { transform:translateX(40px) rotate(0); } }
@keyframes r3-pack  { 0%,100% { transform:translateX(0) translateY(0); } 50% { transform:translateX(4px) translateY(-2px); } }
@keyframes r3-candle { 0%,100% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } }
@keyframes r3-sign  { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }

/* Scene 4: state-perfected */
.scn-state-perfected {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 80%);
}
.scn-state-perfected .hall-bg     { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-state-perfected .pillar.left  { position:absolute; bottom:0; left:10%; width:6%; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:4%; box-shadow:2px 0 6px rgba(0,0,0,.4); }
.scn-state-perfected .pillar.right { position:absolute; bottom:0; right:10%; width:6%; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:4%; box-shadow:-2px 0 6px rgba(0,0,0,.4); }
.scn-state-perfected .statue      { position:absolute; bottom:20%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.5); animation: s4-statue 12s ease-in-out infinite; }
.scn-state-perfected .candle-left  { position:absolute; bottom:40%; left:30%; width:4px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 12px 3px #e0c080, 0 0 24px 6px rgba(224,192,128,.3); animation: s4-candle 4s ease-in-out infinite; }
.scn-state-perfected .candle-right { position:absolute; bottom:40%; right:30%; width:4px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 12px 3px #e0c080, 0 0 24px 6px rgba(224,192,128,.3); animation: s4-candle 4s ease-in-out infinite 2s; }
.scn-state-perfected .pedestal    { position:absolute; bottom:12%; left:50%; width:20%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:4%; box-shadow:0 2px 6px rgba(0,0,0,.5); animation: s4-pedestal 20s ease-in-out infinite alternate; }
@keyframes s4-statue   { 0%,100% { transform:translateX(-50%) scale(1) rotate(0deg); } 50% { transform:translateX(-50%) scale(1.02) rotate(1deg); } }
@keyframes s4-candle   { 0%,100% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.15); } }
@keyframes s4-pedestal { 0% { opacity:.6; box-shadow:0 2px 6px rgba(0,0,0,.5); } 100% { opacity:.8; box-shadow:0 4px 12px rgba(0,0,0,.6); } }

/* scene: ravished-with-contemplation */
.scn-ravished-with-contemplation {
  background: linear-gradient(135deg, #4a2e1a 0%, #2c1a0c 100%),
              radial-gradient(ellipse at 30% 70%, #b86a3a 0%, transparent 60%);
}
.scn-ravished-with-contemplation .rwc-bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  animation: rwc-bg 20s ease-in-out infinite alternate;
}
.scn-ravished-with-contemplation .rwc-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius:0 0 30% 30%/0 0 20% 20%;
}
.scn-ravished-with-contemplation .rwc-table {
  position:absolute; bottom:20%; left:25%; width:50%; height:8%;
  background:linear-gradient(180deg, #8a5a2a 0%, #5a3a18 100%);
  border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.5);
  animation: rwc-table 6s ease-in-out infinite alternate;
}
.scn-ravished-with-contemplation .rwc-lamp {
  position:absolute; bottom:38%; left:55%; width:12%; height:15%;
  background:radial-gradient(ellipse at 50% 30%, #ffcc66 0%, #b87a30 100%);
  border-radius:20% 20% 10% 10%; box-shadow:0 0 30px 10px rgba(200,150,60,.4);
  animation: rwc-lamp 3s ease-in-out infinite;
}
.scn-ravished-with-contemplation .rwc-figure {
  position:absolute; bottom:24%; left:35%; width:8%; height:20%;
  background:linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin:bottom; animation:rwc-figure 5s ease-in-out infinite alternate;
}
.scn-ravished-with-contemplation .rwc-book {
  position:absolute; bottom:22%; left:42%; width:10%; height:5%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4);
  animation:rwc-book 8s ease-in-out infinite;
}
.scn-ravished-with-contemplation .rwc-orb {
  position:absolute; top:25%; left:60%; width:6%; height:6%;
  background:radial-gradient(circle, #ffd080 0%, #cc8840 50%, transparent 100%);
  border-radius:50%; box-shadow:0 0 20px 8px rgba(200,150,80,.2);
  animation:rwc-orb 12s ease-in-out infinite;
}
.scn-ravished-with-contemplation .rwc-light {
  position:absolute; top:0; left:30%; width:40%; height:50%;
  background:linear-gradient(180deg, rgba(255,200,100,0.15) 0%, transparent 100%);
  filter:blur(20px); animation:rwc-light 10s ease-in-out infinite alternate;
}
@keyframes rwc-bg {0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85}}
@keyframes rwc-table {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(1px)}}
@keyframes rwc-lamp {0%{opacity:0.7; box-shadow:0 0 20px 5px rgba(200,150,60,0.3)}50%{opacity:1; box-shadow:0 0 40px 15px rgba(200,150,60,0.6)}100%{opacity:0.8; box-shadow:0 0 25px 8px rgba(200,150,60,0.4)}}
@keyframes rwc-figure {0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(5px) rotate(2deg)}100%{transform:translateX(0) rotate(-1deg)}}
@keyframes rwc-book {0%{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.02)}100%{transform:rotate(-1deg) scale(1)}}
@keyframes rwc-orb {0%{transform:translate(0,0) scale(1)}50%{transform:translate(15px,-15px) scale(1.1)}100%{transform:translate(-5px,5px) scale(0.95)}}
@keyframes rwc-light {0%{opacity:0.3; filter:blur(25px)}50%{opacity:0.6; filter:blur(15px)}100%{opacity:0.4; filter:blur(20px)}}

/* scene: thought-applicable */
.scn-thought-applicable {
  background: linear-gradient(180deg, #3a2818 0%, #1a0e06 100%),
              radial-gradient(ellipse at 70% 40%, #b87a30 0%, transparent 50%);
}
.scn-thought-applicable .ta-bg {
  position:absolute; inset:0; background:linear-gradient(135deg, #2a1a0c 0%, #0e0804 100%);
  animation: ta-bg 18s ease-in-out infinite alternate;
}
.scn-thought-applicable .ta-window {
  position:absolute; top:10%; right:15%; width:20%; height:40%;
  background:radial-gradient(ellipse at 50% 30%, #5a3a20 0%, #1a0e06 100%);
  border-radius:10px; box-shadow:inset 0 0 10px rgba(0,0,0,.6),0 4px 8px rgba(0,0,0,.4);
  animation: ta-window 8s ease-in-out infinite;
}
.scn-thought-applicable .ta-shelf {
  position:absolute; top:20%; left:10%; width:60%; height:4%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.5);
  animation: ta-shelf 12s ease-in-out infinite alternate;
}
.scn-thought-applicable .ta-books {
  position:absolute; top:14%; left:12%; width:8%; height:8%;
  background:linear-gradient(180deg, #8a5a2a 0%, #4a2a18 100%);
  border-radius:2px; box-shadow:2px 0 4px rgba(0,0,0,.3);
  animation: ta-books 7s ease-in-out infinite;
}
.scn-thought-applicable .ta-figure {
  position:absolute; bottom:25%; left:30%; width:10%; height:25%;
  background:linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin:bottom; animation:ta-figure 4s ease-in-out infinite;
}
.scn-thought-applicable .ta-lamp {
  position:absolute; bottom:30%; left:15%; width:8%; height:12%;
  background:radial-gradient(ellipse at 50% 20%, #ffcc66 0%, #b87a30 100%);
  border-radius:40% 40% 20% 20%; box-shadow:0 0 25px 8px rgba(200,150,60,0.5);
  animation: ta-lamp 3s ease-in-out infinite alternate;
}
.scn-thought-applicable .ta-desk {
  position:absolute; bottom:22%; left:25%; width:50%; height:6%;
  background:linear-gradient(180deg, #7a5028 0%, #4a2a14 100%);
  border-radius:3px; box-shadow:0 3px 8px rgba(0,0,0,.5);
  animation: ta-desk 9s ease-in-out infinite alternate;
}
@keyframes ta-bg {0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes ta-window {0%{opacity:0.6; filter:blur(2px)}50%{opacity:0.9; filter:blur(0)}100%{opacity:0.7; filter:blur(1px)}}
@keyframes ta-shelf {0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes ta-books {0%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}100%{transform:rotate(-1deg)}}
@keyframes ta-figure {0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-4px) rotate(2deg)}100%{transform:translateY(0) rotate(-1deg)}}
@keyframes ta-lamp {0%{opacity:0.7; box-shadow:0 0 15px 4px rgba(200,150,60,0.3)}50%{opacity:1; box-shadow:0 0 35px 12px rgba(200,150,60,0.6)}100%{opacity:0.8; box-shadow:0 0 20px 6px rgba(200,150,60,0.4)}}
@keyframes ta-desk {0%{transform:translateX(0)}50%{transform:translateX(-5px)}100%{transform:translateX(2px)}}

/* scene: education-after-life */
.scn-education-after-life {
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%),
              radial-gradient(ellipse at 60% 70%, #b87a30 0%, transparent 50%);
}
.scn-education-after-life .eal-bg {
  position:absolute; inset:0; background:linear-gradient(135deg, #3a2818 0%, #1a0e08 100%);
  animation: eal-bg 22s ease-in-out infinite alternate;
}
.scn-education-after-life .eal-fireplace {
  position:absolute; bottom:20%; left:20%; width:60%; height:40%;
  background:linear-gradient(180deg, #5a3a20 0%, #2a1a0c 100%);
  border-radius:30% 30% 10% 10%/40% 40% 10% 10%;
  box-shadow:inset 0 -10px 20px rgba(0,0,0,.6);
  animation: eal-fireplace 10s ease-in-out infinite;
}
.scn-education-after-life .eal-fire {
  position:absolute; bottom:30%; left:35%; width:30%; height:20%;
  background:radial-gradient(ellipse at 50% 80%, #ffaa44 0%, #cc6622 50%, #8a3a10 100%);
  border-radius:40% 40% 20% 20%; box-shadow:0 0 40px 15px rgba(200,100,30,0.6);
  animation: eal-fire 2s ease-in-out infinite alternate;
}
.scn-education-after-life .eal-chair {
  position:absolute; bottom:18%; left:25%; width:20%; height:25%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius:20% 20% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5);
  animation: eal-chair 8s ease-in-out infinite alternate;
}
.scn-education-after-life .eal-figure {
  position:absolute; bottom:20%; left:30%; width:10%; height:20%;
  background:linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin:bottom; animation:eal-figure 6s ease-in-out infinite;
}
.scn-education-after-life .eal-rug {
  position:absolute; bottom:5%; left:15%; width:70%; height:15%;
  background:linear-gradient(135deg, #8a5a2a 0%, #4a2a14 70%, #2a1a0c 100%);
  border-radius:30% 70% 50% 50%/50% 50% 50% 50%;
  animation: eal-rug 15s ease-in-out infinite alternate;
}
.scn-education-after-life .eal-clock {
  position:absolute; top:12%; right:20%; width:10%; height:14%;
  background:radial-gradient(circle at 50% 50%, #ccaa66 0%, #5a3a20 100%);
  border-radius:50%; box-shadow:0 0 10px 3px rgba(200,150,80,0.3);
  animation: eal-clock 4s ease-in-out infinite;
}
@keyframes eal-bg {0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85}}
@keyframes eal-fireplace {0%{opacity:0.7}50%{opacity:0.9}100%{opacity:0.75}}
@keyframes eal-fire {0%{transform:scale(1); opacity:0.7}50%{transform:scale(1.05); opacity:1}100%{transform:scale(0.98); opacity:0.8}}
@keyframes eal-chair {0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(1px)}}
@keyframes eal-figure {0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes eal-rug {0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-1deg)}}
@keyframes eal-clock {0%{transform:rotate(0deg)}50%{transform:rotate(5deg)}100%{transform:rotate(-3deg)}}

/* scene: self-knowledge-difficult */
.scn-self-knowledge-difficult {
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%),
              radial-gradient(ellipse at 50% 60%, #3a2018 0%, transparent 50%);
}
.scn-self-knowledge-difficult .skd-bg {
  position:absolute; inset:0; background:linear-gradient(135deg, #120a06 0%, #080402 100%);
  animation: skd-bg 14s ease-in-out infinite alternate;
}
.scn-self-knowledge-difficult .skd-wall {
  position:absolute; bottom:30%; left:10%; width:80%; height:50%;
  background:linear-gradient(90deg, #2a1a12 0%, #1a0e08 100%);
  border-radius:10% 10% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.7);
  animation: skd-wall 20s ease-in-out infinite alternate;
}
.scn-self-knowledge-difficult .skd-mirror {
  position:absolute; top:20%; left:40%; width:20%; height:30%;
  background:linear-gradient(135deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius:5% 5% 5% 5%; box-shadow:0 0 15px 5px rgba(100,60,40,0.4),inset 0 0 20px rgba(0,0,0,.6);
  animation: skd-mirror 8s ease-in-out infinite;
}
.scn-self-knowledge-difficult .skd-figure {
  position:absolute; bottom:18%; left:45%; width:12%; height:28%;
  background:linear-gradient(180deg, #0a0604 0%, #000 100%);
  border-radius:50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin:bottom; animation:skd-figure 5s ease-in-out infinite;
}
.scn-self-knowledge-difficult .skd-candle {
  position:absolute; bottom:30%; left:30%; width:4%; height:10%;
  background:linear-gradient(180deg, #ccaa66 0%, #8a5a30 100%);
  border-radius:10% 10% 10% 10%; box-shadow:0 0 10px 2px rgba(200,150,80,0.5);
  animation: skd-candle 3s ease-in-out infinite alternate;
}
.scn-self-knowledge-difficult .skd-flame {
  position:absolute; bottom:38%; left:30%; width:3%; height:5%;
  background:radial-gradient(circle, #ffaa44 0%, #cc6622 100%);
  border-radius:50%; box-shadow:0 0 12px 6px rgba(200,100,30,0.6);
  animation: skd-flame 1s ease-in-out infinite alternate;
}
.scn-self-knowledge-difficult .skd-shadow {
  position:absolute; bottom:12%; left:40%; width:30%; height:10%;
  background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter:blur(8px); animation: skd-shadow 6s ease-in-out infinite alternate;
}
.scn-self-knowledge-difficult .skd-floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background:linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius:20% 20% 0 0; box-shadow:inset 0 4px 8px rgba(0,0,0,.5);
  animation: skd-floor 12s ease-in-out infinite alternate;
}
@keyframes skd-bg {0%{opacity:0.6}50%{opacity:0.9}100%{opacity:0.7}}
@keyframes skd-wall {0%{opacity:0.7}50%{opacity:0.85}100%{opacity:0.75}}
@keyframes skd-mirror {0%{box-shadow:0 0 10px 3px rgba(100,60,40,0.3)}50%{box-shadow:0 0 20px 8px rgba(100,60,40,0.5)}100%{box-shadow:0 0 12px 4px rgba(100,60,40,0.35)}}
@keyframes skd-figure {0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(3deg)}100%{transform:translateY(0) rotate(-2deg)}}
@keyframes skd-candle {0%{opacity:0.6; transform:scaleY(1)}50%{opacity:0.9; transform:scaleY(1.05)}100%{opacity:0.7; transform:scaleY(0.98)}}
@keyframes skd-flame {0%{transform:scale(0.9) translateX(0)}50%{transform:scale(1.1) translateX(2px)}100%{transform:scale(0.95) translateX(-1px)}}
@keyframes skd-shadow {0%{opacity:0.3; transform:scale(1)}50%{opacity:0.6; transform:scale(1.1)}100%{opacity:0.4; transform:scale(0.95)}}
@keyframes skd-floor {0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85}}

/* Scene: conclusion-of-books-5-7 – calm dim interior, quiet council */
.scn-conclusion-of-books-5-7 {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f1a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #0a0a12 70%);
}
.scn-conclusion-of-books-5-7 .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1a14 0%, #2a221a 60%, #1a1510 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
  animation: s5-wall 15s ease-in-out infinite alternate;
}
.scn-conclusion-of-books-5-7 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f16 0%, #1a120a 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-conclusion-of-books-5-7 .pillar-l {
  position: absolute; bottom: 20%; left: 12%; width: 14px; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-conclusion-of-books-5-7 .pillar-r {
  position: absolute; bottom: 20%; right: 12%; width: 14px; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-conclusion-of-books-5-7 .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0b060 0%, #b08030 60%, #603010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(192,128,48,.6), 0 0 60px 20px rgba(192,128,48,.3);
  animation: s5-lamp 4s ease-in-out infinite alternate;
}
.scn-conclusion-of-books-5-7 .table {
  position: absolute; bottom: 26%; left: 50%; width: 80px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-conclusion-of-books-5-7 .figure-c {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s5-figure-c 6s ease-in-out infinite;
}
.scn-conclusion-of-books-5-7 .figure-l {
  position: absolute; bottom: 28%; left: 36%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a1f1a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s5-figure-l 7s ease-in-out infinite;
}
.scn-conclusion-of-books-5-7 .figure-r {
  position: absolute; bottom: 28%; right: 36%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a1f1a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s5-figure-r 8s ease-in-out infinite;
}
.scn-conclusion-of-books-5-7 .scroll {
  position: absolute; bottom: 27%; left: 50%; width: 30px; height: 8px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: s5-scroll 10s ease-in-out infinite alternate;
}
@keyframes s5-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes s5-lamp { 0% { box-shadow: 0 0 25px 6px rgba(192,128,48,.5), 0 0 50px 15px rgba(192,128,48,.25); opacity: .85 } 50% { box-shadow: 0 0 35px 10px rgba(224,176,96,.7), 0 0 70px 25px rgba(224,176,96,.4); opacity: 1 } 100% { box-shadow: 0 0 28px 8px rgba(192,128,48,.5), 0 0 55px 18px rgba(192,128,48,.25); opacity: .9 } }
@keyframes s5-figure-c { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 33% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 66% { transform: translateX(-50%) translateY(1px) rotate(-1deg) } }
@keyframes s5-figure-l { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes s5-figure-r { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes s5-scroll { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-7deg) } }

/* Scene: origin-of-timocracy – calm dim interior, inspired invocation */
.scn-origin-of-timocracy {
  background:
    linear-gradient(180deg, #12121e 0%, #1e1624 40%, #2a1e32 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e32 0%, #0a0a12 70%);
}
.scn-origin-of-timocracy .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #16121e 0%, #1e1a2a 60%, #12101a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
  animation: ot-wall 12s ease-in-out infinite alternate;
}
.scn-origin-of-timocracy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1624 0%, #0e0c16 100%);
  border-radius: 70% 70% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,.6);
}
.scn-origin-of-timocracy .pillar-l {
  position: absolute; bottom: 18%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #2a223a 0%, #14101e 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-origin-of-timocracy .pillar-r {
  position: absolute; bottom: 18%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #2a223a 0%, #14101e 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-origin-of-timocracy .candle {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #6a4020 40%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,.5), 0 0 40px 12px rgba(200,160,96,.25);
  animation: ot-candle 3s ease-in-out infinite alternate;
}
.scn-origin-of-timocracy .muse {
  position: absolute; bottom: 26%; left: 50%; width: 28px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1a2e 0%, #0e0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,160,96,.1);
  animation: ot-muse 5s ease-in-out infinite;
}
.scn-origin-of-timocracy .scroll {
  position: absolute; bottom: 30%; left: 42%; width: 24px; height: 6px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ot-scroll 9s ease-in-out infinite alternate;
}
.scn-origin-of-timocracy .spark-a {
  position: absolute; top: 35%; left: 45%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,208,128,.7);
  animation: ot-spark-a 6s ease-in-out infinite;
}
.scn-origin-of-timocracy .spark-b {
  position: absolute; top: 30%; right: 40%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 5px 2px rgba(255,208,128,.6);
  animation: ot-spark-b 8s ease-in-out infinite;
}
@keyframes ot-wall { 0% { opacity: .65 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes ot-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,160,96,.4), 0 0 30px 10px rgba(200,160,96,.2); opacity: .8 } 50% { box-shadow: 0 0 25px 8px rgba(255,208,128,.6), 0 0 50px 18px rgba(255,208,128,.35); opacity: 1 } 100% { box-shadow: 0 0 18px 5px rgba(200,160,96,.4), 0 0 35px 12px rgba(200,160,96,.2); opacity: .85 } }
@keyframes ot-muse { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 33% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 66% { transform: translateX(-50%) translateY(1px) rotate(0deg) } }
@keyframes ot-scroll { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-12deg) } }
@keyframes ot-spark-a { 0% { transform: translate(0,0) scale(1); opacity: .7 } 50% { transform: translate(5px,-8px) scale(1.5); opacity: 1 } 100% { transform: translate(10px,-16px) scale(.5); opacity: 0 } }
@keyframes ot-spark-b { 0% { transform: translate(0,0) scale(1); opacity: .6 } 50% { transform: translate(-4px,-6px) scale(1.3); opacity: 1 } 100% { transform: translate(-8px,-12px) scale(.6); opacity: 0 } }

/* Scene: character-of-timocracy – calm bright interior, warrior gathering */
.scn-character-of-timocracy {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, #c8b898 70%);
}
.scn-character-of-timocracy .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8ccb8 0%, #b8a888 60%, #a89878 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
  animation: ct-wall 18s ease-in-out infinite alternate;
}
.scn-character-of-timocracy .window {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #c8b898 60%, #a89878 100%);
  border: 3px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,240,210,.4), 0 0 30px 10px rgba(240,232,216,.3);
  animation: ct-window 8s ease-in-out infinite alternate;
}
.scn-character-of-timocracy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.3);
}
.scn-character-of-timocracy .bench {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-character-of-timocracy .warrior-l {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ct-warrior-l 5s ease-in-out infinite;
}
.scn-character-of-timocracy .warrior-r {
  position: absolute; bottom: 22%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ct-warrior-r 6s ease-in-out infinite;
}
.scn-character-of-timocracy .shield {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50%;
  border: 2px solid #8a7a5a;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: ct-shield 7s ease-in-out infinite alternate;
}
.scn-character-of-timocracy .spear {
  position: absolute; bottom: 32%; right: 28%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ct-spear 9s ease-in-out infinite alternate;
}
@keyframes ct-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes ct-window { 0% { box-shadow: inset 0 0 15px rgba(255,240,210,.3), 0 0 20px 6px rgba(240,232,216,.2); opacity: .9 } 50% { box-shadow: inset 0 0 25px rgba(255,240,210,.5), 0 0 40px 15px rgba(240,232,216,.35); opacity: 1 } 100% { box-shadow: inset 0 0 18px rgba(255,240,210,.3), 0 0 25px 8px rgba(240,232,216,.2); opacity: .92 } }
@keyframes ct-warrior-l { 0%,100% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } }
@keyframes ct-warrior-r { 0%,100% { transform: translateY(0) rotate(1deg) } 33% { transform: translateY(-1px) rotate(-1deg) } 66% { transform: translateY(2px) rotate(1deg) } }
@keyframes ct-shield { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes ct-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-12deg) } }

/* Scene: timocratic-man – calm bright interior, portrait of a restless man */
.scn-timocratic-man {
  background:
    linear-gradient(180deg, #e0d4c0 0%, #c0b09a 40%, #a09078 100%),
    radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, #b8a888 70%);
}
.scn-timocratic-man .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d0c4b0 0%, #b0a088 60%, #a09078 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
  animation: tm-wall 14s ease-in-out infinite alternate;
}
.scn-timocratic-man .window {
  position: absolute; top: 3%; right: 8%; width: 50px; height: 35px;
  background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #c8b898 60%, #a89878 100%);
  border: 2px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(255,240,210,.3), 0 0 25px 8px rgba(240,232,216,.25);
  animation: tm-window 9s ease-in-out infinite alternate;
}
.scn-timocratic-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,.25);
}
.scn-timocratic-man .chair {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.scn-timocratic-man .figure {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1f1a 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tm-figure 4s ease-in-out infinite;
}
.scn-timocratic-man .book {
  position: absolute; bottom: 20%; left: 38%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: tm-book 7s ease-in-out infinite alternate;
}
.scn-timocratic-man .spear {
  position: absolute; bottom: 30%; right: 25%; width: 4px; height: 45px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: tm-spear 8s ease-in-out infinite alternate;
}
.scn-timocratic-man .mote-a {
  position: absolute; top: 25%; left: 20%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(200,180,150,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: tm-mote-a 12s linear infinite;
}
.scn-timocratic-man .mote-b {
  position: absolute; top: 40%; right: 30%; width: 3px; height: 3px;
  background: radial-gradient(circle, rgba(200,180,150,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: tm-mote-b 15s linear infinite reverse;
}
@keyframes tm-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes tm-window { 0% { box-shadow: inset 0 0 10px rgba(255,240,210,.25), 0 0 20px 5px rgba(240,232,216,.2); opacity: .85 } 50% { box-shadow: inset 0 0 20px rgba(255,240,210,.45), 0 0 35px 12px rgba(240,232,216,.3); opacity: 1 } 100% { box-shadow: inset 0 0 12px rgba(255,240,210,.25), 0 0 25px 7px rgba(240,232,216,.2); opacity: .88 } }
@keyframes tm-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(1px) rotate(1deg) } }
@keyframes tm-book { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-1px) } 100% { transform: rotate(-18deg) } }
@keyframes tm-spear { 0% { transform: rotate(8deg) } 50% { transform: rotate(5deg) translateY(1px) } 100% { transform: rotate(10deg) } }
@keyframes tm-mote-a { 0% { transform: translate(0, 0) scale(1); opacity: .6 } 50% { transform: translate(20px, -30px) scale(1.5); opacity: .9 } 100% { transform: translate(40px, -60px) scale(.5); opacity: 0 } }
@keyframes tm-mote-b { 0% { transform: translate(0, 0) scale(1); opacity: .5 } 50% { transform: translate(-15px, -25px) scale(1.3); opacity: .8 } 100% { transform: translate(-30px, -50px) scale(.6); opacity: 0 } }

.scn-shepherd-metaphor { 
  background: linear-gradient(180deg, #1c1a2e 0%, #2a2540 30%, #3a3050 70%, #1c1a2e 100%), radial-gradient(ellipse at 40% 60%, #3a3050 0%, transparent 60%);
}
.scn-shepherd-metaphor .wall { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(135deg, #2a2540 0%, #1c1a2e 100%); 
  animation: sm-wall 20s ease-in-out infinite;
}
.scn-shepherd-metaphor .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #2a2040 0%, #1a1430 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-shepherd-metaphor .window { 
  position: absolute; top: 15%; left: 10%; width: 30%; height: 40%; 
  background: radial-gradient(ellipse, rgba(80,60,120,0.3) 0%, transparent 70%); 
  border: 2px solid #4a3a5a; border-radius: 4px; 
  animation: sm-window 8s ease-in-out infinite alternate;
}
.scn-shepherd-metaphor .lantern { 
  position: absolute; bottom: 40%; left: 45%; width: 12px; height: 20px; 
  background: radial-gradient(circle, #d08a40 0%, #a06020 60%, transparent 100%); 
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 0 24px 6px #a06020, 0 0 48px 12px rgba(160,96,32,0.4); 
  animation: sm-lantern 3s ease-in-out infinite alternate;
}
.scn-shepherd-metaphor .figure { 
  position: absolute; bottom: 30%; left: 50%; 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: sm-figure 6s ease-in-out infinite;
}
.scn-shepherd-metaphor .staff { 
  position: absolute; bottom: 30%; left: 56%; width: 4px; height: 60px; 
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); 
  border-radius: 2px; transform: rotate(-15deg); 
  transform-origin: bottom center; 
  animation: sm-staff 6s ease-in-out infinite;
}
.scn-shepherd-metaphor .sheep { 
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 10px; 
  background: linear-gradient(180deg, #6a6040 0%, #4a4030 100%); 
  border-radius: 50% 50% 30% 30%; 
  animation: sm-sheep 10s ease-in-out infinite;
}
@keyframes sm-wall { 
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes sm-window { 
  0% { background: radial-gradient(ellipse, rgba(80,60,120,0.3) 0%, transparent 70%); } 
  50% { background: radial-gradient(ellipse, rgba(60,40,100,0.5) 0%, transparent 70%); } 
  100% { background: radial-gradient(ellipse, rgba(80,60,120,0.3) 0%, transparent 70%); }
}
@keyframes sm-lantern { 
  0% { box-shadow: 0 0 18px 4px #a06020, 0 0 36px 8px rgba(160,96,32,0.3); opacity: 0.85; } 
  50% { box-shadow: 0 0 32px 10px #d08a40, 0 0 48px 15px rgba(208,138,64,0.5); opacity: 1; } 
  100% { box-shadow: 0 0 22px 5px #a06020, 0 0 40px 10px rgba(160,96,32,0.35); opacity: 0.9; }
}
@keyframes sm-figure { 
  0% { transform: translateX(0) translateY(0) rotate(-1deg); } 
  25% { transform: translateX(2px) translateY(-1px) rotate(0deg); } 
  50% { transform: translateX(0) translateY(0) rotate(1deg); } 
  75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes sm-staff { 
  0% { transform: rotate(-15deg); } 
  50% { transform: rotate(-13deg); } 
  100% { transform: rotate(-15deg); }
}
@keyframes sm-sheep { 
  0% { transform: translateX(0) scale(1); } 
  25% { transform: translateX(2px) scale(0.95); } 
  50% { transform: translateX(0) scale(1); } 
  75% { transform: translateX(-2px) scale(0.95); } 
  100% { transform: translateX(0) scale(1); }
}

.scn-just-always-loser { 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2540 40%, #3a3050 70%, #1c1a2e 100%), radial-gradient(ellipse at 30% 50%, #3a3050 0%, transparent 50%);
}
.scn-just-always-loser .table { 
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%; 
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); 
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); 
  transform: perspective(40em) rotateX(30deg);
}
.scn-just-always-loser .figure-just { 
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 40px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: jal-just 4s ease-in-out infinite;
}
.scn-just-always-loser .scale { 
  position: absolute; bottom: 40%; left: 35%; width: 20px; height: 8px; 
  background: linear-gradient(90deg, #5a5040 0%, #7a6a50 50%, #5a5040 100%); 
  border-radius: 2px; transform-origin: center bottom; 
  animation: jal-scale 5s ease-in-out infinite;
}
.scn-just-always-loser .figure-unjust { 
  position: absolute; bottom: 35%; right: 30%; width: 20px; height: 42px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: scaleX(-1); 
  animation: jal-unjust 5s ease-in-out infinite;
}
.scn-just-always-loser .coin { 
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 8px; 
  background: radial-gradient(circle, #c0a050 0%, #a08030 70%); 
  border-radius: 50%; box-shadow: 0 0 6px #c0a050; 
  animation: jal-coin 4s ease-in-out infinite;
}
.scn-just-always-loser .lantern { 
  position: absolute; top: 20%; left: 45%; width: 10px; height: 16px; 
  background: radial-gradient(circle, #d08a40 0%, #a06020 60%, transparent 100%); 
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 0 24px 6px #a06020, 0 0 48px 12px rgba(160,96,32,0.4); 
  animation: jal-lantern 3s ease-in-out infinite alternate;
}
.scn-just-always-loser .shadow-just { 
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 10px; 
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); 
  animation: jal-shadow 5s ease-in-out infinite;
}
@keyframes jal-just { 
  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 jal-scale { 
  0% { transform: rotate(0deg); } 
  25% { transform: rotate(-10deg); } 
  50% { transform: rotate(0deg); } 
  75% { transform: rotate(10deg); } 
  100% { transform: rotate(0deg); }
}
@keyframes jal-unjust { 
  0% { transform: scaleX(-1) translateX(0); } 
  25% { transform: scaleX(-1) translateX(-3px); } 
  50% { transform: scaleX(-1) translateX(0); } 
  75% { transform: scaleX(-1) translateX(3px); } 
  100% { transform: scaleX(-1) translateX(0); }
}
@keyframes jal-coin { 
  0% { opacity: 0.6; transform: translateY(0); } 
  25% { transform: translateY(-5px); opacity: 1; } 
  50% { transform: translateY(0); opacity: 0.6; } 
  75% { transform: translateY(-3px); opacity: 1; } 
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes jal-lantern { 
  0% { box-shadow: 0 0 18px 4px #a06020, 0 0 36px 8px rgba(160,96,32,0.3); opacity: 0.85; } 
  50% { box-shadow: 0 0 32px 10px #d08a40, 0 0 48px 15px rgba(208,138,64,0.5); opacity: 1; } 
  100% { box-shadow: 0 0 22px 5px #a06020, 0 0 40px 10px rgba(160,96,32,0.35); opacity: 0.9; }
}
@keyframes jal-shadow { 
  0% { transform: scale(1); opacity: 0.6; } 
  50% { transform: scale(1.2); opacity: 0.8; } 
  100% { transform: scale(1); opacity: 0.6; }
}

.scn-office-and-justice { 
  background: linear-gradient(180deg, #1e1c30 0%, #2a2640 40%, #3a3260 70%, #1e1c30 100%), radial-gradient(ellipse at 50% 80%, #3a3260 0%, transparent 70%);
}
.scn-office-and-justice .desk { 
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%; 
  background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); 
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); 
  perspective: 30em; transform: rotateX(20deg);
}
.scn-office-and-justice .figure { 
  position: absolute; bottom: 30%; left: 45%; width: 22px; 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: oaj-figure 7s ease-in-out infinite;
}
.scn-office-and-justice .papers { 
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 20px; 
  background: linear-gradient(180deg, #9a8a70 0%, #7a6a50 100%); 
  border-radius: 2px; transform: rotate(-5deg); 
  animation: oaj-papers 8s ease-in-out infinite;
}
.scn-office-and-justice .lamp { 
  position: absolute; bottom: 35%; left: 25%; width: 12px; height: 24px; 
  background: radial-gradient(circle, #d08a40 0%, #a06020 60%, transparent 100%); 
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 0 20px 5px #a06020, 0 0 40px 10px rgba(160,96,32,0.4); 
  animation: oaj-lamp 3s ease-in-out infinite alternate;
}
.scn-office-and-justice .clock { 
  position: absolute; top: 15%; right: 20%; width: 16px; height: 16px; 
  border: 2px solid #5a4a3a; border-radius: 50%; 
  background: radial-gradient(circle, #3a2a1a 0%, #1a1a1a 100%); 
  animation: oaj-clock 2s steps(60) infinite;
}
.scn-office-and-justice .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; 
  background: linear-gradient(180deg, #2a2040 0%, #1a1430 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
@keyframes oaj-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 oaj-papers { 
  0% { transform: rotate(-5deg); } 
  25% { transform: rotate(-2deg); } 
  50% { transform: rotate(3deg); } 
  75% { transform: rotate(-1deg); } 
  100% { transform: rotate(-5deg); }
}
@keyframes oaj-lamp { 
  0% { box-shadow: 0 0 15px 3px #a06020, 0 0 30px 6px rgba(160,96,32,0.3); opacity: 0.85; } 
  50% { box-shadow: 0 0 25px 8px #d08a40, 0 0 45px 12px rgba(208,138,64,0.5); opacity: 1; } 
  100% { box-shadow: 0 0 18px 4px #a06020, 0 0 35px 8px rgba(160,96,32,0.35); opacity: 0.9; }
}
@keyframes oaj-clock { 
  0% { transform: rotate(0deg); } 
  100% { transform: rotate(360deg); }
}

.scn-tyrant-blessed { 
  background: linear-gradient(180deg, #1a1828 0%, #2a2240 30%, #3a2a4a 60%, #1a1828 100%), radial-gradient(ellipse at 50% 40%, #3a2a4a 0%, transparent 60%);
}
.scn-tyrant-blessed .wall { 
  position: absolute; inset: 0 0 20% 0; 
  background: linear-gradient(135deg, #2a2040 0%, #1a1430 100%); 
  animation: tb-wall 15s ease-in-out infinite;
}
.scn-tyrant-blessed .throne { 
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 35px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); 
  transform: perspective(20em) rotateX(10deg);
}
.scn-tyrant-blessed .tyrant { 
  position: absolute; bottom: 42%; left: 40%; width: 22px; height: 50px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: tb-tyrant 8s ease-in-out infinite;
}
.scn-tyrant-blessed .slave { 
  position: absolute; bottom: 25%; left: 25%; width: 16px; height: 35px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: perspective(10em) rotateX(30deg); 
  animation: tb-slave 6s ease-in-out infinite;
}
.scn-tyrant-blessed .coins { 
  position: absolute; bottom: 18%; left: 45%; width: 10px; height: 10px; 
  background: radial-gradient(circle, #c0a050 0%, #a08030 70%); 
  border-radius: 50%; box-shadow: 0 0 6px #c0a050; 
  animation: tb-coins 4s ease-in-out infinite;
}
.scn-tyrant-blessed .brazier { 
  position: absolute; bottom: 35%; left: 60%; width: 14px; height: 20px; 
  background: radial-gradient(circle, #d08040 0%, #a05020 60%, transparent 100%); 
  border-radius: 30% 30% 10% 10%; 
  box-shadow: 0 0 20px 5px #a05020, 0 0 40px 10px rgba(160,80,32,0.4); 
  animation: tb-brazier 3s ease-in-out infinite alternate;
}
.scn-tyrant-blessed .shadow { 
  position: absolute; bottom: 10%; left: 30%; width: 50px; height: 15px; 
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); 
  animation: tb-shadow 10s ease-in-out infinite;
}
@keyframes tb-wall { 
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes tb-tyrant { 
  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 tb-slave { 
  0% { transform: perspective(10em) rotateX(30deg) translateY(0); } 
  25% { transform: perspective(10em) rotateX(30deg) translateY(-3px); } 
  50% { transform: perspective(10em) rotateX(30deg) translateY(0); } 
  75% { transform: perspective(10em) rotateX(30deg) translateY(2px); } 
  100% { transform: perspective(10em) rotateX(30deg) translateY(0); }
}
@keyframes tb-coins { 
  0% { opacity: 0.6; transform: translateY(0) scale(1); } 
  25% { transform: translateY(-6px) scale(1.2); opacity: 1; } 
  50% { transform: translateY(0) scale(1); opacity: 0.6; } 
  75% { transform: translateY(-4px) scale(1.1); opacity: 1; } 
  100% { opacity: 0.6; transform: translateY(0) scale(1); }
}
@keyframes tb-brazier { 
  0% { box-shadow: 0 0 15px 3px #a05020, 0 0 30px 6px rgba(160,80,32,0.3); opacity: 0.85; } 
  50% { box-shadow: 0 0 25px 8px #d08040, 0 0 45px 12px rgba(208,128,64,0.5); opacity: 1; } 
  100% { box-shadow: 0 0 18px 4px #a05020, 0 0 35px 8px rgba(160,80,32,0.35); opacity: 0.9; }
}
@keyframes tb-shadow { 
  0% { transform: scaleX(1); opacity: 0.6; } 
  50% { transform: scaleX(1.3); opacity: 0.8; } 
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* Scene: soul-body-ideal */
.scn-soul-body-ideal {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #4a3624 70%, #3d2b1a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-soul-body-ideal .backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1f150e 0%, #2c1f12 100%);
  animation: sbi-fade 12s ease-in-out infinite alternate;
}
.scn-soul-body-ideal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3d2b1a 0%, #2a1e14 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-soul-body-ideal .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3d2b1a 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: sbi-table 15s ease-in-out infinite;
}
.scn-soul-body-ideal .book {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%) rotate(2deg);
  background: linear-gradient(135deg, #8a6e4a 0%, #6a5236 50%, #4a3822 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sbi-book 6s ease-in-out infinite;
}
.scn-soul-body-ideal .candle {
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.6);
  animation: sbi-candle 3s ease-in-out infinite;
}
.scn-soul-body-ideal .figure {
  position: absolute; bottom: 15%; left: 40%; width: 40px; 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: sbi-figure 5s ease-in-out infinite;
}
@keyframes sbi-fade {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; }
}
@keyframes sbi-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes sbi-book {
  0%, 100% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1deg) scale(1.01); }
}
@keyframes sbi-candle {
  0% { box-shadow: 0 0 18px 6px rgba(255,200,100,0.5); height: 40px; }
  50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.8); height: 42px; }
  100% { box-shadow: 0 0 22px 8px rgba(255,200,100,0.6); height: 39px; }
}
@keyframes sbi-figure {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}

/* Scene: criticism-of-design */
.scn-criticism-of-design {
  background:
    linear-gradient(0deg, #1f1510 0%, #2a1e14 40%, #3d2b1a 70%, #2a1e14 100%),
    radial-gradient(ellipse at 50% 100%, #3a2618 0%, transparent 70%);
}
.scn-criticism-of-design .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1410 0%, #2c1f14 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  animation: cod-backdrop 14s ease-in-out infinite alternate;
}
.scn-criticism-of-design .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-criticism-of-design .lectern {
  position: absolute; bottom: 18%; left: 50%; width: 70px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3624 0%, #2a1e14 100%);
  border-radius: 8px 8px 2px 2px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.6);
  animation: cod-lectern 10s ease-in-out infinite;
}
.scn-criticism-of-design .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09060 0%, #7a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.5);
  animation: cod-lamp 4s ease-in-out infinite;
}
.scn-criticism-of-design .figure {
  position: absolute; bottom: 15%; left: 45%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cod-figure 6s ease-in-out infinite;
}
.scn-criticism-of-design .scroll {
  position: absolute; bottom: 21%; left: 52%; width: 20px; height: 12px;
  background: linear-gradient(90deg, #c8a87a 0%, #a8885a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cod-scroll 7s ease-in-out infinite alternate;
}
.scn-criticism-of-design .lightcone {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  transform: translateX(-50%) rotate(-5deg);
  animation: cod-lightcone 5s ease-in-out infinite alternate;
}
@keyframes cod-backdrop {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes cod-lectern {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes cod-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.4); }
  50% { box-shadow: 0 0 40px 14px rgba(200,160,80,0.7); }
  100% { box-shadow: 0 0 30px 10px rgba(200,160,80,0.5); }
}
@keyframes cod-figure {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes cod-scroll {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cod-lightcone {
  0% { opacity: 0.2; transform: translateX(-50%) rotate(-5deg); }
  50% { opacity: 0.5; transform: translateX(-50%) rotate(5deg); }
  100% { opacity: 0.3; transform: translateX(-50%) rotate(0deg); }
}

/* Scene: republic-vehicle-of-truths */
.scn-republic-vehicle-of-truths {
  background:
    linear-gradient(180deg, #4a2810 0%, #6a3a1a 40%, #8a5a2a 70%, #6a3a1a 100%),
    radial-gradient(ellipse at 50% 100%, #8a5a2a 0%, transparent 70%);
}
.scn-republic-vehicle-of-truths .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 50%, #8a5a2a 100%);
  animation: rvt-sky 20s ease-in-out infinite alternate;
}
.scn-republic-vehicle-of-truths .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1a08 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-republic-vehicle-of-truths .chariot-body {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #7a4a20 0%, #4a2a10 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rvt-chariot 8s ease-in-out infinite;
}
.scn-republic-vehicle-of-truths .wheel {
  position: absolute; bottom: 26%; left: 34%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a10 100%);
  border-radius: 50%;
  border: 4px solid #2a1808;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: rvt-wheel 1.5s linear infinite;
}
.scn-republic-vehicle-of-truths .horse {
  position: absolute; bottom: 28%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 30% 50%;
  transform-origin: bottom center;
  animation: rvt-horse 0.4s ease-in-out infinite;
}
.scn-republic-vehicle-of-truths .rider {
  position: absolute; bottom: 34%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rvt-rider 0.8s ease-in-out infinite;
}
.scn-republic-vehicle-of-truths .torch {
  position: absolute; bottom: 38%; left: 26%; width: 12px; height: 20px;
  background: linear-gradient(0deg, #c07030 0%, #e0a050 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(200,100,50,0.8);
  animation: rvt-torch 0.3s ease-in-out infinite alternate;
}
.scn-republic-vehicle-of-truths .roadline {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 2px;
  background: repeating-linear-gradient(90deg, #6a4a20 0px, #6a4a20 20px, transparent 20px, transparent 40px);
  animation: rvt-road 10s linear infinite;
}
@keyframes rvt-sky {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes rvt-chariot {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(10px) translateY(-2px); }
}
@keyframes rvt-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes rvt-horse {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
}
@keyframes rvt-rider {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes rvt-torch {
  0% { box-shadow: 0 0 18px 8px rgba(200,100,50,0.6); height: 20px; }
  50% { box-shadow: 0 0 30px 14px rgba(200,100,50,0.9); height: 22px; }
  100% { box-shadow: 0 0 22px 10px rgba(200,100,50,0.7); height: 18px; }
}
@keyframes rvt-road {
  0% { background-position: 0 0; }
  100% { background-position: 80px 0; }
}

/* Scene: dialectic-and-truth */
.scn-dialectic-and-truth {
  background:
    linear-gradient(180deg, #1c1410 0%, #2c1f14 40%, #3d2b1a 70%, #2c1f14 100%),
    radial-gradient(ellipse at 50% 80%, #4a3420 0%, transparent 70%);
}
.scn-dialectic-and-truth .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1210 0%, #281e14 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: dat-backdrop 16s ease-in-out infinite alternate;
}
.scn-dialectic-and-truth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #201810 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-dialectic-and-truth .table {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3624 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: dat-table 12s ease-in-out infinite;
}
.scn-dialectic-and-truth .left-figure {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dat-left 6s ease-in-out infinite;
}
.scn-dialectic-and-truth .right-figure {
  position: absolute; bottom: 15%; right: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dat-right 6s ease-in-out infinite 3s;
}
.scn-dialectic-and-truth .lamp {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09060 0%, #7a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 40px 12px rgba(200,160,80,0.4);
  animation: dat-lamp 5s ease-in-out infinite alternate;
}
.scn-dialectic-and-truth .thought {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 100%, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  transform: translateX(-50%);
  animation: dat-thought 4s ease-in-out infinite alternate;
}
@keyframes dat-backdrop {
  0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; }
}
@keyframes dat-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes dat-left {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
}
@keyframes dat-right {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-3deg); }
}
@keyframes dat-lamp {
  0% { box-shadow: 0 0 35px 10px rgba(200,160,80,0.3); }
  50% { box-shadow: 0 0 55px 18px rgba(200,160,80,0.6); }
  100% { box-shadow: 0 0 40px 12px rgba(200,160,80,0.4); transform: translateX(-50%) rotate(-2deg); }
}
@keyframes dat-thought {
  0% { opacity: 0.1; transform: translateX(-50%) scale(0.8); }
  50% { opacity: 0.4; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.2; transform: translateX(-50%) scale(0.9); }
}

/* scene: division-of-labour */
.scn-division-of-labour {
  background: linear-gradient(180deg, #2f1a0e 0%, #120a06 100%), radial-gradient(ellipse at 55% 75%, #b86a2a 0%, transparent 60%);
}
.scn-division-of-labour .lamp {
  position: absolute; top: 28%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #c08830 60%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 18px 6px #c08830, 0 0 40px 12px rgba(192,136,48,.3);
  animation: dl-lamp 4s ease-in-out infinite alternate;
}
.scn-division-of-labour .glow {
  position: absolute; top: 15%; left: 35%; width: 40%; height: 45%;
  background: radial-gradient(ellipse, rgba(200,140,60,.25) 0%, transparent 70%);
  animation: dl-glow 6s ease-in-out infinite alternate;
}
.scn-division-of-labour .figure {
  position: absolute; bottom: 18%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0705 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dl-figure 8s ease-in-out infinite;
}
.scn-division-of-labour .desk {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 6px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-division-of-labour .tool {
  position: absolute; bottom: 32%; left: 52%; width: 8px; height: 14px;
  background: #4a382a;
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: dl-tool 2s ease-in-out infinite alternate;
}
.scn-division-of-labour .shelf {
  position: absolute; top: 38%; left: 20%; right: 40%; height: 4px;
  background: #2a1a10;
  border-radius: 2px;
  animation: dl-shelf 12s ease-in-out infinite;
}
.scn-division-of-labour .boards {
  position: absolute; inset: 8% 10% 35% 75%;
  background: repeating-linear-gradient(90deg, #1a120c 0px, #1a120c 4px, #0f0a06 4px, #0f0a06 6px);
  border-radius: 2px;
  opacity: .3;
}
@keyframes dl-lamp {
  0% { box-shadow: 0 0 18px 6px #c08830, 0 0 40px 12px rgba(192,136,48,.3); opacity: .9; }
  50% { box-shadow: 0 0 24px 10px #e0a040, 0 0 50px 18px rgba(224,160,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #a07020, 0 0 30px 8px rgba(160,112,32,.25); opacity: .85; }
}
@keyframes dl-glow {
  0% { transform: scale(1) translate(0,0); opacity: .4; }
  50% { transform: scale(1.02) translate(-2px, -1px); opacity: .5; }
  100% { transform: scale(.98) translate(1px, 1px); opacity: .35; }
}
@keyframes dl-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dl-tool {
  0% { transform: rotate(-4deg) scaleY(1); }
  50% { transform: rotate(4deg) scaleY(1.05); }
  100% { transform: rotate(-3deg) scaleY(1); }
}
@keyframes dl-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}

/* scene: one-man-one-art */
.scn-one-man-one-art {
  background: linear-gradient(180deg, #2c1a0e 0%, #100a06 100%), radial-gradient(ellipse at 50% 70%, #b86a2a 0%, transparent 60%);
}
.scn-one-man-one-art .wheel {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 10% 10%;
  transform: translateX(-50%);
  animation: oma-wheel 10s linear infinite;
}
.scn-one-man-one-art .figure {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oma-figure 7s ease-in-out infinite;
}
.scn-one-man-one-art .clay {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 10px;
  background: radial-gradient(circle, #5a3a1a 0%, #3a2210 80%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: oma-clay 5s ease-in-out infinite alternate;
}
.scn-one-man-one-art .lamp {
  position: absolute; top: 25%; left: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #e8b050 0%, #b07830 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 14px 4px #b07830, 0 0 30px 8px rgba(176,120,48,.3);
  animation: oma-lamp 3s ease-in-out infinite alternate;
}
.scn-one-man-one-art .glow {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse, rgba(200,140,60,.2) 0%, transparent 70%);
  animation: oma-glow 8s ease-in-out infinite alternate;
}
.scn-one-man-one-art .floor {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #120a06 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  opacity: .6;
}
.scn-one-man-one-art .wall {
  position: absolute; top: 0; right: 0; width: 25%; height: 70%;
  background: repeating-linear-gradient(0deg, #1a120c 0px, #1a120c 4px, #0f0a06 4px, #0f0a06 6px);
  opacity: .2;
}
@keyframes oma-wheel {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes oma-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes oma-clay {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.08); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes oma-lamp {
  0% { box-shadow: 0 0 14px 4px #b07830, 0 0 30px 8px rgba(176,120,48,.3); opacity: .85; }
  50% { box-shadow: 0 0 20px 8px #d09040, 0 0 40px 14px rgba(208,144,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 12px 3px #a06828, 0 0 24px 6px rgba(160,104,40,.25); opacity: .8; }
}
@keyframes oma-glow {
  0% { transform: scale(1); opacity: .3; }
  50% { transform: scale(1.03) translate(-1px, -2px); opacity: .4; }
  100% { transform: scale(.98) translate(1px, 1px); opacity: .25; }
}

/* scene: herdsmen-too */
.scn-herdsmen-too {
  background: linear-gradient(180deg, #1f140a 0%, #0e0804 100%), radial-gradient(ellipse at 60% 80%, #8a5a30 0%, transparent 60%);
}
.scn-herdsmen-too .ox {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, #2a1a0e 0%, #140a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: ht-ox 9s ease-in-out infinite;
}
.scn-herdsmen-too .figure {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0705 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ht-figure 6s ease-in-out infinite;
}
.scn-herdsmen-too .lantern {
  position: absolute; top: 30%; left: 65%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d09040 0%, #a06820 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 3px #a06820, 0 0 24px 6px rgba(160,104,32,.3);
  animation: ht-lantern 3.5s ease-in-out infinite alternate;
}
.scn-herdsmen-too .glow {
  position: absolute; top: 12%; left: 20%; width: 70%; height: 60%;
  background: radial-gradient(ellipse, rgba(180,120,50,.2) 0%, transparent 70%);
  animation: ht-glow 7s ease-in-out infinite alternate;
}
.scn-herdsmen-too .hay {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ht-hay 5s ease-in-out infinite alternate;
}
.scn-herdsmen-too .stall {
  position: absolute; top: 15%; left: 30%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #140a06 100%);
  border-radius: 2px;
  box-shadow: 10px 0 0 #2a1a0e, 20px 0 0 #2a1a0e;
}
.scn-herdsmen-too .floor {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0f08 0%, #0e0804 100%);
  border-radius: 40% 40% 0 0 / 30% 20% 0 0;
  opacity: .7;
}
@keyframes ht-ox {
  0% { transform: scaleX(1) scaleY(1) translateY(0); }
  50% { transform: scaleX(1.01) scaleY(1.02) translateY(-2px); }
  100% { transform: scaleX(1) scaleY(1) translateY(0); }
}
@keyframes ht-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ht-lantern {
  0% { transform: rotate(-5deg); box-shadow: 0 0 10px 3px #a06820, 0 0 24px 6px rgba(160,104,32,.3); opacity: .85; }
  50% { transform: rotate(5deg); box-shadow: 0 0 14px 5px #c08030, 0 0 30px 10px rgba(192,128,48,.4); opacity: 1; }
  100% { transform: rotate(-4deg); box-shadow: 0 0 8px 2px #905820, 0 0 18px 4px rgba(144,88,32,.25); opacity: .8; }
}
@keyframes ht-glow {
  0% { transform: scale(1); opacity: .25; }
  50% { transform: scale(1.04) translate(1px, -2px); opacity: .35; }
  100% { transform: scale(.97) translate(-1px, 1px); opacity: .2; }
}
@keyframes ht-hay {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}

/* scene: need-for-merchants */
.scn-need-for-merchants {
  background: linear-gradient(180deg, #2a180e 0%, #100a06 100%), radial-gradient(ellipse at 50% 60%, #b07030 0%, transparent 60%);
}
.scn-need-for-merchants .merchant {
  position: absolute; bottom: 22%; left: 20%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0705 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: nfm-merchant 8s ease-in-out infinite;
}
.scn-need-for-merchants .counter {
  position: absolute; bottom: 30%; left: 15%; right: 35%; height: 6px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-need-for-merchants .scales {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 14px;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a0f08 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  transform-origin: bottom center;
  animation: nfm-scales 4s ease-in-out infinite alternate;
}
.scn-need-for-merchants .goods {
  position: absolute; bottom: 30%; left: 60%; width: 18px; height: 12px;
  background: radial-gradient(circle, #4a3020 0%, #2a1a0e 80%);
  border-radius: 50%;
  animation: nfm-goods 6s ease-in-out infinite alternate;
}
.scn-need-for-merchants .lamp {
  position: absolute; top: 22%; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle, #e8b050 0%, #b07830 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 14px 4px #b07830, 0 0 30px 8px rgba(176,120,48,.3);
  animation: nfm-lamp 3s ease-in-out infinite alternate;
}
.scn-need-for-merchants .glow {
  position: absolute; top: 10%; left: 30%; width: 50%; height: 50%;
  background: radial-gradient(ellipse, rgba(200,140,60,.2) 0%, transparent 70%);
  animation: nfm-glow 8s ease-in-out infinite alternate;
}
.scn-need-for-merchants .cloth {
  position: absolute; bottom: 30%; left: 12%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 60% 20% 80% / 30% 40% 60% 70%;
  transform-origin: top center;
  animation: nfm-cloth 10s ease-in-out infinite;
}
@keyframes nfm-merchant {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes nfm-scales {
  0% { transform: rotate(-6deg); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes nfm-goods {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes nfm-lamp {
  0% { box-shadow: 0 0 14px 4px #b07830, 0 0 30px 8px rgba(176,120,48,.3); opacity: .85; }
  50% { box-shadow: 0 0 20px 8px #d09040, 0 0 40px 14px rgba(208,144,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 12px 3px #a06828, 0 0 24px 6px rgba(160,104,40,.25); opacity: .8; }
}
@keyframes nfm-glow {
  0% { transform: scale(1); opacity: .3; }
  50% { transform: scale(1.03) translate(-1px, -2px); opacity: .4; }
  100% { transform: scale(.98) translate(1px, 1px); opacity: .25; }
}
@keyframes nfm-cloth {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(0deg) scaleX(1); }
}

.scn-many-types-of-beauty {
  background: linear-gradient(180deg, #ffcc99 0%, #ff9966 40%, #cc66aa 70%, #6644aa 100%),
              radial-gradient(ellipse at 50% 70%, #ffddbb 0%, transparent 60%);
}
.scn-many-types-of-beauty .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd8b0 0%, transparent 100%);
  animation: s1-sky 20s ease-in-out infinite alternate;
}
.scn-many-types-of-beauty .sun {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle at 40% 40%, #ffeecc 0%, #ffcc66 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255, 200, 100, 0.4);
  animation: s1-sun 30s ease-in-out infinite alternate;
}
.scn-many-types-of-beauty .hills-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #886644 0%, #664422 100%);
  border-radius: 50% 30% 0 0 / 60% 40% 0 0;
  animation: s1-hills 12s ease-in-out infinite alternate;
}
.scn-many-types-of-beauty .hills-front {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #553322 0%, #332211 100%);
  border-radius: 40% 70% 0 0 / 80% 50% 0 0;
  animation: s1-hills 18s ease-in-out infinite alternate-reverse;
}
.scn-many-types-of-beauty .figure-a,
.scn-many-types-of-beauty .figure-b,
.scn-many-types-of-beauty .figure-c {
  position: absolute; bottom: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 4s ease-in-out infinite;
}
.scn-many-types-of-beauty .figure-a { left: 30%; animation-delay: 0s; }
.scn-many-types-of-beauty .figure-b { left: 50%; transform: scale(1.1); animation-delay: 1.3s; }
.scn-many-types-of-beauty .figure-c { left: 68%; transform: scale(0.9) rotate(5deg); animation-delay: 2.6s; }
.scn-many-types-of-beauty .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 24px;
  background: linear-gradient(180deg, rgba(255, 220, 180, 0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: s1-cloud 40s linear infinite;
}
.scn-many-types-of-beauty .cloud-b {
  position: absolute; top: 22%; right: 5%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(255, 200, 160, 0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: s1-cloud 60s linear infinite reverse;
}
@keyframes s1-sky {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; background: linear-gradient(180deg, #ffe0c0 0%, transparent 100%); }
}
@keyframes s1-sun {
  0% { transform: translate(-50%, 20px) scale(0.9); opacity: 0.8; }
  50% { transform: translate(-50%, 0) scale(1.1); opacity: 1; }
  100% { transform: translate(-50%, 10px) scale(0.95); opacity: 0.9; }
}
@keyframes s1-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes s1-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes s1-cloud {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(120vw); }
}

.scn-shakespeare-and-homer {
  background: linear-gradient(135deg, #1e1b1a 0%, #3a2e28 50%, #2a221e 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 60%);
}
.scn-shakespeare-and-homer .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a1513 60%, #0f0c0b 100%);
  opacity: 0.6;
  animation: s2-bg 12s ease-in-out infinite alternate;
}
.scn-shakespeare-and-homer .niche-left,
.scn-shakespeare-and-homer .niche-right {
  position: absolute; top: 20%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #2a201a 0%, #1a120e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-shakespeare-and-homer .niche-left { left: 8%; }
.scn-shakespeare-and-homer .niche-right { right: 8%; }
.scn-shakespeare-and-homer .figure-left,
.scn-shakespeare-and-homer .figure-right {
  position: absolute; top: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 6s ease-in-out infinite;
}
.scn-shakespeare-and-homer .figure-left { left: 16%; animation-delay: 0s; }
.scn-shakespeare-and-homer .figure-right { right: 18%; animation-delay: 3s; }
.scn-shakespeare-and-homer .candle {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #d4a574 0%, #8b6b4e 40%, #4a3524 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-shakespeare-and-homer .candle::after {
  content: ''; position: absolute; top: -14px; left: 2px; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ff8844 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: s2-flame 0.8s ease-in-out infinite alternate;
}
.scn-shakespeare-and-homer .glow {
  position: absolute; bottom: 20%; left: 42%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255, 180, 80, 0.15) 0%, transparent 60%);
  animation: s2-glow 4s ease-in-out infinite alternate;
}
.scn-shakespeare-and-homer .book {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: s2-book 10s ease-in-out infinite;
}
@keyframes s2-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.55; }
}
@keyframes s2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s2-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2, 1.4) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes s2-glow {
  0% { transform: scale(0.9); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.6; }
  100% { transform: scale(1); opacity: 0.4; }
}
@keyframes s2-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}

.scn-poet-and-philosopher {
  background: linear-gradient(135deg, #1a1e2a 0%, #2a2e3e 40%, #1e2230 100%),
              radial-gradient(ellipse at 30% 70%, #3a3e4e 0%, transparent 70%);
}
.scn-poet-and-philosopher .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0e1218 80%);
  opacity: 0.5;
  animation: s3-bg 15s ease-in-out infinite alternate;
}
.scn-poet-and-philosopher .poet {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-figure 5s ease-in-out infinite;
}
.scn-poet-and-philosopher .poet::before {
  content: ''; position: absolute; top: -18px; left: 4px; width: 20px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50%; /* head */
}
.scn-poet-and-philosopher .philosopher {
  position: absolute; bottom: 18%; right: 25%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-figure 5s ease-in-out infinite;
  animation-delay: 2.5s;
}
.scn-poet-and-philosopher .philosopher::before {
  content: ''; position: absolute; top: -16px; left: 3px; width: 20px; height: 20px;
  background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 100%);
  border-radius: 50%; border-left: 3px solid #4a4a5a; /* profile hint */
}
.scn-poet-and-philosopher .desk {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #3a2e20 0%, #2a1e10 100%);
  border-radius: 2px;
  animation: s3-desk 8s ease-in-out infinite;
}
.scn-poet-and-philosopher .lamp {
  position: absolute; bottom: 16%; left: 48%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #8b6b4e 0%, #4a3524 100%);
  border-radius: 2px;
}
.scn-poet-and-philosopher .lamp::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 22px; height: 14px;
  background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #cc8844 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: s3-flame 1.2s ease-in-out infinite alternate;
}
.scn-poet-and-philosopher .scroll {
  position: absolute; bottom: 22%; left: 58%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #aaa080 0%, #7a7050 100%);
  border-radius: 2px 2px 8px 8px;
  transform: rotate(10deg);
  animation: s3-scroll 12s ease-in-out infinite;
}
.scn-poet-and-philosopher .chair {
  position: absolute; bottom: 23%; left: 22%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: s3-chair 6s ease-in-out infinite;
}
.scn-poet-and-philosopher .thought {
  position: absolute; top: 25%; left: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(200, 200, 220, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: s3-thought 10s ease-in-out infinite;
}
@keyframes s3-bg {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes s3-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s3-desk {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.1); }
}
@keyframes s3-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.1, 1.3) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes s3-scroll {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(11deg) translateY(0); }
}
@keyframes s3-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes s3-thought {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.4; }
}

.scn-absurdity-of-homer {
  background: linear-gradient(135deg, #141820 0%, #202830 40%, #181c24 100%),
              radial-gradient(ellipse at 50% 60%, #2a3240 0%, transparent 70%);
}
.scn-absurdity-of-homer .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0c1018 80%);
  opacity: 0.6;
  animation: s4-bg 18s ease-in-out infinite alternate;
}
.scn-absurdity-of-homer .stage {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-absurdity-of-homer .figure {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-figure 4s ease-in-out infinite;
}
.scn-absurdity-of-homer .figure::before {
  content: ''; position: absolute; top: -20px; left: 2px; width: 18px; height: 22px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%; /* head facing left */
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); /* but no clip-path for faces? alternative: use border-radius and scale */
  /* safer: no face details, just silhouette */
}
.scn-absurdity-of-homer .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: s4-shadow 4s ease-in-out infinite;
}
.scn-absurdity-of-homer .pillar-left,
.scn-absurdity-of-homer .pillar-right {
  position: absolute; top: 10%; width: 16px; height: 40%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 4px;
  box-shadow: inset 2px 0 4px rgba(0,0,0,0.3);
  animation: s4-pillar 6s ease-in-out infinite;
}
.scn-absurdity-of-homer .pillar-left { left: 20%; transform-origin: bottom center; }
.scn-absurdity-of-homer .pillar-right { right: 22%; transform-origin: bottom center; animation-delay: 3s; }
.scn-absurdity-of-homer .orb {
  position: absolute; top: 22%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #88aacc 0%, #446688 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(68, 102, 136, 0.4);
  animation: s4-orb 8s ease-in-out infinite;
}
.scn-absurdity-of-homer .quill {
  position: absolute; bottom: 40%; left: 36%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #aaa080 0%, #5a5040 100%);
  border-radius: 2px 2px 10px 10px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: s4-quill 5s ease-in-out infinite;
}
@keyframes s4-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.55; }
}
@keyframes s4-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s4-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(5px) scale(1.2); opacity: 0.7; }
  100% { transform: translateX(-3px) scale(0.9); opacity: 0.4; }
}
@keyframes s4-pillar {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.9) translateY(10px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes s4-orb {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  30% { transform: translateY(-10px) scale(1.1); opacity: 0.9; }
  70% { transform: translateY(5px) scale(0.95); opacity: 0.7; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes s4-quill {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-5px); }
  100% { transform: rotate(-32deg) translateY(0); }
}

/* Scene: world-of-sense-depreciated */
.scn-world-of-sense-depreciated {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-world-of-sense-depreciated .cave-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #12121a 0%, #1a1a28 50%, #252535 100%);
  animation: wsd-breathe 12s ease-in-out infinite alternate;
}
.scn-world-of-sense-depreciated .cave-wall-left {
  position: absolute; left:0; top:0; width:25%; height:100%;
  background: linear-gradient(90deg, #1e1e2e 0%, #2a2a3e 100%);
  border-radius: 0 40% 0 0 / 0 60% 0 0;
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.6);
  animation: wsd-wall 15s ease-in-out infinite alternate;
}
.scn-world-of-sense-depreciated .cave-wall-right {
  position: absolute; right:0; top:0; width:30%; height:100%;
  background: linear-gradient(270deg, #1a1a2a 0%, #252538 100%);
  border-radius: 40% 0 0 0 / 60% 0 0 0;
  box-shadow: inset 10px 0 30px rgba(0,0,0,0.5);
  animation: wsd-wall 18s ease-in-out infinite alternate-reverse;
}
.scn-world-of-sense-depreciated .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-world-of-sense-depreciated .fire {
  position: absolute; bottom:22%; left:45%; width:30px; height:50px;
  background: radial-gradient(ellipse at 50% 80%, #ffa050 0%, #b06020 50%, #4a2000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(180,100,30,0.4), 0 0 120px 60px rgba(100,50,10,0.2);
  animation: wsd-fire 3s ease-in-out infinite alternate;
}
.scn-world-of-sense-depreciated .figure {
  position: absolute; bottom:20%; left:30%; width:20px; 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: wsd-figure-turn 8s ease-in-out infinite;
}
.scn-world-of-sense-depreciated .shadow {
  position: absolute; bottom:22%; left:55%; width:40px; height:60px;
  background: rgba(0,0,0,0.6);
  border-radius: 60% 40% 30% 30% / 80% 60% 20% 20%;
  filter: blur(4px);
  animation: wsd-shadow 8s ease-in-out infinite;
}
.scn-world-of-sense-depreciated .smoke {
  position: absolute; bottom:50%; left:46%; width:10px; height:20px;
  background: rgba(180,140,100,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: wsd-smoke 6s ease-in-out infinite;
  box-shadow: 0 -10px 20px rgba(180,140,100,0.1);
}

@keyframes wsd-breathe { 0% { opacity:0.6; } 50% { opacity:0.85; } 100% { opacity:0.7; } }
@keyframes wsd-wall { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes wsd-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.12) translateY(-3px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes wsd-figure-turn { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(2px) rotate(2deg); } 70% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wsd-shadow { 0% { transform: scaleX(1) translateX(0); } 30% { transform: scaleX(1.2) translateX(5px); } 50% { transform: scaleX(0.95) translateX(-2px); } 70% { transform: scaleX(1.1) translateX(-3px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes wsd-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

/* Scene: turning-the-eye */
.scn-turning-the-eye {
  background:
    linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 70% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-turning-the-eye .room-bg {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #1a1410 0%, #2a2018 50%, #3a3028 100%);
  animation: tte-ambient 20s ease-in-out infinite alternate;
}
.scn-turning-the-eye .window {
  position: absolute; left:15%; top:20%; width:120px; height:160px;
  background: linear-gradient(180deg, #ffd494 0%, #ffb84d 50%, #d68a2e 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.3), 0 0 80px 40px rgba(255,180,60,0.25);
  animation: tte-window-glow 5s ease-in-out infinite alternate;
}
.scn-turning-the-eye .light-rays {
  position: absolute; left:15%; top:20%; width:300px; height:300px;
  background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  filter: blur(15px);
  animation: tte-rays 8s ease-in-out infinite alternate;
}
.scn-turning-the-eye .figure-body {
  position: absolute; bottom:15%; right:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tte-turn 10s ease-in-out infinite;
}
.scn-turning-the-eye .figure-head {
  position: absolute; bottom:65%; right:22%; width:22px; height:24px;
  background: radial-gradient(circle at 60% 40%, #2a2220 0%, #1a1412 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 70% 100%;
  animation: tte-head 10s ease-in-out infinite;
}
.scn-turning-the-eye .arm {
  position: absolute; bottom:40%; right:12%; width:6px; height:30px;
  background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%);
  border-radius: 20% 80% 40% 60% / 50% 50% 50% 50%;
  transform-origin: 50% 0%;
  animation: tte-arm 10s ease-in-out infinite;
}
.scn-turning-the-eye .mote-1 {
  position: absolute; left:35%; top:30%; width:4px; height:4px;
  background: rgba(255,220,150,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: tte-mote 12s linear infinite;
}
.scn-turning-the-eye .mote-2 {
  position: absolute; left:40%; top:50%; width:3px; height:3px;
  background: rgba(255,220,150,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: tte-mote 15s linear infinite 4s;
}

@keyframes tte-ambient { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes tte-window-glow { 0% { box-shadow: 0 0 40px 20px rgba(255,180,60,0.2); } 50% { box-shadow: 0 0 80px 40px rgba(255,200,100,0.4); } 100% { box-shadow: 0 0 50px 25px rgba(255,180,60,0.3); } }
@keyframes tte-rays { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes tte-turn { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-15deg); } 50% { transform: translateX(-15px) rotate(-30deg); } 75% { transform: translateX(-8px) rotate(-15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tte-head { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes tte-arm { 0% { transform: rotate(0deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(-45deg); } 75% { transform: rotate(-20deg); } 100% { transform: rotate(0deg); } }
@keyframes tte-mote { 0% { transform: translateY(0) translateX(0); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translateY(-40px) translateX(20px); opacity:0; } }

/* Scene: false-before-true */
.scn-false-before-true {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 60%);
}
.scn-false-before-true .table {
  position: absolute; bottom:0; left:5%; width:90%; height:55%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.5), 0 -10px 30px rgba(0,0,0,0.5);
  animation: fbt-table 20s ease-in-out infinite alternate;
}
.scn-false-before-true .mask {
  position: absolute; bottom:40%; left:25%; width:60px; height:70px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fbt-mask 6s ease-in-out infinite alternate;
}
.scn-false-before-true .candle {
  position: absolute; bottom:42%; right:25%; width:14px; height:50px;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6a4a 50%, #7a5a3a 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: fbt-candle 8s ease-in-out infinite alternate;
}
.scn-false-before-true .candle-flame {
  position: absolute; bottom:83%; right:25.5%; width:10px; height:20px;
  background: radial-gradient(ellipse at 50% 20%, #ffc060 0%, #b08030 60%, #5a2a00 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,160,40,0.4), 0 0 60px 20px rgba(200,120,30,0.2);
  animation: fbt-flame 3s ease-in-out infinite alternate;
}
.scn-false-before-true .shadow-mask {
  position: absolute; bottom:30%; left:20%; width:70px; height:30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: fbt-shadow 6s ease-in-out infinite alternate;
}
.scn-false-before-true .shadow-candle {
  position: absolute; bottom:30%; right:20%; width:40px; height:25px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: fbt-shadow 8s ease-in-out infinite alternate-reverse;
}
.scn-false-before-true .line {
  position: absolute; bottom:38%; left:10%; width:80%; height:2px;
  background: linear-gradient(90deg, transparent 0%, #4a4a5a 20%, #6a6a7a 50%, #4a4a5a 80%, transparent 100%);
  animation: fbt-line 12s ease-in-out infinite alternate;
}

@keyframes fbt-table { 0% { transform: scaleY(0.98) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.99) translateY(0); } }
@keyframes fbt-mask { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.05); } 100% { transform: rotate(-2deg) scale(0.95); } }
@keyframes fbt-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fbt-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-4px); } 100% { transform: scaleY(0.9) translateY(0); } }
@keyframes fbt-shadow { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes fbt-line { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* Scene: platos-drawing-line */
.scn-platos-drawing-line {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2a221c 50%, #3a3228 100%),
    radial-gradient(ellipse at 60% 40%, #2a221c 0%, transparent 70%);
}
.scn-platos-drawing-line .desk {
  position: absolute; bottom:0; left:5%; width:90%; height:60%;
  background: linear-gradient(0deg, #1a1410 0%, #2a221c 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: pdl-desk 25s ease-in-out infinite alternate;
}
.scn-platos-drawing-line .paper {
  position: absolute; bottom:45%; left:30%; width:35%; height:20%;
  background: linear-gradient(135deg, #6a5a44 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pdl-paper 8s ease-in-out infinite alternate;
}
.scn-platos-drawing-line .hand {
  position: absolute; bottom:50%; left:45%; width:18px; height:30px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom right;
  animation: pdl-hand 6s ease-in-out infinite;
}
.scn-platos-drawing-line .pencil {
  position: absolute; bottom:52%; left:48%; width:4px; height:24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: pdl-pencil 6s ease-in-out infinite;
}
.scn-platos-drawing-line .lamp {
  position: absolute; bottom:55%; right:12%; width:40px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,0.3);
  animation: pdl-lamp 5s ease-in-out infinite alternate;
}
.scn-platos-drawing-line .book-1 {
  position: absolute; bottom:38%; left:10%; width:40px; height:25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-15deg);
  animation: pdl-book 12s ease-in-out infinite;
}
.scn-platos-drawing-line .book-2 {
  position: absolute; bottom:36%; left:14%; width:45px; height:28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: pdl-book 14s ease-in-out infinite 2s;
}
.scn-platos-drawing-line .bookshelf {
  position: absolute; bottom:30%; left:2%; width:20%; height:40%;
  background: linear-gradient(0deg, #1a1410 0%, #2a221c 100%);
  border-radius: 4px;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: pdl-shelf 30s ease-in-out infinite alternate;
}

@keyframes pdl-desk { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.99); } }
@keyframes pdl-paper { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes pdl-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(15px) translateY(-4px) rotate(10deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pdl-pencil { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(8deg); } 50% { transform: translateX(12px) rotate(15deg); } 75% { transform: translateX(6px) rotate(8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pdl-lamp { 0% { box-shadow: 0 0 20px 8px rgba(200,140,60,0.2); } 50% { box-shadow: 0 0 40px 16px rgba(200,140,60,0.4); } 100% { box-shadow: 0 0 25px 10px rgba(200,140,60,0.3); } }
@keyframes pdl-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-17deg) translateY(0); } }
@keyframes pdl-shelf { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }

/* justice-in-contracts */
.scn-justice-in-contracts {
  background: linear-gradient(180deg, #2a2420 0%, #1c1714 50%, #0f0c0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2e26 0%, transparent 70%);
}
.scn-justice-in-contracts .table {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: jic-table 12s ease-in-out infinite;
}
.scn-justice-in-contracts .board {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 22%;
  height: 22%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #b89860 25%, #d4b878 25%, #d4b878 50%, #b89860 50%, #b89860 75%, #d4b878 75%);
  background-size: 30% 30%;
  border: 3px solid #7a5a30;
  border-radius: 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: jic-board 18s ease-in-out infinite;
}
.scn-justice-in-contracts .scroll {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 12%;
  height: 14%;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: jic-scroll 9s ease-in-out infinite;
}
.scn-justice-in-contracts .candle {
  position: absolute;
  bottom: 24%;
  left: 15%;
  width: 3%;
  height: 18%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a080 100%);
  border-radius: 30%;
  animation: jic-candle 4s ease-in-out infinite;
}
.scn-justice-in-contracts .glow {
  position: absolute;
  bottom: 32%;
  left: 14%;
  width: 20%;
  height: 20%;
  background: radial-gradient(circle, rgba(255,200,120,.6) 0%, transparent 60%);
  border-radius: 50%;
  animation: jic-glow 3s ease-in-out infinite alternate;
}
.scn-justice-in-contracts .figure-left {
  position: absolute;
  bottom: 10%;
  left: 12%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jic-figure-left 6s ease-in-out infinite;
}
.scn-justice-in-contracts .figure-right {
  position: absolute;
  bottom: 10%;
  right: 12%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jic-figure-right 6s ease-in-out infinite;
}
@keyframes jic-table { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes jic-board { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes jic-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes jic-candle { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.03); opacity: 1; } 100% { transform: scaleY(1); opacity: .85; } }
@keyframes jic-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .7; transform: scale(1.1); } }
@keyframes jic-figure-left { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes jic-figure-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }

/* justice-in-money-matters */
.scn-justice-in-money-matters {
  background: linear-gradient(180deg, #2e2522 0%, #1a1412 50%, #0a0807 100%),
              radial-gradient(ellipse at 40% 70%, #3d312a 0%, transparent 65%);
}
.scn-justice-in-money-matters .harp-body {
  position: absolute;
  bottom: 10%;
  left: 25%;
  width: 8%;
  height: 40%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3424 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: jim-harp-body 10s ease-in-out infinite;
}
.scn-justice-in-money-matters .harp-neck {
  position: absolute;
  bottom: 45%;
  left: 25%;
  width: 16%;
  height: 6%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: jim-harp-neck 8s ease-in-out infinite;
}
.scn-justice-in-money-matters .harp-strings {
  position: absolute;
  bottom: 15%;
  left: 28%;
  width: 2%;
  height: 32%;
  background: repeating-linear-gradient(0deg, #d4c0a0 0px, #d4c0a0 2px, transparent 2px, transparent 6px);
  border-radius: 0;
  box-shadow: 4px 0 6px rgba(0,0,0,.3);
  animation: jim-strings 6s ease-in-out infinite;
}
.scn-justice-in-money-matters .coins {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 15%;
  height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #d4b060 0%, #a08040 60%, #706028 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: jim-coins 14s ease-in-out infinite;
}
.scn-justice-in-money-matters .coin-glow {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 15%;
  height: 12%;
  background: radial-gradient(circle, rgba(212,176,96,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: jim-coin-glow 5s ease-in-out infinite alternate;
}
.scn-justice-in-money-matters .candle {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 3%;
  height: 18%;
  background: linear-gradient(180deg, #e8c888 0%, #b89868 100%);
  border-radius: 30%;
  animation: jim-candle 4s ease-in-out infinite;
}
.scn-justice-in-money-matters .candle-glow {
  position: absolute;
  bottom: 28%;
  left: 8%;
  width: 20%;
  height: 20%;
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 60%);
  border-radius: 50%;
  animation: jim-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes jim-harp-body { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes jim-harp-neck { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-13deg); } 100% { transform: rotate(-15deg); } }
@keyframes jim-strings { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes jim-coins { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes jim-coin-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.3); } 100% { opacity: .4; transform: scale(1.1); } }
@keyframes jim-candle { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: .85; } }
@keyframes jim-candle-glow { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.2); } 100% { opacity: .5; transform: scale(1.05); } }

/* use-of-money */
.scn-use-of-money {
  background: linear-gradient(180deg, #2a221d 0%, #1a1410 50%, #0c0907 100%),
              radial-gradient(ellipse at 50% 60%, #3a2c24 0%, transparent 70%);
}
.scn-use-of-money .window {
  position: absolute;
  top: 8%;
  left: 30%;
  width: 40%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #8ab4c8 0%, #506a78 70%);
  border: 6px solid #40302a;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: uom-window 20s ease-in-out infinite;
}
.scn-use-of-money .desk {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 20%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.6);
  animation: uom-desk 12s ease-in-out infinite;
}
.scn-use-of-money .ship-hull {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 20%;
  height: 12%;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3220 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: uom-hull 10s ease-in-out infinite;
}
.scn-use-of-money .ship-mast {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 2%;
  height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a30 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: uom-mast 12s ease-in-out infinite;
}
.scn-use-of-money .map {
  position: absolute;
  bottom: 16%;
  left: 60%;
  width: 18%;
  height: 18%;
  background: linear-gradient(135deg, #c8a870 25%, #d4b880 25%, #d4b880 50%, #c8a870 50%, #c8a870 75%, #d4b880 75%);
  background-size: 40% 40%;
  border-radius: 4% 8% 12% 6%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: uom-map 15s ease-in-out infinite;
}
.scn-use-of-money .coin {
  position: absolute;
  bottom: 14%;
  left: 50%;
  width: 6%;
  height: 6%;
  background: radial-gradient(circle, #d4c070 0%, #a08840 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: uom-coin 6s ease-in-out infinite;
}
.scn-use-of-money .compass {
  position: absolute;
  bottom: 28%;
  left: 10%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #b8a070 0%, #786050 100%);
  border-radius: 50%;
  border: 2px solid #5a4030;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: uom-compass 20s ease-in-out infinite;
  transform: rotate(20deg);
}
@keyframes uom-window { 0% { opacity: .7; } 50% { opacity: .85; } 100% { opacity: .75; } }
@keyframes uom-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes uom-hull { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes uom-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes uom-map { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes uom-coin { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes uom-compass { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }

/* useful-when-useless */
.scn-useful-when-useless {
  background: linear-gradient(180deg, #2e2620 0%, #1a1410 50%, #0c0907 100%),
              radial-gradient(ellipse at 50% 50%, #3a3028 0%, transparent 65%);
}
.scn-useful-when-useless .shelf {
  position: absolute;
  top: 35%;
  left: 5%;
  right: 5%;
  height: 4%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%);
  border-radius: 2px;
  box-shadow: 0 6px 10px rgba(0,0,0,.6);
  animation: uuw-shelf 20s ease-in-out infinite;
}
.scn-useful-when-useless .pruning-hook {
  position: absolute;
  top: 12%;
  left: 20%;
  width: 15%;
  height: 18%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3420 100%);
  clip-path: polygon(0% 100%, 40% 0%, 60% 0%, 100% 100%);
  transform: rotate(10deg);
  animation: uuw-hook 8s ease-in-out infinite;
}
.scn-useful-when-useless .shield {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 18%;
  height: 22%;
  background: radial-gradient(ellipse at 50% 50%, #b8a070 0%, #786050 70%);
  border-radius: 50%;
  border: 4px solid #5a4030;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: uuw-shield 15s ease-in-out infinite;
}
.scn-useful-when-useless .lyre {
  position: absolute;
  top: 14%;
  right: 18%;
  width: 10%;
  height: 20%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3424 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-8deg);
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: uuw-lyre 10s ease-in-out infinite;
}
.scn-useful-when-useless .candle {
  position: absolute;
  bottom: 18%;
  left: 10%;
  width: 3%;
  height: 18%;
  background: linear-gradient(180deg, #e8c888 0%, #b89868 100%);
  border-radius: 30%;
  animation: uuw-candle 4s ease-in-out infinite;
}
.scn-useful-when-useless .candle-glow {
  position: absolute;
  bottom: 26%;
  left: 8%;
  width: 22%;
  height: 24%;
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 60%);
  border-radius: 50%;
  animation: uuw-candle-glow 3s ease-in-out infinite alternate;
}
.scn-useful-when-useless .shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.7) 100%);
  pointer-events: none;
  animation: uuw-shadow 12s ease-in-out infinite;
}
@keyframes uuw-shelf { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes uuw-hook { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes uuw-shield { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes uuw-lyre { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes uuw-candle { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: .85; } }
@keyframes uuw-candle-glow { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.15); } 100% { opacity: .5; transform: scale(1.05); } }
@keyframes uuw-shadow { 0% { opacity: .6; } 50% { opacity: .7; } 100% { opacity: .6; } }

/* more-holds-with-plato – calm, dim interior, scholar's study */
.scn-more-holds-with-plato {
  background: 
    linear-gradient(180deg, #2b1f1a 0%, #1f1512 40%, #3a2b24 100%),
    radial-gradient(ellipse at 50% 40%, #5c3d2e 0%, transparent 80%);
}
.scn-more-holds-with-plato .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3b2e28 0%, #1f1512 100%);
  animation: mhp-wall 20s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .bookshelf {
  position: absolute; top: 8%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #5c4033 0%, #3a2b24 100%);
  border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: mhp-shelf 25s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(180deg, #4d3327 0%, #2c1e15 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: mhp-desk 30s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .candle {
  position: absolute; bottom: 36%; left: 38%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e8c87a 0%, #b8934a 50%, #6a4420 100%);
  border-radius: 2px 2px 4px 4px; transform-origin: bottom;
  animation: mhp-candle 6s ease-in-out infinite;
}
.scn-more-holds-with-plato .candle-glow {
  position: absolute; bottom: 34%; left: 36%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f2d68a 0%, #c9943a 60%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: mhp-glow 3s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .figure {
  position: absolute; bottom: 12%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2b1f1a 0%, #150f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mhp-figure 8s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .book {
  position: absolute; bottom: 16%; left: 45%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #8b5a2b 0%, #5c3a1e 100%);
  border-radius: 2px; transform-origin: left center;
  animation: mhp-book 12s ease-in-out infinite alternate;
}
.scn-more-holds-with-plato .dust-a,
.scn-more-holds-with-plato .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(220,200,150,0.4); border-radius: 50%;
  filter: blur(2px);
}
.scn-more-holds-with-plato .dust-a {
  top: 20%; left: 15%; animation: mhp-dust 15s linear infinite;
}
.scn-more-holds-with-plato .dust-b {
  top: 30%; left: 60%; animation: mhp-dust 18s linear infinite reverse;
}

@keyframes mhp-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mhp-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mhp-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes mhp-candle {
  0% { transform: rotate(-2deg) 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(-2deg) scaleY(1); }
}
@keyframes mhp-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.75; transform: scale(1); }
}
@keyframes mhp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mhp-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes mhp-dust {
  0% { transform: translateY(0) translateX(0) scale(0.8); opacity: 0.3; }
  25% { transform: translateY(-8px) translateX(10px) scale(1); opacity: 0.6; }
  50% { transform: translateY(-16px) translateX(5px) scale(0.9); opacity: 0.4; }
  75% { transform: translateY(-24px) translateX(15px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(-32px) translateX(0) scale(0.8); opacity: 0.3; }
}

/* more-dramatic-invention – calm, dim interior, writer's nook */
.scn-more-dramatic-invention {
  background: 
    linear-gradient(180deg, #3a2e28 0%, #251d19 50%, #1a1411 100%),
    radial-gradient(ellipse at 50% 30%, #593f31 0%, transparent 75%);
}
.scn-more-dramatic-invention .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2d221e 0%, #1b1310 100%);
  animation: mdi-bg 30s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #6b4c3b 0%, #3d2a1e 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,0.6);
  animation: mdi-desk 35s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .paper {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d9c8a8 0%, #b89e78 100%);
  border-radius: 1px; transform-origin: bottom left;
  animation: mdi-paper 10s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .ink {
  position: absolute; bottom: 24%; left: 32%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #2a1f1a 0%, #0f0a08 100%);
  border-radius: 4px; animation: mdi-ink 20s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .quill {
  position: absolute; bottom: 26%; left: 37%; width: 3px; height: 24px;
  background: linear-gradient(180deg, #c4aa8a 0%, #8a6e50 100%);
  transform-origin: bottom; border-radius: 1px;
  animation: mdi-quill 4s ease-in-out infinite;
}
.scn-more-dramatic-invention .figure {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2b1f1a 0%, #150f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdi-figure 6s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .lamp {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #e8c87a 0%, #b8934a 50%, #5c3818 100%);
  border-radius: 4px 4px 8px 8px;
  animation: mdi-lamp 8s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .lamp-glow {
  position: absolute; bottom: 28%; left: 17%; width: 24px; height: 24px;
  background: radial-gradient(circle, #f2d68a 0%, #d4a15a 60%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: mdi-glow 3s ease-in-out infinite alternate;
}
.scn-more-dramatic-invention .shadow {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: mdi-shadow 12s ease-in-out infinite alternate;
}

@keyframes mdi-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mdi-desk {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mdi-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes mdi-ink {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mdi-quill {
  0% { transform: rotate(10deg) translateX(0); }
  25% { transform: rotate(15deg) translateX(2px); }
  50% { transform: rotate(10deg) translateX(0); }
  75% { transform: rotate(5deg) translateX(-2px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes mdi-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mdi-lamp {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.03); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes mdi-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 0.85; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes mdi-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* more-mixed-reality – funny, dim interior, group with ghostly figure */
.scn-more-mixed-reality {
  background: 
    linear-gradient(180deg, #342720 0%, #1e1511 40%, #2a1e19 100%),
    radial-gradient(ellipse at 50% 60%, #4a352b 0%, transparent 70%);
}
.scn-more-mixed-reality .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2b1e1a 0%, #180f0c 100%);
  animation: mmr-bg 25s ease-in-out infinite alternate;
}
.scn-more-mixed-reality .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #5c3f30 0%, #34231b 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: mmr-table 20s ease-in-out infinite alternate;
}
.scn-more-mixed-reality .figure-left {
  position: absolute; bottom: 14%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2b1f1a 0%, #150f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: mmr-figure-left 5s ease-in-out infinite alternate;
}
.scn-more-mixed-reality .figure-right {
  position: absolute; bottom: 14%; left: 60%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2b1f1a 0%, #150f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: mmr-figure-right 5s ease-in-out infinite alternate reverse;
}
.scn-more-mixed-reality .figure-ghost {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 45px;
  background: linear-gradient(180deg, rgba(220,200,180,0.6) 0%, rgba(160,140,120,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px); opacity: 0.7;
  animation: mmr-ghost 7s ease-in-out infinite;
}
.scn-more-mixed-reality .candle {
  position: absolute; bottom: 32%; left: 48%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #e8c87a 0%, #b8934a 50%, #6a4420 100%);
  border-radius: 2px; transform-origin: bottom;
  animation: mmr-candle 4s ease-in-out infinite;
}
.scn-more-mixed-reality .mug {
  position: absolute; bottom: 16%; left: 38%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4px 4px 2px 2px;
  animation: mmr-mug 15s ease-in-out infinite alternate;
}
.scn-more-mixed-reality .curtain {
  position: absolute; top: 5%; left: 5%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #5c4033 0%, #3a2b24 100%);
  border-radius: 0 10px 10px 0; filter: blur(1px);
  animation: mmr-curtain 20s ease-in-out infinite alternate;
}

@keyframes mmr-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes mmr-table {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.97); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mmr-figure-left {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes mmr-figure-right {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mmr-ghost {
  0% { transform: translateY(0) rotate(-5deg) scaleX(1); opacity: 0.6; }
  25% { transform: translateY(-4px) rotate(0) scaleX(1.1); opacity: 0.8; }
  50% { transform: translateY(-8px) rotate(5deg) scaleX(0.9); opacity: 0.5; }
  75% { transform: translateY(-4px) rotate(-2deg) scaleX(1.05); opacity: 0.7; }
  100% { transform: translateY(0) rotate(-5deg) scaleX(1); opacity: 0.6; }
}
@keyframes mmr-candle {
  0% { transform: rotate(-3deg) scaleY(1); }
  25% { transform: rotate(3deg) scaleY(1.03); }
  50% { transform: rotate(-2deg) scaleY(0.97); }
  75% { transform: rotate(4deg) scaleY(1.02); }
  100% { transform: rotate(-3deg) scaleY(1); }
}
@keyframes mmr-mug {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mmr-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}

/* more-utopia-lost – funny, dim interior, globe and ship */
.scn-more-utopia-lost {
  background: 
    linear-gradient(180deg, #352620 0%, #1e1511 50%, #2a1d18 100%),
    radial-gradient(ellipse at 50% 70%, #4d3629 0%, transparent 70%);
}
.scn-more-utopia-lost .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2b1e1a 0%, #170f0c 100%);
  animation: mul-bg 30s ease-in-out infinite alternate;
}
.scn-more-utopia-lost .globe {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #8bada0 0%, #3a5a4e 60%, #1a2a24 100%);
  border-radius: 50%; box-shadow: -4px -4px 8px rgba(0,0,0,0.5) inset;
  transform-origin: center;
  animation: mul-globe 15s linear infinite;
}
.scn-more-utopia-lost .ship {
  position: absolute; bottom: 24%; left: 35%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #6b4a3a 0%, #3d281e 100%);
  border-radius: 20% 20% 40% 40%; 
  transform-origin: center;
  animation: mul-ship 8s ease-in-out infinite;
}
.scn-more-utopia-lost .figure {
  position: absolute; bottom: 12%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2b1f1a 0%, #150f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mul-figure 6s ease-in-out infinite alternate;
}
.scn-more-utopia-lost .table {
  position: absolute; bottom: 6%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #5c3f30 0%, #34231b 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: mul-table 25s ease-in-out infinite alternate;
}
.scn-more-utopia-lost .candle {
  position: absolute; bottom: 28%; left: 45%; width: 5px; height: 30px;
  background: linear-gradient(180deg, #e8c87a 0%, #b8934a 50%, #6a4420 100%);
  border-radius: 2px; transform-origin: bottom;
  animation: mul-candle 4s ease-in-out infinite;
}
.scn-more-utopia-lost .candle::after {
  content: ''; position: absolute; top: -6px; left: -2px; width: 10px; height: 8px;
  background: radial-gradient(circle, #f2d68a 0%, transparent 100%);
  filter: blur(2px);
  animation: mul-glow 3s ease-in-out infinite alternate;
}
.scn-more-utopia-lost .map {
  position: absolute; bottom: 12%; left: 45%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #d9c8a8 0%, #b89e78 100%);
  border-radius: 2px; transform-origin: center;
  animation: mul-map 12s ease-in-out infinite alternate;
}
.scn-more-utopia-lost .compass {
  position: absolute; bottom: 14%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c0a080 0%, #8a6e50 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: mul-compass 20s linear infinite;
}

@keyframes mul-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mul-globe {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(90deg) scale(1.02); }
  50% { transform: rotate(180deg) scale(1); }
  75% { transform: rotate(270deg) scale(0.98); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes mul-ship {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  25% { transform: translateX(4px) rotate(5deg) scaleY(0.95); }
  50% { transform: translateX(0) rotate(-5deg) scaleY(1); }
  75% { transform: translateX(-4px) rotate(5deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(0) scaleY(1); }
}
@keyframes mul-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes mul-table {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mul-candle {
  0% { transform: rotate(-3deg) scaleY(1); }
  25% { transform: rotate(3deg) scaleY(1.02); }
  50% { transform: rotate(-2deg) scaleY(0.98); }
  75% { transform: rotate(2deg) scaleY(1.01); }
  100% { transform: rotate(-3deg) scaleY(1); }
}
@keyframes mul-glow {
  0% { opacity: 0.6; transform: scale(0.8); }
  50% { opacity: 0.9; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes mul-map {
  0% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes mul-compass {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

.scn-greatest-ideal{background:linear-gradient(135deg,#3a2a1a 0%,#1a120a 100%),radial-gradient(ellipse at 30% 60%,#6a4020 0%,transparent 70%)}
.scn-greatest-ideal .bg-wall{position:absolute;inset:0;background:linear-gradient(180deg,#2a1e12 0%,#1a0f08 100%);animation:gi-wall 12s ease-in-out infinite alternate}
.scn-greatest-ideal .window{position:absolute;top:10%;left:5%;width:30%;height:50%;background:radial-gradient(ellipse at 50% 50%,#4a6a8a 0%,#1a2a3a 100%);border-radius:10%;box-shadow:inset 0 0 20px rgba(0,0,0,.6);animation:gi-win 8s ease-in-out infinite alternate}
.scn-greatest-ideal .desk{position:absolute;bottom:8%;left:20%;width:60%;height:15%;background:linear-gradient(180deg,#4a3a2a 0%,#2a1e12 100%);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.5)}
.scn-greatest-ideal .candle{position:absolute;bottom:20%;left:55%;width:6%;height:18%;background:linear-gradient(180deg,#c8a878 0%,#a08050 100%);border-radius:2px 2px 4px 4px}
.scn-greatest-ideal .flame{position:absolute;bottom:36%;left:56%;width:4%;height:10%;background:radial-gradient(ellipse at 50% 0%,#ffe8a0 0%,#e8a040 60%,transparent 100%);border-radius:50%;box-shadow:0 0 20px 8px #e8a040,0 0 40px 16px rgba(232,160,64,.4);animation:gi-flame 3s ease-in-out infinite alternate}
.scn-greatest-ideal .book{position:absolute;bottom:12%;left:28%;width:14%;height:8%;background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:2px;transform:rotate(5deg);box-shadow:inset 0 0 6px #1a120a}
.scn-greatest-ideal .figure{position:absolute;bottom:8%;left:20%;width:12%;height:40%;background:linear-gradient(180deg,#1a120a 0%,#0a0806 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:gi-figure 6s ease-in-out infinite}
@keyframes gi-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.8}}
@keyframes gi-win{0%{filter:brightness(.6)}50%{filter:brightness(1)}100%{filter:brightness(.7)}}
@keyframes gi-flame{0%{transform:scaleY(1) translateY(0);opacity:.9}50%{transform:scaleY(1.2) translateY(-4px);opacity:1}100%{transform:scaleY(.9) translateY(2px);opacity:.8}}
@keyframes gi-figure{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(6px) rotate(1deg)}50%{transform:translateX(12px) rotate(-2deg)}75%{transform:translateX(18px) rotate(2deg)}100%{transform:translateX(24px) rotate(0)}}

.scn-third-ideal-christ{background:linear-gradient(180deg,#1a1a3a 0%,#4a6a8a 30%,#d4a060 70%,#f0c880 100%),radial-gradient(ellipse at 50% 0%,#fff0c0 0%,transparent 50%)}
.scn-third-ideal-christ .sky{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,transparent 0%,rgba(255,200,100,.3) 100%);animation:tic-sky 20s ease-in-out infinite alternate}
.scn-third-ideal-christ .sun{position:absolute;bottom:30%;left:50%;width:12%;height:12%;transform:translateX(-50%);background:radial-gradient(circle,#ffe8a0 0%,#d4a060 60%,transparent 100%);border-radius:50%;box-shadow:0 0 80px 40px #d4a060,0 0 160px 80px rgba(212,160,96,.3);animation:tic-sun 12s ease-in-out infinite alternate}
.scn-third-ideal-christ .hills-bg{position:absolute;bottom:22%;left:0;right:0;height:20%;background:linear-gradient(180deg,#3a4a5a 0%,#2a3a4a 100%);border-radius:40% 60% 0 0/80% 70% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.4);animation:tic-hills 18s ease-in-out infinite alternate}
.scn-third-ideal-christ .hill-fg{position:absolute;bottom:10%;left:-10%;right:-10%;height:25%;background:linear-gradient(180deg,#2a3a2a 0%,#1a2a1a 100%);border-radius:50% 50% 0 0/100% 100% 0 0;box-shadow:inset 0 6px 12px rgba(0,0,0,.5);animation:tic-hill 24s ease-in-out infinite alternate}
.scn-third-ideal-christ .figure{position:absolute;bottom:18%;left:50%;width:8%;height:30%;transform:translateX(-50%);background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:tic-fig 8s ease-in-out infinite}
.scn-third-ideal-christ .rays{position:absolute;bottom:30%;left:40%;width:20%;height:60%;background:linear-gradient(180deg,rgba(255,200,100,.2) 0%,transparent 100%);transform:rotate(-15deg);border-radius:0 50% 50% 0;filter:blur(8px);animation:tic-rays 16s ease-in-out infinite alternate}
.scn-third-ideal-christ .cloud{position:absolute;top:5%;left:20%;width:25%;height:6%;background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,transparent 100%);border-radius:50%;filter:blur(6px);animation:tic-cloud 40s linear infinite}
@keyframes tic-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes tic-sun{0%{transform:translateX(-50%) scale(.95)}50%{transform:translateX(-50%) scale(1.05)}100%{transform:translateX(-50%) scale(1)}}
@keyframes tic-hills{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
@keyframes tic-hill{0%{transform:translateX(0)}50%{transform:translateX(-3px)}100%{transform:translateX(0)}}
@keyframes tic-fig{0%{transform:translateX(-50%) rotate(-1deg)}33%{transform:translateX(-50%) rotate(2deg) translateY(-2px)}66%{transform:translateX(-50%) rotate(-2deg) translateY(0)}100%{transform:translateX(-50%) rotate(0)}}
@keyframes tic-rays{0%{opacity:.3;transform:rotate(-15deg) scaleX(1)}50%{opacity:.6;transform:rotate(-10deg) scaleX(1.2)}100%{opacity:.3;transform:rotate(-20deg) scaleX(.9)}}
@keyframes tic-cloud{0%{transform:translateX(-30%)}100%{transform:translateX(130vw)}}

.scn-ideal-not-separable{background:linear-gradient(180deg,#2a1a0a 0%,#4a2a1a 40%,#1a0a00 100%),radial-gradient(ellipse at 50% 80%,#6a3a1a 0%,transparent 60%)}
.scn-ideal-not-separable .wall-bg{position:absolute;inset:0;background:linear-gradient(135deg,#3a1a0a 0%,#1a0800 100%);animation:ins-wall 10s ease-in-out infinite alternate}
.scn-ideal-not-separable .column-left{position:absolute;top:5%;left:10%;width:5%;height:90%;background:linear-gradient(90deg,#5a3a1a 0%,#4a2a0a 50%,#5a3a1a 100%);border-radius:5px;box-shadow:inset 0 0 10px rgba(0,0,0,.5)}
.scn-ideal-not-separable .column-right{position:absolute;top:5%;right:10%;width:5%;height:90%;background:linear-gradient(90deg,#5a3a1a 0%,#4a2a0a 50%,#5a3a1a 100%);border-radius:5px;box-shadow:inset 0 0 10px rgba(0,0,0,.5)}
.scn-ideal-not-separable .arch{position:absolute;top:0;left:8%;right:8%;height:30%;background:linear-gradient(180deg,#5a3a1a 0%,#3a1a0a 100%);border-radius:50% 50% 0 0/100% 100% 0 0;box-shadow:inset 0 10px 20px rgba(0,0,0,.4)}
.scn-ideal-not-separable .altar{position:absolute;bottom:20%;left:35%;width:30%;height:12%;background:linear-gradient(180deg,#6a4a2a 0%,#4a2a0a 100%);border-radius:4px 4px 10px 10px;box-shadow:0 6px 12px rgba(0,0,0,.5)}
.scn-ideal-not-separable .cross{position:absolute;bottom:30%;left:48%;width:4%;height:25%;background:linear-gradient(180deg,#5e1a1d 0%,#3a080a 100%);border-radius:2px;box-shadow:0 0 10px 2px #5e1a1d}
.scn-ideal-not-separable .candle{position:absolute;bottom:30%;left:42%;width:3%;height:10%;background:linear-gradient(180deg,#c8a878 0%,#a08050 100%);border-radius:2px}
.scn-ideal-not-separable .figure-kneel{position:absolute;bottom:18%;left:40%;width:10%;height:30%;background:linear-gradient(180deg,#1a0a00 0%,#0a0500 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:ins-fig 8s ease-in-out infinite}
@keyframes ins-wall{0%{opacity:.85}50%{opacity:1}100%{opacity:.9}}
@keyframes ins-fig{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(0)}}

.scn-dwelling-in-heart{background:linear-gradient(180deg,#1a0a1a 0%,#2a1020 40%,#0a000a 100%),radial-gradient(ellipse at 50% 50%,#4a2060 0%,transparent 70%)}
.scn-dwelling-in-heart .bg-chamber{position:absolute;inset:0;background:linear-gradient(135deg,#1a0a1a 0%,#0a000a 100%);animation:dih-bg 10s ease-in-out infinite alternate}
.scn-dwelling-in-heart .heart-window{position:absolute;top:5%;left:35%;width:30%;height:50%;background:radial-gradient(ellipse at 50% 50%,#d4a060 0%,#a06020 100%);border-radius:50% 50% 0 0/100% 100% 0 0;clip-path:polygon(50% 0%,0% 40%,20% 100%,80% 100%,100% 40%);box-shadow:0 0 60px 30px #a06020,0 0 120px 60px rgba(160,96,32,.4);animation:dih-heart 6s ease-in-out infinite alternate}
.scn-dwelling-in-heart .light-beam{position:absolute;top:40%;left:40%;width:20%;height:50%;background:linear-gradient(180deg,rgba(212,160,96,.3) 0%,transparent 100%);clip-path:polygon(30% 0%,70% 0%,90% 100%,10% 100%);animation:dih-beam 8s ease-in-out infinite alternate}
.scn-dwelling-in-heart .figure-standing{position:absolute;bottom:15%;left:40%;width:12%;height:35%;background:linear-gradient(180deg,#1a0a1a 0%,#0a000a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:dih-fig 10s ease-in-out infinite}
.scn-dwelling-in-heart .floor{position:absolute;bottom:0;left:0;right:0;height:15%;background:linear-gradient(180deg,#3a2030 0%,#2a1020 100%);box-shadow:inset 0 8px 16px rgba(0,0,0,.6)}
.scn-dwelling-in-heart .glow-particles{position:absolute;inset:0;background:radial-gradient(circle at 40% 45%,rgba(212,160,96,.08) 0%,transparent 30%,rgba(212,160,96,.04) 40%,transparent 60%);animation:dih-glows 15s ease-in-out infinite alternate}
@keyframes dih-bg{0%{opacity:.8}50%{opacity:1}100%{opacity:.9}}
@keyframes dih-heart{0%{transform:scale(.95);filter:brightness(.8)}50%{transform:scale(1.05);filter:brightness(1.1)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes dih-beam{0%{opacity:.6;transform:scaleY(1)}50%{opacity:.9;transform:scaleY(1.1)}100%{opacity:.6;transform:scaleY(.95)}}
@keyframes dih-fig{0%{transform:translateY(0) rotate(-1deg)}33%{transform:translateY(-4px) rotate(2deg)}66%{transform:translateY(-2px) rotate(-2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes dih-glows{0%{background-position:0 0}50%{background-position:10px 10px}100%{background-position:0 0}}

/* Scene 1: early-days-of-tyranny */
.scn-early-days-of-tyranny {
  background: 
    linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 120%, #3a2a4a 0%, transparent 70%);
}
.scn-early-days-of-tyranny .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, rgba(100,100,160,0.15) 0%, transparent 100%);
  animation: edt-sky 10s ease-in-out infinite alternate;
}
.scn-early-days-of-tyranny .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: edt-ground 14s ease-in-out infinite;
}
.scn-early-days-of-tyranny .tyrant-body {
  position:absolute; bottom:25%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: edt-tyrant 5s ease-in-out infinite;
}
.scn-early-days-of-tyranny .tyrant-face {
  position:absolute; bottom:55%; left:50%; width:20px; height:20px;
  transform: translateX(-50%) scale(1.2);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 0 2px #c8553d, 0 0 12px 6px rgba(200,85,61,0.3);
  animation: edt-face 3s ease-in-out infinite;
}
.scn-early-days-of-tyranny .spear {
  position:absolute; bottom:30%; left:50%; width:4px; height:60px;
  transform: translateX(-35px) rotate(-15deg);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: edt-spear 2s ease-in-out infinite;
}
.scn-early-days-of-tyranny .crowd {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: repeating-linear-gradient(90deg, 
    rgba(20,20,30,0.6) 0px, rgba(20,20,30,0.6) 8px, 
    transparent 8px, transparent 16px);
  filter: blur(3px);
  animation: edt-crowd 8s ease-in-out infinite alternate;
}
.scn-early-days-of-tyranny .fire {
  position:absolute; bottom:30%; left:20%; width:16px; height:24px;
  background: radial-gradient(circle at 50% 100%, #ffa060 0%, #c06030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c06030, 0 0 60px 20px rgba(192,96,48,0.3);
  animation: edt-fire 1.5s ease-in-out infinite;
}
@keyframes edt-sky   { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes edt-ground{ 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(2px) } }
@keyframes edt-tyrant{ 0%,100% { transform:translateX(-50%) rotate(0deg) scale(1) } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02) } }
@keyframes edt-face  { 0%,100% { box-shadow:inset 0 -4px 0 2px #c8553d, 0 0 12px 6px rgba(200,85,61,0.3) } 50% { box-shadow:inset 0 -4px 0 2px #e08060, 0 0 24px 12px rgba(224,128,96,0.5) } }
@keyframes edt-spear { 0%,100% { transform:translateX(-35px) rotate(-15deg) translateY(0) } 50% { transform:translateX(-35px) rotate(-13deg) translateY(-2px) } }
@keyframes edt-crowd { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes edt-fire  { 0%,100% { transform:scale(1) rotate(-5deg); box-shadow:0 0 20px 8px #c06030; } 50% { transform:scale(1.1) rotate(5deg); box-shadow:0 0 30px 12px #ff8040; } }

/* Scene 2: recapitulation-of-decline */
.scn-recapitulation-of-decline {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-recapitulation-of-decline .room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: rod-room 20s ease-in-out infinite alternate;
}
.scn-recapitulation-of-decline .desk {
  position:absolute; bottom:20%; left:30%; right:20%; height:15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: rod-desk 12s ease-in-out infinite;
}
.scn-recapitulation-of-decline .book {
  position:absolute; bottom:30%; left:38%; width:30px; height:20px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rod-book 15s ease-in-out infinite;
}
.scn-recapitulation-of-decline .figure {
  position:absolute; bottom:22%; left:45%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rod-figure 8s ease-in-out infinite;
}
.scn-recapitulation-of-decline .candle {
  position:absolute; bottom:32%; left:55%; width:8px; height:18px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 16px 6px #f0d090, 0 0 40px 16px rgba(240,208,144,0.3);
  animation: rod-candle 3s ease-in-out infinite;
}
.scn-recapitulation-of-decline .shelf {
  position:absolute; top:15%; left:10%; right:10%; height:8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rod-shelf 0s none; /* static but kept for consistency */
}
.scn-recapitulation-of-decline .window {
  position:absolute; top:10%; left:35%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #1a1a2a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 8px;
  opacity: 0.7;
  animation: rod-window 25s ease-in-out infinite alternate;
}
@keyframes rod-room   { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes rod-desk   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes rod-book   { 0%,100% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-1px) } }
@keyframes rod-figure { 0%,100% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) } }
@keyframes rod-candle { 0%,100% { box-shadow:0 0 16px 6px #f0d090,0 0 40px 16px rgba(240,208,144,0.3); } 50% { box-shadow:0 0 24px 10px #f0e0a0,0 0 60px 24px rgba(240,224,160,0.5); } }
@keyframes rod-window { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* Scene 3: first-decline-unclear */
.scn-first-decline-unclear {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 80%);
}
.scn-first-decline-unclear .bg {
  position:absolute; inset:0;
  background: linear-gradient(270deg, transparent 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
  animation: fdu-bg 30s ease-in-out infinite;
}
.scn-first-decline-unclear .stairs {
  position:absolute; bottom:10%; left:30%; right:30%; height:60%;
  background: repeating-linear-gradient(0deg, 
    #4a3a2a 0px, #4a3a2a 10px, 
    #2a1a0a 10px, #2a1a0a 20px);
  border-radius: 0 0 40% 40%;
  opacity: 0.5;
  animation: fdu-stairs 18s ease-in-out infinite alternate;
}
.scn-first-decline-unclear .figure {
  position:absolute; bottom:40%; left:50%; width:30px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: fdu-figure 10s ease-in-out infinite;
}
.scn-first-decline-unclear .shadow {
  position:absolute; bottom:10%; left:40%; width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: rotate(10deg);
  animation: fdu-shadow 12s ease-in-out infinite;
}
.scn-first-decline-unclear .door {
  position:absolute; top:20%; left:20%; width:50px; height:100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: fdu-door 0s none;
}
.scn-first-decline-unclear .light {
  position:absolute; top:10%; left:45%; width:10px; height:10px;
  background: radial-gradient(circle, #708090 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(112,128,144,0.3);
  animation: fdu-light 5s ease-in-out infinite alternate;
}
.scn-first-decline-unclear .mist {
  position:absolute; inset:0;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.1'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  opacity: 0.2;
  mix-blend-mode: screen;
  pointer-events: none;
  animation: fdu-mist 40s linear infinite;
}
@keyframes fdu-bg     { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes fdu-stairs { 0% { transform:translateY(0) } 50% { transform:translateY(-8px) } 100% { transform:translateY(2px) } }
@keyframes fdu-figure { 0%,100% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:0.6; } 50% { transform:translateX(-50%) scale(0.95) rotate(2deg); opacity:0.4; } }
@keyframes fdu-shadow { 0%,100% { transform:rotate(10deg) scale(1); opacity:0.5; } 50% { transform:rotate(12deg) scale(1.1); opacity:0.7; } }
@keyframes fdu-light  { 0% { box-shadow:0 0 20px 10px rgba(112,128,144,0.3); } 100% { box-shadow:0 0 30px 16px rgba(112,128,144,0.5); } }
@keyframes fdu-mist   { 0% { transform:translate(0,0) } 100% { transform:translate(-50px,20px) } }

/* Scene 4: timocracy-spartan */
.scn-timocracy-spartan {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a2a1a 60%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-timocracy-spartan .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.5) 100%);
  animation: tms-bg 25s ease-in-out infinite alternate;
}
.scn-timocracy-spartan .warrior-left {
  position:absolute; bottom:15%; left:20%; width:35px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tms-warrior 6s ease-in-out infinite;
}
.scn-timocracy-spartan .warrior-right {
  position:absolute; bottom:15%; right:20%; width:35px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tms-warrior 6s ease-in-out infinite reverse;
}
.scn-timocracy-spartan .shield {
  position:absolute; bottom:35%; left:50%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 50%;
  border: 4px solid #8a7a6a;
  box-shadow: 0 0 0 2px #5a4a3a, 0 4px 10px rgba(0,0,0,0.5);
  animation: tms-shield 0s none;
}
.scn-timocracy-spartan .spear {
  position:absolute; bottom:10%; left:30%; width:4px; height:90px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  animation: tms-spear 3s ease-in-out infinite;
}
.scn-timocracy-spartan .ground {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: tms-ground 10s ease-in-out infinite alternate;
}
.scn-timocracy-spartan .helmet {
  position:absolute; bottom:65%; left:50%; width:30px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 -4px 0 #3a2a1a;
  animation: tms-helmet 0s none;
}
.scn-timocracy-spartan .banner {
  position:absolute; top:5%; left:50%; width:6px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e1a1d 0%, #a0461a 100%);
  border-radius: 2px;
  animation: tms-banner 7s ease-in-out infinite;
}
@keyframes tms-bg     { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes tms-warrior{ 0%,100% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } }
@keyframes tms-spear  { 0%,100% { transform:rotate(8deg) translateY(0) } 50% { transform:rotate(6deg) translateY(-2px) } }
@keyframes tms-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(1px) } }
@keyframes tms-banner { 0%,100% { transform:translateX(-50%) scale(1) rotate(0deg) } 50% { transform:translateX(-50%) scale(1.05) rotate(2deg) } }

.scn-co-operation-of-minds { background: linear-gradient(135deg, #2b1d14 0%, #1c110a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 30%, #4a2c1a 0%, transparent 60%); }
.scn-co-operation-of-minds .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%); }
.scn-co-operation-of-minds .table { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #5a3d2a 0%, #3a2518 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-co-operation-of-minds .fig-left { position:absolute; bottom:25%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-op-fig-left 6s ease-in-out infinite; }
.scn-co-operation-of-minds .fig-right { position:absolute; bottom:25%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-op-fig-right 6s ease-in-out infinite; }
.scn-co-operation-of-minds .candle { position:absolute; bottom:35%; left:50%; width:8px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #e8d5b0 0%, #c49a6c 100%); border-radius: 4px 4px 2px 2px; }
.scn-co-operation-of-minds .flame { position:absolute; bottom:58%; left:50%; width:10px; height:14px; transform: translateX(-50%); background: radial-gradient(ellipse, #ffe080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,.3); animation: co-op-flame 2s ease-in-out infinite alternate; }
.scn-co-operation-of-minds .book { position:absolute; bottom:25%; left:42%; width:40px; height:8px; background: #6b4a30; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: co-op-book 8s ease-in-out infinite; }
@keyframes co-op-fig-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes co-op-fig-right { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes co-op-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) translateY(1px); opacity:.8; } }
@keyframes co-op-book { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }

.scn-prolonged-life-and-health { background: linear-gradient(180deg, #2a1a10 0%, #1c0e08 40%, #0a0502 100%), radial-gradient(ellipse at 50% 50%, #3a2010 0%, transparent 70%); }
.scn-prolonged-life-and-health .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10 0%, #140a05 100%); }
.scn-prolonged-life-and-health .bed { position:absolute; bottom:15%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #5a4030 0%, #3a2518 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,.4); }
.scn-prolonged-life-and-health .patient { position:absolute; bottom:20%; left:25%; width:50px; height:60px; background: linear-gradient(180deg, #1c1008 0%, #0a0502 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prohl-patient 7s ease-in-out infinite; }
.scn-prolonged-life-and-health .healer { position:absolute; bottom:20%; right:25%; width:40px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prohl-healer 5s ease-in-out infinite; }
.scn-prolonged-life-and-health .window { position:absolute; top:10%; left:50%; width:80px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1008 0%, #0d0704 100%); border: 4px solid #5a3d2a; border-radius: 10%; }
.scn-prolonged-life-and-health .lightbeam { position:absolute; top:10%; left:50%; width:40px; height:200px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(255,200,150,0.15) 0%, transparent 80%); animation: prohl-beam 12s ease-in-out infinite alternate; }
.scn-prolonged-life-and-health .plant { position:absolute; bottom:20%; right:10%; width:20px; height:40px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: prohl-plant 8s ease-in-out infinite; }
@keyframes prohl-patient { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes prohl-healer { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes prohl-beam { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes prohl-plant { 0%,100% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.1) rotate(3deg); } }

.scn-many-elements { background: linear-gradient(180deg, #2b1e14 0%, #1c1108 50%, #0d0804 100%), radial-gradient(ellipse at 40% 60%, #3a2518 0%, transparent 60%); }
.scn-many-elements .desk { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #5a3d2a 0%, #3a2518 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-many-elements .globe { position:absolute; bottom:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #8a7a5a, #5a4a3a); border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: manyel-globe 20s linear infinite; }
.scn-many-elements .bookstack { position:absolute; bottom:20%; left:15%; width:60px; height:20px; background: linear-gradient(180deg, #6b4a30 0%, #4a2a18 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: manyel-stack 10s ease-in-out infinite; }
.scn-many-elements .candle { position:absolute; bottom:25%; left:50%; width:6px; height:25px; transform: translateX(-50%); background: linear-gradient(180deg, #d4b896 0%, #b0885a 100%); border-radius: 3px; }
.scn-many-elements .flame { position:absolute; bottom:45%; left:50%; width:8px; height:12px; transform: translateX(-50%); background: radial-gradient(ellipse, #ffe080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 15px rgba(255,160,64,.3); animation: manyel-flame 2.5s ease-in-out infinite alternate; }
.scn-many-elements .chair { position:absolute; bottom:15%; left:70%; width:30px; height:40px; background: linear-gradient(180deg, #3a2518 0%, #1c1008 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; transform-origin: bottom; animation: manyel-chair 12s ease-in-out infinite; }
@keyframes manyel-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes manyel-stack { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes manyel-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.8) translateY(1px); opacity:.8; } }
@keyframes manyel-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }

.scn-community-of-wives-paradox { background: linear-gradient(180deg, #2b1d14 0%, #1c1108 40%, #0d0804 100%), radial-gradient(ellipse at 50% 60%, #3a2010 0%, transparent 60%); }
.scn-community-of-wives-paradox .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 30% 30% 0 0; }
.scn-community-of-wives-paradox .center-scroll { position:absolute; bottom:30%; left:50%; width:60px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #c4a882 0%, #a08060 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: comwp-scroll 15s ease-in-out infinite; }
.scn-community-of-wives-paradox .figure-1 { position:absolute; bottom:25%; left:10%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a0e 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: comwp-fig 6s ease-in-out infinite; }
.scn-community-of-wives-paradox .figure-2 { position:absolute; bottom:25%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a0e 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: comwp-fig 6s ease-in-out infinite 2s; }
.scn-community-of-wives-paradox .figure-3 { position:absolute; bottom:25%; right:30%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a0e 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: comwp-fig 6s ease-in-out infinite 4s; }
.scn-community-of-wives-paradox .figure-4 { position:absolute; bottom:25%; right:10%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a0e 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: comwp-fig 6s ease-in-out infinite 1s; }
@keyframes comwp-scroll { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes comwp-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } }

.scn-separation-of-training {
  background: linear-gradient(90deg, #1a1410 0%, #2a1f1a 50%, #1a1410 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-separation-of-training .bg-left {
  position: absolute; left:0; top:0; width:48%; height:100%;
  background: linear-gradient(135deg, #2a1f1a 0%, #1a1410 100%);
  animation: sep-bg-left 12s ease-in-out infinite alternate;
}
.scn-separation-of-training .bg-right {
  position: absolute; right:0; top:0; width:48%; height:100%;
  background: linear-gradient(225deg, #2a1f1a 0%, #1a1410 100%);
  animation: sep-bg-right 12s ease-in-out infinite alternate;
}
.scn-separation-of-training .path-left {
  position: absolute; left:20%; bottom:10%; width:4px; height:60%;
  background: linear-gradient(180deg, #b8860b 0%, #d4a040 50%, #b8860b 100%);
  border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom;
  animation: sep-path 20s ease-in-out infinite;
}
.scn-separation-of-training .path-right {
  position: absolute; right:20%; bottom:10%; width:4px; height:60%;
  background: linear-gradient(180deg, #b8860b 0%, #d4a040 50%, #b8860b 100%);
  border-radius: 2px; transform: rotate(15deg); transform-origin: bottom;
  animation: sep-path 20s ease-in-out infinite reverse;
}
.scn-separation-of-training .glow-center {
  position: absolute; left:50%; top:0; width:2px; height:100%;
  background: radial-gradient(ellipse at 50% 50%, #d4a040 0%, transparent 80%);
  transform: translateX(-50%); animation: sep-glow 8s ease-in-out infinite alternate;
}
.scn-separation-of-training .figure-left {
  position: absolute; left:25%; bottom:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3420 0%, #2a1f15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sep-figure 6s ease-in-out infinite;
}
.scn-separation-of-training .figure-right {
  position: absolute; right:25%; bottom:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3420 0%, #2a1f15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sep-figure 6s ease-in-out infinite reverse;
}
@keyframes sep-bg-left { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sep-bg-right { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sep-path { 0% { transform: rotate(-15deg) scaleY(1); opacity:0.5 } 50% { transform: rotate(-15deg) scaleY(1.1); opacity:1 } 100% { transform: rotate(-15deg) scaleY(1); opacity:0.5 } }
@keyframes sep-glow { 0% { opacity:0.3; transform: translateX(-50%) scaleY(0.8) } 50% { opacity:1; transform: translateX(-50%) scaleY(1) } 100% { opacity:0.3; transform: translateX(-50%) scaleY(0.8) } }
@keyframes sep-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-both-for-mind {
  background: linear-gradient(180deg, #1c1410 0%, #2a1f1a 50%, #1c1410 100%), radial-gradient(ellipse at 50% 40%, #4a3420 0%, transparent 70%);
}
.scn-both-for-mind .bg-deep {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #1c1410 0%, #2a1f1a 100%);
  animation: bfm-bg 18s ease-in-out infinite alternate;
}
.scn-both-for-mind .stream-left {
  position: absolute; left:10%; top:20%; width:30%; height:4px;
  background: linear-gradient(90deg, #d4a040 0%, #b8860b 100%);
  border-radius: 2px; animation: bfm-stream 15s ease-in-out infinite; transform-origin: left;
}
.scn-both-for-mind .stream-right {
  position: absolute; right:10%; top:20%; width:30%; height:4px;
  background: linear-gradient(270deg, #d4a040 0%, #b8860b 100%);
  border-radius: 2px; animation: bfm-stream 15s ease-in-out infinite reverse; transform-origin: right;
}
.scn-both-for-mind .mind-core {
  position: absolute; left:50%; top:40%; width:120px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #4a3420 0%, #2a1f15 70%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 40px 10px rgba(180,130,60,0.3);
  animation: bfm-core 20s ease-in-out infinite;
}
.scn-both-for-mind .ripple1 {
  position: absolute; left:50%; top:40%; width:140px; height:120px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(180,130,60,0.2); border-radius: 50%;
  animation: bfm-ripple 12s ease-in-out infinite;
}
.scn-both-for-mind .ripple2 {
  position: absolute; left:50%; top:40%; width:160px; height:140px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(180,130,60,0.15); border-radius: 50%;
  animation: bfm-ripple 16s ease-in-out infinite reverse;
}
.scn-both-for-mind .sparkle {
  position: absolute; left:50%; top:30%; width:6px; height:6px;
  background: #ffd700; border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd700;
  animation: bfm-spark 4s ease-in-out infinite;
}
@keyframes bfm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bfm-stream { 0% { transform: scaleX(0); opacity:0.2 } 50% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0); opacity:0.2 } }
@keyframes bfm-core { 0% { transform: translate(-50%, -50%) scale(0.95); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40% } 50% { transform: translate(-50%, -50%) scale(1.05); border-radius: 45% 55% 35% 45% / 55% 65% 45% 35% } 100% { transform: translate(-50%, -50%) scale(0.95); } }
@keyframes bfm-ripple { 0% { transform: translate(-50%, -50%) scale(0.8); opacity:0.5 } 50% { transform: translate(-50%, -50%) scale(1.2); opacity:0 } 100% { transform: translate(-50%, -50%) scale(0.8); opacity:0.5 } }
@keyframes bfm-spark { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0.5) } }

.scn-spartan-mistake {
  background: linear-gradient(180deg, #0f0b08 0%, #1a1410 50%, #0f0b08 100%), radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, transparent 70%);
}
.scn-spartan-mistake .bg-dark {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #0f0b08 0%, #1a1410 100%);
}
.scn-spartan-mistake .pillar {
  position: absolute; bottom:5%; left:50%; width:30px; height:70%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  transform: translateX(-50%) rotate(0.5deg); transform-origin: bottom;
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: spm-pillar 25s ease-in-out infinite;
}
.scn-spartan-mistake .base {
  position: absolute; bottom:5%; left:50%; width:60px; height:8px;
  background: linear-gradient(90deg, #2a1f15 0%, #3a2a1a 100%);
  transform: translateX(-50%); border-radius: 2px;
}
.scn-spartan-mistake .figure-crouch {
  position: absolute; bottom:15%; left:40%; width:30px; height:30px;
  background: #0f0b08;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(-10deg);
  animation: spm-crouch 8s ease-in-out infinite;
}
.scn-spartan-mistake .shadow {
  position: absolute; bottom:10%; left:35%; width:50px; height:4px;
  background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(2px);
  animation: spm-shadow 8s ease-in-out infinite;
}
.scn-spartan-mistake .crack {
  position: absolute; top:30%; left:50%; width:2px; height:20px;
  background: #2a1f15; transform: translateX(-50%) rotate(15deg);
  animation: spm-crack 30s ease-in-out infinite;
}
.scn-spartan-mistake .dust {
  position: absolute; top:20%; left:60%; width:4px; height:4px;
  background: rgba(180,130,60,0.3); border-radius: 50%; filter: blur(2px);
  animation: spm-dust 12s linear infinite;
}
@keyframes spm-pillar { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(0.8deg) } 50% { transform: translateX(-50%) rotate(-0.3deg) } 75% { transform: translateX(-50%) rotate(0.6deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes spm-crouch { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-10deg) translateY(-3px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes spm-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(1.2); opacity:0.8 } 100% { transform: scaleX(1); opacity:0.6 } }
@keyframes spm-crack { 0% { opacity:0.2 } 50% { opacity:0.8 } 100% { opacity:0.2 } }
@keyframes spm-dust { 0% { transform: translate(0, 0); opacity:0.5 } 100% { transform: translate(-30px, -30px); opacity:0 } }

.scn-slow-progress-of-medicine {
  background: linear-gradient(180deg, #1c1410 0%, #2a1f1a 50%, #1c1410 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-slow-progress-of-medicine .bg-amber {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #1c1410 0%, #2a1f1a 100%);
}
.scn-slow-progress-of-medicine .stem {
  position: absolute; bottom:10%; left:30%; width:4px; height:70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%);
  border-radius: 2px; transform-origin: bottom;
  animation: spr-stem 30s ease-in-out infinite;
}
.scn-slow-progress-of-medicine .leaf1 {
  position: absolute; bottom:50%; left:30%; width:24px; height:12px;
  background: radial-gradient(ellipse at 0% 50%, #b8860b 0%, #4a3a2a 100%);
  border-radius: 0 100% 0 100%; transform: rotate(-30deg);
  animation: spr-leaf1 20s ease-in-out infinite;
}
.scn-slow-progress-of-medicine .leaf2 {
  position: absolute; bottom:30%; left:30%; width:20px; height:10px;
  background: radial-gradient(ellipse at 0% 50%, #b8860b 0%, #4a3a2a 100%);
  border-radius: 0 100% 0 100%; transform: rotate(20deg);
  animation: spr-leaf2 25s ease-in-out infinite;
}
.scn-slow-progress-of-medicine .bud {
  position: absolute; bottom:80%; left:30%; width:10px; height:14px;
  background: radial-gradient(ellipse at 50% 60%, #d4a040 0%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-3px);
  animation: spr-bud 15s ease-in-out infinite;
}
.scn-slow-progress-of-medicine .glow-step {
  position: absolute; bottom:5%; left:30%; width:2px; height:2px;
  background: #ffd700; border-radius: 50%;
  box-shadow: 0 0 8px 4px #ffd700;
  animation: spr-glow 4s ease-in-out infinite;
}
.scn-slow-progress-of-medicine .timer-line {
  position: absolute; bottom:5%; left:20%; width:60%; height:1px;
  background: repeating-linear-gradient(90deg, #b8860b 0px, #b8860b 4px, transparent 4px, transparent 8px);
  animation: spr-timer 10s linear infinite;
}
@keyframes spr-stem { 0% { transform: scaleY(0.8); opacity:0.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.8); opacity:0.7 } }
@keyframes spr-leaf1 { 0% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-20deg) scale(1.2) } 100% { transform: rotate(-30deg) scale(1) } }
@keyframes spr-leaf2 { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(30deg) scale(1.1) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes spr-bud { 0% { transform: translateX(-3px) scale(0.9) } 50% { transform: translateX(-3px) scale(1.1) } 100% { transform: translateX(-3px) scale(0.9) } }
@keyframes spr-glow { 0% { opacity:0.3; box-shadow: 0 0 4px 2px #ffd700 } 50% { opacity:1; box-shadow: 0 0 12px 6px #ffd700 } 100% { opacity:0.3; } }
@keyframes spr-timer { 0% { background-position: 0 0 } 100% { background-position: -60px 0 } }

/* thrasymachus-consents */
.scn-thrasymachus-consents {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 80%, #0e0602 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-thrasymachus-consents .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
}
.scn-thrasymachus-consents .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a120a 0%, #2a1a0e 100%);
}
.scn-thrasymachus-consents .table {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 10%;
  background: #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 2px 5px rgba(0,0,0,.5);
  animation: tbl-tc 6s ease-in-out infinite;
}
.scn-thrasymachus-consents .lamp {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09050 0%, #a06030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 15px #d09050, 0 0 80px 30px rgba(208,144,80,.3);
  animation: lamp-tc 3s ease-in-out infinite alternate;
}
.scn-thrasymachus-consents .shadow-left {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,.5) 100%);
  transform: skewX(-20deg);
  animation: shad-tc 8s ease-in-out infinite;
}
.scn-thrasymachus-consents .shadow-right {
  position: absolute; bottom: 10%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(225deg, transparent 0%, rgba(0,0,0,.5) 100%);
  transform: skewX(20deg);
  animation: shad-tc 8s ease-in-out infinite reverse;
}
.scn-thrasymachus-consents .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figl-tc 4s ease-in-out infinite;
}
.scn-thrasymachus-consents .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figr-tc 4s ease-in-out infinite;
}
.scn-thrasymachus-consents .hand {
  position: absolute; bottom: 25%; left: 45%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hand-tc 2s ease-in-out infinite;
}
@keyframes tbl-tc {
  0% { transform: translateY(0); box-shadow: inset 0 2px 5px rgba(0,0,0,.5); }
  50% { transform: translateY(-2px); box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
  100% { transform: translateY(0); box-shadow: inset 0 2px 5px rgba(0,0,0,.5); }
}
@keyframes lamp-tc {
  0% { box-shadow: 0 0 30px 10px #d09050, 0 0 60px 20px rgba(208,144,80,.2); opacity: .9; }
  50% { box-shadow: 0 0 50px 20px #e0a050, 0 0 100px 30px rgba(224,160,80,.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #d09050, 0 0 70px 25px rgba(208,144,80,.3); opacity: .95; }
}
@keyframes shad-tc {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .3; }
}
@keyframes figl-tc {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes figr-tc {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes hand-tc {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* state-may-be-unjust */
.scn-state-may-be-unjust {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 70%, #0e0602 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-state-may-be-unjust .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
  opacity: .6;
}
.scn-state-may-be-unjust .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a120a 0%, #2a1a0e 100%);
}
.scn-state-may-be-unjust .table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 8%;
  background: #4a3a2a; border-radius: 6px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.4);
  animation: table-su 10s ease-in-out infinite;
}
.scn-state-may-be-unjust .lamp {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09050 0%, #a06030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 12px #d09050, 0 0 60px 25px rgba(208,144,80,.2);
  animation: lamp-su 5s ease-in-out infinite alternate;
}
.scn-state-may-be-unjust .figure-left {
  position: absolute; bottom: 10%; left: 22%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figl-su 6s ease-in-out infinite;
}
.scn-state-may-be-unjust .figure-right {
  position: absolute; bottom: 10%; right: 22%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figr-su 6s ease-in-out infinite reverse;
}
.scn-state-may-be-unjust .scroll {
  position: absolute; bottom: 16%; left: 45%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #c8a87a 0%, #a08860 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
  animation: scroll-su 12s ease-in-out infinite;
}
.scn-state-may-be-unjust .cup {
  position: absolute; bottom: 14%; left: 55%; width: 14px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: cup-su 8s ease-in-out infinite;
}
@keyframes table-su {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); box-shadow: 0 3px 6px rgba(0,0,0,.5); }
  100% { transform: translateY(0); }
}
@keyframes lamp-su {
  0% { box-shadow: 0 0 25px 8px #d09050, 0 0 50px 18px rgba(208,144,80,.15); opacity: .95; }
  50% { box-shadow: 0 0 35px 12px #e0a050, 0 0 70px 25px rgba(224,160,80,.3); opacity: 1; }
  100% { box-shadow: 0 0 28px 10px #d09050, 0 0 55px 20px rgba(208,144,80,.2); opacity: .97; }
}
@keyframes figl-su {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes figr-su {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes scroll-su {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(1.05); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes cup-su {
  0% { transform: rotate(0); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0); }
}

/* with-or-without-justice */
.scn-with-or-without-justice {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 60%, #0e0602 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 50%);
}
.scn-with-or-without-justice .surface {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.7);
}
.scn-with-or-without-justice .scroll {
  position: absolute; top: 30%; left: 30%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08860 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: scroll-wj 8s ease-in-out infinite;
}
.scn-with-or-without-justice .lamp {
  position: absolute; top: 15%; left: 50%; width: 22px; height: 32px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09050 0%, #a06030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 20px #d09050, 0 0 80px 40px rgba(208,144,80,.2);
  animation: lamp-wj 4s ease-in-out infinite alternate;
}
.scn-with-or-without-justice .hand-left {
  position: absolute; top: 55%; left: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom right;
  animation: handl-wj 5s ease-in-out infinite;
}
.scn-with-or-without-justice .hand-right {
  position: absolute; top: 55%; right: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom left;
  animation: handr-wj 5s ease-in-out infinite reverse;
}
.scn-with-or-without-justice .inkpot {
  position: absolute; top: 65%; left: 55%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ink-wj 10s ease-in-out infinite;
}
.scn-with-or-without-justice .quill {
  position: absolute; top: 55%; left: 58%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #a08860 0%, #705040 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: quill-wj 6s ease-in-out infinite;
}
@keyframes scroll-wj {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.03); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes lamp-wj {
  0% { box-shadow: 0 0 30px 12px #d09050, 0 0 60px 25px rgba(208,144,80,.15); opacity: .95; }
  50% { box-shadow: 0 0 50px 20px #e0a050, 0 0 100px 35px rgba(224,160,80,.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 15px #d09050, 0 0 70px 30px rgba(208,144,80,.2); opacity: .97; }
}
@keyframes handl-wj {
  0% { transform: translate(0, 0) rotate(10deg); }
  50% { transform: translate(5px, -5px) rotate(15deg); }
  100% { transform: translate(0, 0) rotate(10deg); }
}
@keyframes handr-wj {
  0% { transform: translate(0, 0) rotate(-10deg); }
  50% { transform: translate(-5px, -5px) rotate(-15deg); }
  100% { transform: translate(0, 0) rotate(-10deg); }
}
@keyframes ink-wj {
  0% { transform: rotate(0); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(0); }
}
@keyframes quill-wj {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}

/* harmony-needed */
.scn-harmony-needed {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 70%, #0e0602 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 55%);
}
.scn-harmony-needed .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e06 100%);
  opacity: .7;
}
.scn-harmony-needed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a120a 0%, #2a1a0e 100%);
}
.scn-harmony-needed .pillar {
  position: absolute; top: 0; bottom: 10%; left: 48%; width: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
  animation: pillar-hn 15s ease-in-out infinite;
}
.scn-harmony-needed .chair-left {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: chl-hn 7s ease-in-out infinite;
}
.scn-harmony-needed .chair-right {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: chr-hn 7s ease-in-out infinite reverse;
}
.scn-harmony-needed .figure-left {
  position: absolute; bottom: 14%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figl-hn 5s ease-in-out infinite;
}
.scn-harmony-needed .figure-right {
  position: absolute; bottom: 14%; right: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figr-hn 5s ease-in-out infinite reverse;
}
.scn-harmony-needed .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09050 0%, #a06030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 35px 15px #d09050, 0 0 70px 30px rgba(208,144,80,.2);
  animation: lamp-hn 6s ease-in-out infinite alternate;
}
@keyframes pillar-hn {
  0% { transform: scaleY(1); opacity: .9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: .9; }
}
@keyframes chl-hn {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes chr-hn {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes figl-hn {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(1px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes figr-hn {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-1px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes lamp-hn {
  0% { box-shadow: 0 0 25px 8px #d09050, 0 0 50px 18px rgba(208,144,80,.15); opacity: .95; }
  50% { box-shadow: 0 0 40px 15px #e0a050, 0 0 80px 30px rgba(224,160,80,.3); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px #d09050, 0 0 60px 22px rgba(208,144,80,.2); opacity: .97; }
}

.scn-philosopher-fails-in-routine { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%); }
.scn-philosopher-fails-in-routine .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-bottom: 1px solid #4a4a5a; }
.scn-philosopher-fails-in-routine .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); }
.scn-philosopher-fails-in-routine .desk { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ph-desk 10s ease-in-out infinite alternate; }
.scn-philosopher-fails-in-routine .book-a { position:absolute; bottom:28%; left:25%; width:12%; height:8%; background: #8a6a4a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ph-book 15s ease-in-out infinite; }
.scn-philosopher-fails-in-routine .book-b { position:absolute; bottom:30%; left:40%; width:10%; height:6%; background: #7a5a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ph-book 15s ease-in-out infinite reverse; animation-delay: 2s; }
.scn-philosopher-fails-in-routine .lamp { position:absolute; bottom:35%; left:55%; width:6%; height:20%; background: linear-gradient(180deg, #b0a090 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 5px rgba(240,200,150,0.3); animation: ph-lamp 6s ease-in-out infinite alternate; }
.scn-philosopher-fails-in-routine .figure { position:absolute; bottom:20%; left:50%; width:12%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ph-figure 8s ease-in-out infinite; }
.scn-philosopher-fails-in-routine .shadow { position:absolute; bottom:20%; left:45%; width:20%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ph-shadow 8s ease-in-out infinite; }
@keyframes ph-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ph-book { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 70% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ph-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 3px rgba(240,200,150,0.2); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(240,200,150,0.4); } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px rgba(240,200,150,0.3); } }
@keyframes ph-figure { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-2px); } 60% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ph-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-old-order-vs-new { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 70% 50%, #3a3a4a 0%, transparent 70%); }
.scn-old-order-vs-new .wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%); }
.scn-old-order-vs-new .window { position:absolute; top:15%; right:10%; width:30%; height:50%; background: rgba(200,220,255,0.2); border: 2px solid #3a3a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,220,255,0.3); animation: ol-window 12s ease-in-out infinite alternate; }
.scn-old-order-vs-new .window-glow { position:absolute; top:15%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,0.15) 0%, transparent 70%); animation: ol-glow 12s ease-in-out infinite alternate; }
.scn-old-order-vs-new .figure-old { position:absolute; bottom:20%; left:20%; width:15%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ol-figure 10s ease-in-out infinite; }
.scn-old-order-vs-new .shadow-old { position:absolute; bottom:20%; left:15%; width:25%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ol-shadow 10s ease-in-out infinite; }
.scn-old-order-vs-new .circle-party { position:absolute; bottom:30%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #2a2a3a 0%, transparent 100%); border: 1px solid #4a4a5a; border-radius: 50%; animation: ol-circle 20s linear infinite; }
.scn-old-order-vs-new .light-beam { position:absolute; top:15%; right:10%; width:30%; height:50%; background: linear-gradient(90deg, transparent, rgba(200,220,255,0.1) 50%, transparent); animation: ol-beam 8s ease-in-out infinite alternate; }
@keyframes ol-window { 0% { background: rgba(200,220,255,0.15); } 50% { background: rgba(200,220,255,0.25); } 100% { background: rgba(200,220,255,0.15); } }
@keyframes ol-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ol-figure { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-3deg) translateX(-5px); } 60% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ol-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes ol-circle { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(180deg) translateX(20px); } 100% { transform: rotate(360deg) translateX(0); } }
@keyframes ol-beam { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.5); } 100% { opacity: 0.2; transform: scaleX(1); } }

.scn-fixed-ideas-as-madness { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #2a1a3a 100%), radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%); }
.scn-fixed-ideas-as-madness .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, #0a0a1a 100%); }
.scn-fixed-ideas-as-madness .desk { position:absolute; bottom:25%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-fixed-ideas-as-madness .papers { position:absolute; bottom:30%; background: #4a3a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-fixed-ideas-as-madness .paper1 { left:15%; width:15%; height:10%; transform: rotate(-10deg); animation: fx-paper1 12s ease-in-out infinite; }
.scn-fixed-ideas-as-madness .paper2 { left:35%; width:12%; height:8%; transform: rotate(15deg); animation: fx-paper2 14s ease-in-out infinite reverse; }
.scn-fixed-ideas-as-madness .figure-mad { position:absolute; bottom:25%; left:45%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fx-figure 6s ease-in-out infinite; }
.scn-fixed-ideas-as-madness .head { position:absolute; bottom:52%; left:47%; width:8%; height:10%; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: fx-head 4s ease-in-out infinite alternate; }
.scn-fixed-ideas-as-madness .thought { position:absolute; top:10%; right:10%; width:20%; height:20%; background: radial-gradient(circle, rgba(100,100,180,0.3) 0%, transparent 100%); animation: fx-thought 8s ease-in-out infinite; }
@keyframes fx-paper1 { 0% { transform: rotate(-10deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(-3px); } 70% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fx-paper2 { 0% { transform: rotate(15deg) translateY(0); } 30% { transform: rotate(20deg) translateY(-2px); } 70% { transform: rotate(10deg) translateY(1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes fx-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fx-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fx-thought { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-fallacy-of-analogy { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0e0e0e 100%), radial-gradient(ellipse at 50% 50%, #3a3a3a 0%, transparent 70%); }
.scn-fallacy-of-analogy .bg-floor { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, #1a1a1a 100%); }
.scn-fallacy-of-analogy .circle-outer { position:absolute; top:10%; left:10%; width:80%; height:80%; border: 1px solid #5a5a5a; border-radius: 50%; animation: fa-rotate-outer 60s linear infinite; }
.scn-fallacy-of-analogy .circle-inner { position:absolute; top:25%; left:25%; width:50%; height:50%; border: 1px dashed #4a4a4a; border-radius: 50%; animation: fa-rotate-inner 45s linear infinite reverse; }
.scn-fallacy-of-analogy .figure-individual { position:absolute; width:8%; height:10%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; }
.scn-fallacy-of-analogy .figure-individual.a { top:15%; left:46%; animation: fa-float-a 10s ease-in-out infinite; }
.scn-fallacy-of-analogy .figure-individual.b { top:50%; left:80%; animation: fa-float-b 12s ease-in-out infinite; }
.scn-fallacy-of-analogy .figure-individual.c { top:70%; left:30%; animation: fa-float-c 14s ease-in-out infinite; }
.scn-fallacy-of-analogy .central-analogy { position:absolute; top:40%; left:40%; width:20%; height:20%; border-radius: 50%; background: radial-gradient(circle, #6a6a7a 0%, #3a3a4a 100%); box-shadow: 0 0 20px 5px rgba(100,100,120,0.3); animation: fa-central 8s ease-in-out infinite alternate; }
.scn-fallacy-of-analogy .line-line { position:absolute; top:45%; left:45%; width:10%; height:10%; background: linear-gradient(90deg, transparent, #6a6a7a 50%, transparent); border-radius: 50%; }
@keyframes fa-rotate-outer { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fa-rotate-inner { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }
@keyframes fa-float-a { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }
@keyframes fa-float-b { 0% { transform: translateY(0); } 50% { transform: translateY(-8px); } 100% { transform: translateY(0); } }
@keyframes fa-float-c { 0% { transform: translateY(0); } 50% { transform: translateY(-12px); } 100% { transform: translateY(0); } }
@keyframes fa-central { 0% { transform: scale(1); box-shadow: 0 0 15px 3px rgba(100,100,120,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 30px 8px rgba(100,100,120,0.4); } 100% { transform: scale(1); box-shadow: 0 0 15px 3px rgba(100,100,120,0.2); } }

.scn-correction { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%), radial-gradient(ellipse at 30% 50%, #3a2a24 0%, transparent 70%); }
.scn-correction .wall { position:absolute; inset:0 40% 0 0; background: linear-gradient(90deg, #3a2a22 0%, #1a1210 100%); }
.scn-correction .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); }
.scn-correction .desk { position:absolute; bottom:20%; left:10%; width:60%; height:8%; background: linear-gradient(180deg, #4a382e 0%, #2a1e16 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-correction .paper { position:absolute; bottom:24%; left:18%; width:20%; height:12%; background: #d4c8b0; border-radius: 2px; opacity: 0.9; animation: cr-paper 5s ease-in-out infinite; }
.scn-correction .figure { position:absolute; bottom:16%; left:22%; width:12%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure 6s ease-in-out infinite; }
.scn-correction .lamp { position:absolute; bottom:30%; left:40%; width:8%; height:12%; background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #c89050; }
.scn-correction .glow { position:absolute; bottom:30%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(200,144,80,0.3) 0%, transparent 70%); animation: cr-glow 3s ease-in-out infinite alternate; }
.scn-correction .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-left: 2px solid #2a1e16; animation: cr-curtain 8s ease-in-out infinite alternate; }

@keyframes cr-paper { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cr-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cr-glow { 0% { opacity: 0.5; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes cr-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }

.scn-definition-of-friend { background: linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 80%); }
.scn-definition-of-friend .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-definition-of-friend .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); }
.scn-definition-of-friend .table { position:absolute; bottom:18%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-definition-of-friend .lantern { position:absolute; bottom:28%; left:48%; width:6%; height:10%; background: radial-gradient(circle, #d4a050 0%, #8a6030 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(212,160,80,0.4); animation: df-lantern 4s ease-in-out infinite alternate; }
.scn-definition-of-friend .figure-a { position:absolute; bottom:14%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #2a1e1a 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df-fig 7s ease-in-out infinite; }
.scn-definition-of-friend .figure-b { position:absolute; bottom:14%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #2a1e1a 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df-fig 7s ease-in-out infinite reverse; }
.scn-definition-of-friend .shadow { position:absolute; bottom:0; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: df-shadow 6s ease-in-out infinite alternate; }

@keyframes df-lantern { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes df-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes df-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-injure-anyone\? { background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%), radial-gradient(ellipse at 60% 40%, #2a2a2e 0%, transparent 80%); }
.scn-injure-anyone\? .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); }
.scn-injure-anyone\? .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); }
.scn-injure-anyone\? .broken-vase { position:absolute; bottom:20%; left:60%; width:10%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(0 0, 100% 0, 80% 80%, 0 100%); opacity: 0.8; animation: ia-vase 4s ease-in-out infinite alternate; }
.scn-injure-anyone\? .shard-1 { position:absolute; bottom:18%; left:70%; width:4%; height:4%; background: #4a3a2a; border-radius: 2px; transform: rotate(30deg); animation: ia-shard 5s ease-in-out infinite; }
.scn-injure-anyone\? .shard-2 { position:absolute; bottom:15%; left:65%; width:3%; height:3%; background: #4a3a2a; border-radius: 2px; transform: rotate(-20deg); animation: ia-shard 5s ease-in-out infinite 0.5s; }
.scn-injure-anyone\? .figure { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ia-fig 6s ease-in-out infinite; }
.scn-injure-anyone\? .shadow { position:absolute; bottom:0; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ia-shadow 5s ease-in-out infinite alternate; }

@keyframes ia-vase { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ia-shard { 0% { transform: translateY(0) rotate(30deg); } 50% { transform: translateY(-5px) rotate(45deg); } 100% { transform: translateY(0) rotate(30deg); } }
@keyframes ia-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ia-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-injury-deteriorates { background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%), radial-gradient(ellipse at 40% 60%, #2a2a2e 0%, transparent 80%); }
.scn-injury-deteriorates .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); }
.scn-injury-deteriorates .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); }
.scn-injury-deteriorates .pedestal { position:absolute; bottom:22%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-injury-deteriorates .statue { position:absolute; bottom:30%; left:45%; width:8%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: id-statue 8s ease-in-out infinite alternate; }
.scn-injury-deteriorates .figure { position:absolute; bottom:15%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: id-fig 7s ease-in-out infinite; }
.scn-injury-deteriorates .dust { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 30%, rgba(200,180,160,0.15) 0%, transparent 60%); animation: id-dust 10s linear infinite; }
.scn-injury-deteriorates .shadow { position:absolute; bottom:0; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: id-shadow 6s ease-in-out infinite alternate; }

@keyframes id-statue { 0% { transform: scale(1) rotate(0); opacity: 0.9; } 50% { transform: scale(0.98) rotate(1deg); opacity: 0.85; } 100% { transform: scale(1) rotate(0); opacity: 0.9; } }
@keyframes id-fig { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes id-dust { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.02); opacity: 0.3; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }
@keyframes id-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* Scene: statuary-of-governors (bright interior, warm) */
.scn-statuary-of-governors {
  background:
    linear-gradient(180deg, #f5d6a0 0%, #d4a56a 50%, #b08040 100%),
    radial-gradient(ellipse at 50% 100%, #e8c080 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-statuary-of-governors .sg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4a86a 0%, #b08848 100%);
  border-radius: 0 0 20% 20%;
  animation: sg-wall 20s ease-in-out infinite alternate;
}
.scn-statuary-of-governors .sg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a07850 0%, #7a5830 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sg-floor 15s ease-in-out infinite alternate;
}
.scn-statuary-of-governors .sg-pedestal-left {
  position: absolute; bottom: 30%; left: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c0a070 0%, #9a7a50 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sg-pedestal 8s ease-in-out infinite alternate;
}
.scn-statuary-of-governors .sg-pedestal-right {
  position: absolute; bottom: 30%; right: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c0a070 0%, #9a7a50 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sg-pedestal 8s ease-in-out infinite alternate-reverse;
}
.scn-statuary-of-governors .sg-statue-left {
  position: absolute; bottom: 43%; left: 18%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-statue 6s ease-in-out infinite alternate;
}
.scn-statuary-of-governors .sg-statue-right {
  position: absolute; bottom: 43%; right: 18%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-statue 6s ease-in-out infinite alternate-reverse;
}
.scn-statuary-of-governors .sg-light-beam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 60%);
  transform-origin: top left;
  animation: sg-beam 12s ease-in-out infinite alternate;
}
.scn-statuary-of-governors .sg-glow {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.4) 0%, transparent 70%);
  animation: sg-glow 4s ease-in-out infinite alternate;
}

@keyframes sg-wall {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(0.98); }
}
@keyframes sg-floor {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes sg-pedestal {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes sg-statue {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.5deg); }
}
@keyframes sg-beam {
  0% { transform: rotate(-3deg) translateX(0); opacity: 0.7; }
  50% { transform: rotate(0deg) translateX(5px); opacity: 1; }
  100% { transform: rotate(3deg) translateX(-2px); opacity: 0.8; }
}
@keyframes sg-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

/* Scene: commencement-of-book-7 (dim interior, calm) */
.scn-commencement-of-book-7 {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-commencement-of-book-7 .cb-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  animation: cb-wall 18s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: cb-ground 14s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-firepit {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ff6600 0%, #cc4400 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff6600, 0 0 80px 30px rgba(255,102,0,0.3);
  animation: cb-fire 3s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-shadowfigure {
  position: absolute; bottom: 35%; left: 15%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cb-shadow 8s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-scroll {
  position: absolute; bottom: 27%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a070 0%, #a07850 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cb-scroll 10s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-lamp {
  position: absolute; bottom: 50%; left: 72%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffdd80 0%, #ccaa40 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px #ffdd80, 0 0 40px 16px rgba(255,221,128,0.4);
  animation: cb-lamp 5s ease-in-out infinite alternate;
}
.scn-commencement-of-book-7 .cb-smoke {
  position: absolute; top: 18%; left: 46%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: cb-smoke 20s linear infinite;
}

@keyframes cb-wall {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes cb-ground {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes cb-fire {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
}
@keyframes cb-shadow {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes cb-scroll {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(1px) rotate(-2deg); }
}
@keyframes cb-lamp {
  0% { box-shadow: 0 0 15px 6px #ffdd80, 0 0 30px 12px rgba(255,221,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 12px #ffdd80, 0 0 60px 24px rgba(255,221,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 8px #ffdd80, 0 0 40px 16px rgba(255,221,128,0.4); opacity: 0.9; }
}
@keyframes cb-smoke {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(10px) translateY(-15px) scale(1.5); opacity: 0.3; }
  100% { transform: translateX(-10px) translateY(-30px) scale(2); opacity: 0; }
}

/* Scene: two-great-aims (dim interior, calm) */
.scn-two-great-aims {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 50%, #050a10 100%),
    radial-gradient(ellipse at 70% 30%, #2a3a4a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-two-great-aims .ta-bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #123a5a 100%);
  border-radius: 0 0 30% 30%;
  animation: ta-bg 25s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-desk {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ta-desk 12s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-figure {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 7s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-sphere {
  position: absolute; top: 30%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #8a9abe 0%, #5a6a8e 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(138,154,190,0.3);
  animation: ta-sphere 9s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-cube {
  position: absolute; top: 40%; right: 25%; width: 40px; height: 40px;
  background: linear-gradient(135deg, #9a7a6a 0%, #6a4a3a 100%);
  border-radius: 8% 8% 8% 8%;
  box-shadow: 0 0 20px 4px rgba(154,122,106,0.3);
  animation: ta-cube 10s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-thread-left {
  position: absolute; top: 38%; left: 34%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #9a7a6a 0%, #5a4a3a 100%);
  transform-origin: top center;
  animation: ta-thread 6s ease-in-out infinite alternate;
}
.scn-two-great-aims .ta-thread-right {
  position: absolute; top: 45%; right: 32%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #9a7a6a 0%, #5a4a3a 100%);
  transform-origin: top center;
  animation: ta-thread 6s ease-in-out infinite alternate-reverse;
}

@keyframes ta-bg {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes ta-desk {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes ta-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes ta-sphere {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-5px) rotate(10deg) scale(1.05); }
  100% { transform: translateY(3px) rotate(-5deg) scale(0.95); }
}
@keyframes ta-cube {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-4px) rotate(15deg) scale(1.1); }
  100% { transform: translateY(2px) rotate(-8deg) scale(0.9); }
}
@keyframes ta-thread {
  0% { transform: rotate(-5deg) scaleY(1); opacity: 0.7; }
  50% { transform: rotate(5deg) scaleY(1.1); opacity: 1; }
  100% { transform: rotate(-2deg) scaleY(0.9); opacity: 0.8; }
}

/* Scene: modern-mathematician-perspective (dim interior, calm) */
.scn-modern-mathematician-perspective {
  background:
    linear-gradient(180deg, #0a1520 0%, #0d1a2a 50%, #0a0f15 100%),
    radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-modern-mathematician-perspective .mm-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0d1a2a 0%, #1a2a3a 100%);
  border-radius: 0 0 20% 20%;
  animation: mm-bg 30s ease-in-out infinite alternate;
}
.scn-modern-mathematician-perspective .mm-surface {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a1520 0%, #050a10 100%);
  box-shadow: inset 0 4px 15px rgba(255,255,255,0.05);
  animation: mm-surface 20s ease-in-out infinite alternate;
}
.scn-modern-mathematician-perspective .mm-triangle {
  position: absolute; top: 30%; left: 20%; width: 0; height: 0;
  border-left: 25px solid transparent; border-right: 25px solid transparent; border-bottom: 40px solid #4a6a8a;
  filter: drop-shadow(0 0 8px rgba(74,106,138,0.4));
  animation: mm-triangle 8s ease-in-out infinite alternate;
}
.scn-modern-mathematician-perspective .mm-circle {
  position: absolute; top: 40%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle at 35% 35%, #5a7a9a 0%, #3a5a7a 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 4px rgba(90,122,154,0.3);
  animation: mm-circle 7s ease-in-out infinite alternate;
}
.scn-modern-mathematician-perspective .mm-square {
  position: absolute; top: 50%; left: 70%; width: 40px; height: 40px;
  background: linear-gradient(135deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 8% 8% 8% 8%;
  box-shadow: 0 0 12px 3px rgba(90,106,122,0.3);
  animation: mm-square 9s ease-in-out infinite alternate;
}
.scn-modern-mathematician-perspective .mm-spiral {
  position: absolute; top: 18%; left: 60%; width: 50px; height: 50px;
  background: conic-gradient(from 0deg, #3a5a7a, #5a7a9a, #3a5a7a);
  border-radius: 50%;
  filter: blur(2px);
  animation: mm-spiral 14s linear infinite;
}
.scn-modern-mathematician-perspective .mm-dots {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background-image:
    radial-gradient(circle, #5a7a9a 1px, transparent 1px);
  background-size: 20px 20px;
  opacity: 0.3;
  animation: mm-dots 12s ease-in-out infinite alternate;
}

@keyframes mm-bg {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes mm-surface {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.8; transform: translateY(1px); }
}
@keyframes mm-triangle {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-3px) rotate(8deg) scale(1.05); }
  100% { transform: translateY(2px) rotate(-5deg) scale(0.95); }
}
@keyframes mm-circle {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(4px) scale(1.1); opacity: 1; }
  100% { transform: translateX(-2px) scale(0.9); opacity: 0.8; }
}
@keyframes mm-square {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-4px) rotate(10deg) scale(1.1); }
  100% { transform: translateY(2px) rotate(-6deg) scale(0.9); }
}
@keyframes mm-spiral {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.2); }
  100% { transform: rotate(360deg) scale(0.8); }
}
@keyframes mm-dots {
  0% { opacity: 0.2; background-size: 20px 20px; }
  50% { opacity: 0.5; background-size: 18px 18px; }
  100% { opacity: 0.3; background-size: 22px 22px; }
}

.scn-persuasion-to-stay { background: linear-gradient(180deg, #87ceeb 0%, #f0d878 50%, #d4a843 100%), radial-gradient(ellipse at 80% 20%, #fff5c0 0%, transparent 60%); }
.scn-persuasion-to-stay .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #aad7ff 0%, #ffe680 100%);
  animation: ps-sky 10s ease-in-out infinite alternate;
}
.scn-persuasion-to-stay .sun {
  position:absolute; top:8%; right:15%; width:50px; height:50px;
  background: radial-gradient(circle, #fff7c0 0%, #fdd835 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 12px #fdd835;
  animation: ps-sun 4s ease-in-out infinite;
}
.scn-persuasion-to-stay .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #8b6f47 0%, #5c4a2e 100%);
  animation: ps-ground 12s ease-in-out infinite;
}
.scn-persuasion-to-stay .socrates {
  position:absolute; bottom:30%; left:15%; width:20px; 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: ps-walk 3s ease-in-out infinite;
}
.scn-persuasion-to-stay .polemarchus {
  position:absolute; bottom:28%; left:55%; width:24px; height:44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-stand 2s ease-in-out infinite alternate;
}
.scn-persuasion-to-stay .friends {
  position:absolute; bottom:25%; left:65%; width:60px; height:80px;
  background: radial-gradient(circle at 50% 100%, #3a2a1a 0%, transparent 70%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: ps-crowd 6s ease-in-out infinite;
}
.scn-persuasion-to-stay .shadow-path {
  position:absolute; bottom:28%; left:10%; right:50%; height:4px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3), rgba(0,0,0,0.1));
  border-radius: 50%; filter: blur(3px);
  animation: ps-shadow 3s ease-in-out infinite alternate;
}
@keyframes ps-sky    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ps-sun    { 0% { transform:scale(1); } 50% { transform:scale(1.08); } 100% { transform:scale(0.95); } }
@keyframes ps-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ps-walk   { 0% { transform:translateX(0) translateY(0) rotate(-3deg); } 25% { transform:translateX(5px) translateY(-1px) rotate(0deg); } 50% { transform:translateX(10px) translateY(0) rotate(3deg); } 75% { transform:translateX(15px) translateY(-1px) rotate(0deg); } 100% { transform:translateX(20px) translateY(0) rotate(-3deg); } }
@keyframes ps-stand  { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes ps-crowd  { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.02); } 100% { opacity:0.7; transform:scale(1); } }
@keyframes ps-shadow { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.5; transform:scaleX(1.1); } 100% { opacity:0.3; transform:scaleX(1); } }

.scn-force-over-persuasion { background: linear-gradient(180deg, #87ceeb 0%, #f0d878 50%, #d4a843 100%), radial-gradient(ellipse at 30% 80%, #fff5c0 0%, transparent 60%); }
.scn-force-over-persuasion .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #aad7ff 0%, #ffe680 100%);
  animation: fo-sky 8s ease-in-out infinite alternate;
}
.scn-force-over-persuasion .sun {
  position:absolute; top:12%; left:10%; width:40px; height:40px;
  background: radial-gradient(circle, #fff7c0 0%, #fdd835 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 30px 8px #fdd835;
  animation: fo-sun 5s ease-in-out infinite;
}
.scn-force-over-persuasion .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #8b6f47 0%, #5c4a2e 100%);
  animation: fo-ground 14s ease-in-out infinite;
}
.scn-force-over-persuasion .large-hand {
  position:absolute; bottom:35%; left:45%; width:50px; height:70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 20% 20% 50% 50%;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fo-hand 3s ease-in-out infinite alternate;
}
.scn-force-over-persuasion .socrates {
  position:absolute; bottom:32%; left:15%; width:18px; height:36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fo-walk 4s ease-in-out infinite;
}
.scn-force-over-persuasion .arm {
  position:absolute; bottom:42%; left:42%; width:40px; height:8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 80% 20% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: fo-arm 2s ease-in-out infinite alternate;
}
@keyframes fo-sky    { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes fo-sun    { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.1) rotate(5deg); } 100% { transform:scale(0.95) rotate(0deg); } }
@keyframes fo-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes fo-hand   { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-4px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes fo-walk   { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(4px) translateY(-1px) rotate(0deg); } 50% { transform:translateX(8px) translateY(0) rotate(2deg); } 75% { transform:translateX(12px) translateY(-1px) rotate(0deg); } 100% { transform:translateX(16px) translateY(0) rotate(-2deg); } }
@keyframes fo-arm    { 0% { transform:rotate(-10deg); } 50% { transform:rotate(20deg); } 100% { transform:rotate(-10deg); } }

.scn-torch-race-announced { background: linear-gradient(180deg, #1a1a3e 0%, #2c2c5e 40%, #4a3a5e 100%), radial-gradient(ellipse at 50% 0%, #5a4a7e 0%, transparent 70%); }
.scn-torch-race-announced .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%);
  animation: tr-sky 15s ease-in-out infinite alternate;
}
.scn-torch-race-announced .moon {
  position:absolute; top:10%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #e8e0f0 0%, #b8a8d0 80%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 30px 6px #b8a8d0;
  animation: tr-moon 20s linear infinite;
}
.scn-torch-race-announced .stars {
  position:absolute; top:0; left:0; right:0; height:60%;
  background: transparent;
  box-shadow: 8px 20px 0 0 #fff, 40px 50px 0 0 #e0e0e0, 90px 30px 0 0 #fff, 150px 70px 0 0 #d0d0d0, 200px 40px 0 0 #fff, 260px 80px 0 0 #e0e0e0, 320px 20px 0 0 #fff, 380px 60px 0 0 #d0d0d0, 450px 50px 0 0 #fff, 520px 30px 0 0 #e0e0e0;
  animation: tr-stars 60s linear infinite;
}
.scn-torch-race-announced .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  animation: tr-ground 20s ease-in-out infinite alternate;
}
.scn-torch-race-announced .horse-1 {
  position:absolute; bottom:25%; left:20%; width:50px; height:30px;
  background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 30"%3E%3Cellipse cx="20" cy="15" rx="15" ry="10" fill="%233a2a1a"/%3E%3Cellipse cx="35" cy="12" rx="10" ry="8" fill="%234a3a2a"/%3E%3C/svg%3E') no-repeat center/contain;
  animation: tr-horse 3s ease-in-out infinite;
}
.scn-torch-race-announced .horse-2 {
  position:absolute; bottom:22%; left:55%; width:45px; height:28px;
  background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 28"%3E%3Cellipse cx="18" cy="14" rx="13" ry="9" fill="%233a2a1a"/%3E%3Cellipse cx="32" cy="11" rx="9" ry="7" fill="%234a3a2a"/%3E%3C/svg%3E') no-repeat center/contain;
  animation: tr-horse2 3.5s ease-in-out infinite;
  animation-delay: -0.8s;
}
.scn-torch-race-announced .torch {
  position:absolute; bottom:28%; left:40%; width:8px; height:14px;
  background: radial-gradient(circle, #ffa500 0%, #ff4500 60%, transparent 100%);
  border-radius:50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px #ffa500, 0 0 40px 12px rgba(255,165,0,0.4);
  animation: tr-torch 2s ease-in-out infinite alternate;
}
@keyframes tr-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tr-moon   { 0% { transform:translateX(0); } 50% { transform:translateX(-10px); } 100% { transform:translateX(0); } }
@keyframes tr-stars  { 0% { transform:translateY(0); } 100% { transform:translateY(-100%); } }
@keyframes tr-ground { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.02); } 100% { opacity:0.6; transform:scaleY(1); } }
@keyframes tr-horse  { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(8px) translateY(-2px); } 50% { transform:translateX(16px) translateY(0); } 75% { transform:translateX(24px) translateY(-2px); } 100% { transform:translateX(32px) translateY(0); } }
@keyframes tr-horse2 { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(-8px) translateY(-2px); } 50% { transform:translateX(-16px) translateY(0); } 75% { transform:translateX(-24px) translateY(-2px); } 100% { transform:translateX(-32px) translateY(0); } }
@keyframes tr-torch  { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.1); box-shadow: 0 0 28px 8px #ffa500, 0 0 50px 16px rgba(255,165,0,0.5); } 100% { transform:translateY(0) scale(1); } }

.scn-entering-cephaluss-house { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #5a3a3a 0%, transparent 70%); }
.scn-entering-cephaluss-house .wall-left {
  position:absolute; top:0; bottom:0; left:0; width:30%;
  background: linear-gradient(90deg, #4a3a3a 0%, #3a2a2a 100%);
  box-shadow: inset -8px 0 16px rgba(0,0,0,0.5);
  animation: ec-wall 12s ease-in-out infinite alternate;
}
.scn-entering-cephaluss-house .wall-right {
  position:absolute; top:0; bottom:0; right:0; width:30%;
  background: linear-gradient(-90deg, #4a3a3a 0%, #3a2a2a 100%);
  box-shadow: inset 8px 0 16px rgba(0,0,0,0.5);
  animation: ec-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-entering-cephaluss-house .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  animation: ec-floor 20s ease-in-out infinite;
}
.scn-entering-cephaluss-house .lamp {
  position:absolute; bottom:50%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #ffd080 0%, #cc8844 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 10px #cc8844, 0 0 80px 20px rgba(204,136,68,0.3);
  animation: ec-lamp 4s ease-in-out infinite alternate;
}
.scn-entering-cephaluss-house .cephalus {
  position:absolute; bottom:20%; left:35%; width:22px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ec-figure 6s ease-in-out infinite;
}
.scn-entering-cephaluss-house .polemarchus {
  position:absolute; bottom:18%; left:55%; width:20px; height:38px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ec-figure2 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-entering-cephaluss-house .others {
  position:absolute; bottom:15%; left:40%; width:80px; height:60px;
  background: radial-gradient(circle at 50% 100%, #3a2a1a 0%, transparent 80%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: ec-others 8s ease-in-out infinite;
}
@keyframes ec-wall   { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ec-floor  { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } 100% { transform:scaleY(1); } }
@keyframes ec-lamp   { 0% { box-shadow: 0 0 30px 8px #cc8844, 0 0 60px 15px rgba(204,136,68,0.2); } 50% { box-shadow: 0 0 50px 15px #ffdd88, 0 0 100px 30px rgba(255,221,136,0.4); } 100% { box-shadow: 0 0 35px 10px #cc8844, 0 0 70px 20px rgba(204,136,68,0.3); } }
@keyframes ec-figure  { 0% { transform:rotate(-5deg) translateY(0); } 25% { transform:rotate(-3deg) translateY(-2px); } 50% { transform:rotate(-5deg) translateY(0); } 75% { transform:rotate(-7deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes ec-figure2 { 0% { transform:rotate(5deg) translateY(0); } 25% { transform:rotate(7deg) translateY(-2px); } 50% { transform:rotate(5deg) translateY(0); } 75% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes ec-others  { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.02); } 100% { opacity:0.5; transform:scale(1); } }

.scn-plato-and-homer {
  background: linear-gradient(180deg, #3a2218 0%, #2a1a12 50%, #1a0f0a 100%), radial-gradient(ellipse at 70% 30%, #5a3a28 0%, transparent 60%);
}
.scn-plato-and-homer .bust { position:absolute; top:20%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: pl-bust 12s ease-in-out infinite alternate; }
.scn-plato-and-homer .figure { position:absolute; bottom:25%; left:20%; width:45px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-figure 9s ease-in-out infinite; }
.scn-plato-and-homer .desk { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a10 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: pl-desk 15s ease-in-out infinite alternate; }
.scn-plato-and-homer .scroll { position:absolute; bottom:38%; left:35%; width:30%; height:8px; background: linear-gradient(180deg, #d4c6a8 0%, #b8a888 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pl-scroll 10s ease-in-out infinite alternate; }
.scn-plato-and-homer .candle { position:absolute; bottom:36%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #e8a050 0%, #c08040 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 6px #d09050; animation: pl-candle 4s ease-in-out infinite; }
.scn-plato-and-homer .glow { position:absolute; bottom:32%; left:52%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; animation: pl-glow 5s ease-in-out infinite alternate; }
.scn-plato-and-homer .shadow { position:absolute; bottom:25%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, rgba(26,15,10,.6) 0%, transparent 100%); border-radius: 50% 50% 0 0; animation: pl-shadow 18s ease-in-out infinite alternate; }
@keyframes pl-bust { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pl-figure { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pl-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes pl-scroll { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes pl-candle { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.06) } 100% { opacity:.8; transform: scaleY(0.94) } }
@keyframes pl-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.7; transform: scale(1.15) } 100% { opacity:.4; transform: scale(0.9) } }
@keyframes pl-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-decline-of-poetry {
  background: linear-gradient(180deg, #4a2a1e 0%, #3a1a14 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 40%, #6a3a2a 0%, transparent 70%);
}
.scn-decline-of-poetry .stage { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: de-stage 14s ease-in-out infinite alternate; }
.scn-decline-of-poetry .mask-left { position:absolute; bottom:40%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #70301a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: de-mask-l 6s ease-in-out infinite; }
.scn-decline-of-poetry .mask-right { position:absolute; bottom:40%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #70301a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: de-mask-r 6s ease-in-out infinite 1s; }
.scn-decline-of-poetry .mask-center { position:absolute; bottom:42%; left:50%; width:40px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #b85830 0%, #803020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: de-mask-c 3s ease-in-out infinite; }
.scn-decline-of-poetry .figure { position:absolute; bottom:15%; left:50%; width:40px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-figure 5s ease-in-out infinite; }
.scn-decline-of-poetry .curtain-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #6a3a2a 0%, #4a2a1e 50%, transparent 100%); border-radius: 0 50% 50% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.3); animation: de-curtain-l 8s ease-in-out infinite alternate; }
.scn-decline-of-poetry .curtain-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #6a3a2a 0%, #4a2a1e 50%, transparent 100%); border-radius: 50% 0 0 50%; box-shadow: inset 10px 0 20px rgba(0,0,0,.3); animation: de-curtain-r 8s ease-in-out infinite alternate 2s; }
.scn-decline-of-poetry .light { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,200,150,.25) 0%, transparent 100%); animation: de-light 4s ease-in-out infinite alternate; }
@keyframes de-stage { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes de-mask-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(-3deg) } }
@keyframes de-mask-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(3deg) } }
@keyframes de-mask-c { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(4deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes de-figure { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-48%) scaleY(1.03) } 100% { transform: translateX(-52%) scaleY(0.97) } }
@keyframes de-curtain-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes de-curtain-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes de-light { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }

.scn-lack-of-great-poets {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 50%, #0a0502 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-lack-of-great-poets .figure { position:absolute; bottom:20%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-figure 10s ease-in-out infinite; }
.scn-lack-of-great-poets .gesture { position:absolute; bottom:50%; left:55%; width:15px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a12 100%); border-radius: 20% 20% 40% 40%; transform: rotate(30deg); transform-origin: bottom right; animation: la-gesture 4s ease-in-out infinite; }
.scn-lack-of-great-poets .swallow-1 { position:absolute; top:10%; left:10%; width:20px; height:12px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: la-swallow-1 30s linear infinite; }
.scn-lack-of-great-poets .swallow-2 { position:absolute; top:20%; left:30%; width:18px; height:10px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: la-swallow-1 40s linear infinite 5s; }
.scn-lack-of-great-poets .swallow-3 { position:absolute; top:15%; left:50%; width:16px; height:9px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: la-swallow-1 35s linear infinite 10s; }
.scn-lack-of-great-poets .shadow { position:absolute; bottom:15%; left:35%; width:60px; height:12px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(4px); animation: la-shadow 7s ease-in-out infinite alternate; }
@keyframes la-figure { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes la-gesture { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(28deg) } }
@keyframes la-swallow-1 { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(80vw) translateY(-30px) } 100% { transform: translateX(160vw) translateY(10px) } }
@keyframes la-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(0.9) } }

.scn-platos-feeling-of-decline {
  background: linear-gradient(180deg, #2e1e14 0%, #1e120c 50%, #0e0704 100%), radial-gradient(ellipse at 60% 40%, #4e3220 0%, transparent 70%);
}
.scn-platos-feeling-of-decline .figure { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #2e1e14 0%, #1e120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl2-figure 12s ease-in-out infinite; }
.scn-platos-feeling-of-decline .scroll { position:absolute; bottom:15%; left:45%; width:50px; height:6px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pl2-scroll 15s ease-in-out infinite alternate; }
.scn-platos-feeling-of-decline .flake-1 { position:absolute; top:-10%; left:20%; width:6px; height:6px; background: #c0b0a0; border-radius: 50%; animation: pl2-flake-1 20s linear infinite; }
.scn-platos-feeling-of-decline .flake-2 { position:absolute; top:-10%; left:60%; width:8px; height:8px; background: #b0a090; border-radius: 50%; animation: pl2-flake-2 25s linear infinite 3s; }
.scn-platos-feeling-of-decline .light-source { position:absolute; bottom:40%; right:20%; width:10px; height:15px; background: linear-gradient(180deg, #d09050 0%, #a06030 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 10px #c08040; animation: pl2-light 8s ease-in-out infinite alternate; }
.scn-platos-feeling-of-decline .shadow { position:absolute; bottom:0; left:0; width:100%; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(14,7,4,.8) 100%); animation: pl2-shadow 16s ease-in-out infinite alternate; }
@keyframes pl2-figure { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes pl2-scroll { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1.05) } }
@keyframes pl2-flake-1 { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(60vh) translateX(30px) } 100% { transform: translateY(120vh) translateX(-10px) } }
@keyframes pl2-flake-2 { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(70vh) translateX(-20px) } 100% { transform: translateY(140vh) translateX(10px) } }
@keyframes pl2-light { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.05) } 100% { opacity:.5; transform: scaleY(0.95) } }
@keyframes pl2-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-objectionable-stories {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120b 40%, #2a1f14 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-objectionable-stories .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1f14 100%); border-radius:0; }
.scn-objectionable-stories .bookshelf { position:absolute; top:5%; left:5%; width:40%; height:65%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%); border-radius:2%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-objectionable-stories .table { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2% 2% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-objectionable-stories .scroll { position:absolute; bottom:35%; left:35%; width:25%; height:20%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:10% 10% 60% 60% / 10% 10% 40% 40%; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ob-scroll 6s ease-in-out infinite alternate; }
.scn-objectionable-stories .figure { position:absolute; bottom:22%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ob-figure 4s ease-in-out infinite; }
.scn-objectionable-stories .candle { position:absolute; bottom:42%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #e8c090 0%, #a08060 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 9px 3px #e8c090; animation: ob-candle 3s ease-in-out infinite; }
.scn-objectionable-stories .glow { position:absolute; bottom:40%; left:45%; width:10%; height:15%; background: radial-gradient(circle, #e8c090 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: ob-glow 4s ease-in-out infinite alternate; }
.scn-objectionable-stories .shadow { position:absolute; bottom:18%; left:18%; width:64%; height:6%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; animation: ob-shadow 4s ease-in-out infinite; }
@keyframes ob-scroll { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes ob-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(5px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ob-candle { 0% { opacity:.8; box-shadow: 0 0 8px 3px #e8c090; } 50% { opacity:1; box-shadow: 0 0 14px 6px #e8c090; } 100% { opacity:.85; box-shadow: 0 0 9px 3px #e8c090; } }
@keyframes ob-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(1); } }
@keyframes ob-shadow { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(.9); } }

.scn-giants-and-quarrels {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120b 40%, #2a1f14 100%),
              radial-gradient(ellipse at 70% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-giants-and-quarrels .tapestry { position:absolute; top:15%; left:10%; width:80%; height:70%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1f14 40%, #4a3a2a 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 6px 12px rgba(0,0,0,.5); }
.scn-giants-and-quarrels .thread-a { position:absolute; top:25%; left:20%; width:30%; height:2%; background: linear-gradient(90deg, #a08060 0%, transparent 100%); border-radius:50%; filter: blur(1px); animation: gq-thread-a 12s linear infinite; }
.scn-giants-and-quarrels .thread-b { position:absolute; top:35%; left:40%; width:20%; height:1.5%; background: linear-gradient(90deg, #b8a090 0%, transparent 100%); border-radius:50%; filter: blur(1px); animation: gq-thread-b 15s linear infinite; }
.scn-giants-and-quarrels .giant { position:absolute; bottom:40%; left:30%; width:15%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1f14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.2); box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: gq-giant 8s ease-in-out infinite alternate; }
.scn-giants-and-quarrels .hero { position:absolute; bottom:35%; left:55%; width:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #1a120b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(.8); animation: gq-hero 6s ease-in-out infinite; }
.scn-giants-and-quarrels .light { position:absolute; top:10%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #e8c090 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: gq-light 4s ease-in-out infinite alternate; }
.scn-giants-and-quarrels .fringe { position:absolute; bottom:13%; left:10%; width:80%; height:3%; background: repeating-linear-gradient(90deg, #a08060 0px, #a08060 8px, transparent 8px, transparent 16px); border-radius: 0 0 20% 20%; animation: gq-fringe 5s linear infinite; }
@keyframes gq-thread-a { 0% { transform: translateX(-10px) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.2); } 100% { transform: translateX(-10px) scaleX(1); } }
@keyframes gq-thread-b { 0% { transform: translateX(10px) scaleX(1); } 50% { transform: translateX(-15px) scaleX(.8); } 100% { transform: translateX(10px) scaleX(1); } }
@keyframes gq-giant { 0% { transform: scale(1.2) rotate(-2deg); } 50% { transform: scale(1.25) rotate(2deg); } 100% { transform: scale(1.2) rotate(-2deg); } }
@keyframes gq-hero { 0% { transform: scale(.8) translateX(0); } 50% { transform: scale(.82) translateX(5px); } 100% { transform: scale(.8) translateX(0); } }
@keyframes gq-light { 0% { opacity:.4; filter: blur(4px); } 50% { opacity:.7; filter: blur(2px); } 100% { opacity:.5; filter: blur(4px); } }
@keyframes gq-fringe { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }

.scn-hephaestus-and-here {
  background: linear-gradient(180deg, #1a1410 0%, #2a1a0e 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a0a 0%, transparent 70%);
}
.scn-hephaestus-and-here .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120b 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; }
.scn-hephaestus-and-here .chain { position:absolute; top:20%; left:30%; width:10%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #6a5a4a 100%); border-radius:10%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: hep-chain 5s ease-in-out infinite; }
.scn-hephaestus-and-here .hephaestus { position:absolute; bottom:30%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hep-figure 4s ease-in-out infinite; }
.scn-hephaestus-and-here .hera { position:absolute; bottom:30%; left:55%; width:12%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #1a120b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hep-hera 4s ease-in-out infinite alternate; }
.scn-hephaestus-and-here .throne { position:absolute; bottom:22%; left:50%; width:20%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 60% 60% / 20% 20% 40% 40%; box-shadow: 0 -4px 10px rgba(0,0,0,.6); }
.scn-hephaestus-and-here .glow { position:absolute; top:10%; left:40%; width:20%; height:20%; background: radial-gradient(circle, #e8c090 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: hep-glow 6s ease-in-out infinite alternate; }
.scn-hephaestus-and-here .sparkle { position:absolute; top:15%; left:45%; width:3%; height:3%; background: #e8c090; border-radius:50%; box-shadow: 0 0 8px 3px #e8c090; animation: hep-sparkle 2s ease-in-out infinite; }
@keyframes hep-chain { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } }
@keyframes hep-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes hep-hera { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hep-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(1); } }
@keyframes hep-sparkle { 0%,100% { opacity:0; transform: scale(0); } 50% { opacity:1; transform: scale(1.5); } }

.scn-models-for-poets {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120b 40%, #2a1f14 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-models-for-poets .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 -2px 8px rgba(0,0,0,.5); }
.scn-models-for-poets .model { position:absolute; bottom:35%; left:55%; width:10%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(.9); box-shadow: 0 0 10px rgba(0,0,0,.4); animation: mod-model 5s ease-in-out infinite; }
.scn-models-for-poets .founder { position:absolute; bottom:22%; left:30%; width:12%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #1a120b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mod-founder 4s ease-in-out infinite; }
.scn-models-for-poets .adeimantus { position:absolute; bottom:22%; left:60%; width:12%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #1a120b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); transform-origin: bottom; animation: mod-adeimantus 4s ease-in-out infinite alternate; }
.scn-models-for-poets .book { position:absolute; bottom:36%; left:42%; width:6%; height:8%; background: linear-gradient(180deg, #a08060 0%, #7a6040 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: mod-book 3s ease-in-out infinite; }
.scn-models-for-poets .lamp { position:absolute; bottom:45%; left:35%; width:3%; height:10%; background: linear-gradient(180deg, #e8c090 0%, #a08060 100%); border-radius:10%; box-shadow: 0 0 12px 4px #e8c090; animation: mod-lamp 4s ease-in-out infinite alternate; }
.scn-models-for-poets .shadow { position:absolute; bottom:16%; left:15%; width:70%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); border-radius:50%; animation: mod-shadow 4s ease-in-out infinite; }
.scn-models-for-poets .paper { position:absolute; bottom:38%; left:50%; width:8%; height:6%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a090 100%); border-radius:2%; transform: rotate(-5deg); box-shadow: 0 1px 3px rgba(0,0,0,.3); animation: mod-paper 6s ease-in-out infinite alternate; }
@keyframes mod-model { 0% { transform: scale(.9) rotate(-2deg); } 50% { transform: scale(.92) rotate(2deg); } 100% { transform: scale(.9) rotate(-2deg); } }
@keyframes mod-founder { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-4px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mod-adeimantus { 0% { transform: scaleX(-1) translateX(0) rotate(0); } 50% { transform: scaleX(-1) translateX(3px) rotate(2deg); } 100% { transform: scaleX(-1) translateX(0) rotate(0); } }
@keyframes mod-book { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes mod-lamp { 0% { box-shadow: 0 0 10px 3px #e8c090; opacity:.9; } 50% { box-shadow: 0 0 18px 6px #e8c090; opacity:1; } 100% { box-shadow: 0 0 10px 3px #e8c090; opacity:.9; } }
@keyframes mod-shadow { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(.9); } }
@keyframes mod-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* terriblenames */
.scn-terrible-names {
  background: linear-gradient(180deg, #2a241a 0%, #1e1810 40%, #120e08 80%), radial-gradient(ellipse at 40% 20%, #4a3c28 0%, transparent 70%);
}
.scn-terrible-names .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a3024 0%, #1e1810 100%);
}
.scn-terrible-names .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a140e 0%, #2a2218 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-terrible-names .scrolls {
  position: absolute; left: 12%; bottom: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #704c30 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tn-scrolls 20s ease-in-out infinite alternate;
}
.scn-terrible-names .table {
  position: absolute; left: 10%; bottom: 36%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-terrible-names .lantern {
  position: absolute; left: 18%; bottom: 48%; width: 14px; height: 22px;
  background: radial-gradient(circle, #d09050 0%, #a06030 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(208,144,80,0.4), 0 0 40px 12px rgba(208,144,80,0.15);
  animation: tn-lantern 4s ease-in-out infinite alternate;
}
.scn-terrible-names .silhouette {
  position: absolute; right: 22%; bottom: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tn-silhouette 6s ease-in-out infinite alternate;
}
.scn-terrible-names .shadow {
  position: absolute; right: 22%; bottom: 34%; width: 50px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: tn-shadow 6s ease-in-out infinite alternate;
}
@keyframes tn-scrolls {
  0% { opacity: 0.9; transform: translateY(0) rotate(-2deg); }
  50% { opacity: 1; transform: translateY(-2px) rotate(0deg); }
  100% { opacity: 0.9; transform: translateY(0) rotate(2deg); }
}
@keyframes tn-lantern {
  0% { box-shadow: 0 0 16px 4px rgba(208,144,80,0.3), 0 0 32px 8px rgba(208,144,80,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 8px rgba(208,144,80,0.5), 0 0 48px 14px rgba(208,144,80,0.2); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(208,144,80,0.35), 0 0 36px 10px rgba(208,144,80,0.12); opacity: 0.85; }
}
@keyframes tn-silhouette {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes tn-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
}

/* laments-of-heroes */
.scn-laments-of-heroes {
  background: linear-gradient(180deg, #2a221a 0%, #1e1810 50%, #141008 100%), radial-gradient(ellipse at 60% 30%, #3a3020 0%, transparent 70%);
}
.scn-laments-of-heroes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #40352a 0%, #1e1810 100%);
}
.scn-laments-of-heroes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a140e 0%, #2a2018 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-laments-of-heroes .chair {
  position: absolute; left: 50%; bottom: 28%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-laments-of-heroes .figure {
  position: absolute; left: 50%; bottom: 40%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: lh-figure 8s ease-in-out infinite alternate;
}
.scn-laments-of-heroes .teardrop-1 {
  position: absolute; left: 48%; bottom: 55%; width: 4px; height: 8px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: lh-tear1 3s ease-in-out infinite;
}
.scn-laments-of-heroes .teardrop-2 {
  position: absolute; left: 52%; bottom: 53%; width: 4px; height: 8px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: lh-tear2 3.5s ease-in-out infinite 0.8s;
}
.scn-laments-of-heroes .window {
  position: absolute; right: 10%; top: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(180,160,120,0.3) 0%, rgba(100,80,60,0.1) 100%);
  border: 2px solid #2a1e12;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(255,220,180,0.1);
  animation: lh-window 12s ease-in-out infinite alternate;
}
@keyframes lh-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes lh-tear1 {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(8px) scaleY(1.2); opacity: 0.2; }
  100% { transform: translateY(16px) scaleY(0.8); opacity: 0; }
}
@keyframes lh-tear2 {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(6px) scaleY(1.2); opacity: 0.2; }
  100% { transform: translateY(12px) scaleY(0.8); opacity: 0; }
}
@keyframes lh-window {
  0%,100% { opacity: 0.5; box-shadow: inset 0 0 6px rgba(255,220,180,0.05); }
  50% { opacity: 0.8; box-shadow: inset 0 0 12px rgba(255,220,180,0.2); }
}

/* loss-not-terrible */
.scn-loss-not-terrible {
  background: linear-gradient(180deg, #221e18 0%, #181410 40%, #0e0c08 80%), radial-gradient(ellipse at 70% 40%, #3a3020 0%, transparent 70%);
}
.scn-loss-not-terrible .bg-wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #3a2d20 0%, #1a140e 100%);
}
.scn-loss-not-terrible .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(0deg, #1a140e 0%, #2a1e12 100%);
  border-radius: 25% 25% 0 0 / 35% 35% 0 0;
}
.scn-loss-not-terrible .window {
  position: absolute; right: 15%; top: 20%; width: 35px; height: 45px;
  background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, rgba(120,100,80,0.1) 100%);
  border: 2px solid #2a1a0e;
  border-radius: 3px;
  box-shadow: inset 0 0 10px rgba(255,220,180,0.15);
  animation: lnt-window 15s ease-in-out infinite alternate;
}
.scn-loss-not-terrible .figure {
  position: absolute; left: 50%; bottom: 35%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: lnt-figure 10s ease-in-out infinite alternate;
}
.scn-loss-not-terrible .staff {
  position: absolute; left: 54%; bottom: 38%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: lnt-staff 8s ease-in-out infinite alternate;
}
.scn-loss-not-terrible .light {
  position: absolute; right: 18%; top: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: lnt-light 6s ease-in-out infinite alternate;
}
.scn-loss-not-terrible .shadow {
  position: absolute; left: 50%; bottom: 34%; width: 50px; height: 12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  transform: translateX(-50%) scaleX(0.8);
  filter: blur(5px);
  animation: lnt-shadow 10s ease-in-out infinite alternate;
}
@keyframes lnt-window {
  0%,100% { opacity: 0.4; box-shadow: inset 0 0 6px rgba(255,220,180,0.1); }
  50% { opacity: 0.7; box-shadow: inset 0 0 14px rgba(255,220,180,0.2); }
}
@keyframes lnt-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes lnt-staff {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(-12deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes lnt-light {
  0%,100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
}
@keyframes lnt-shadow {
  0%,100% { opacity: 0.4; transform: translateX(-50%) scaleX(0.8); }
  50% { opacity: 0.6; transform: translateX(-50%) scaleX(1.1); }
}

/* achilles-lament */
.scn-achilles-lament {
  background: linear-gradient(180deg, #1e1a14 0%, #16120e 40%, #0e0a08 80%), radial-gradient(ellipse at 40% 50%, #2a2218 0%, transparent 70%);
}
.scn-achilles-lament .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #302820 0%, #1a140e 100%);
}
.scn-achilles-lament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #0e0a08 0%, #1a140e 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-achilles-lament .bed-base {
  position: absolute; left: 50%; bottom: 15%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-achilles-lament .figure-laying {
  position: absolute; left: 50%; bottom: 25%; width: 50px; height: 22px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: center bottom;
  animation: al-figure 12s ease-in-out infinite alternate;
}
.scn-achilles-lament .arm-sand {
  position: absolute; left: 42%; bottom: 32%; width: 18px; height: 16px;
  background: linear-gradient(180deg, #3a3020 0%, #1a140e 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: top left;
  animation: al-arm 9s ease-in-out infinite alternate;
}
.scn-achilles-lament .soot-ash-1 {
  position: absolute; right: 20%; top: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #2a2218 0%, #0e0a08 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: al-soot1 25s linear infinite;
}
.scn-achilles-lament .soot-ash-2 {
  position: absolute; right: 30%; top: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #2a2218 0%, #0e0a08 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: al-soot2 30s linear infinite 5s;
}
@keyframes al-figure {
  0% { transform: translateX(-50%) rotate(3deg) scale(1); }
  50% { transform: translateX(-50%) rotate(8deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(5deg) scale(0.98); }
}
@keyframes al-arm {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes al-soot1 {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  25% { transform: translate(10px,-8px) scale(0.9); opacity: 0.3; }
  50% { transform: translate(20px,-15px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(30px,-22px) scale(0.7); opacity: 0.1; }
  100% { transform: translate(40px,-30px) scale(0.5); opacity: 0; }
}
@keyframes al-soot2 {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  25% { transform: translate(-8px,-6px) scale(0.9); opacity: 0.3; }
  50% { transform: translate(-16px,-12px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(-24px,-18px) scale(0.7); opacity: 0.1; }
  100% { transform: translate(-32px,-24px) scale(0.5); opacity: 0; }
}

.scn-bad-example {
  background:
    linear-gradient(180deg, #2b1e1a 0%, #1f1410 40%, #2a1b16 100%),
    radial-gradient(ellipse at 50% 30%, #3d2a22 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-bad-example .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3b2e28 0%, #261d1a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-bad-example .shelf {
  position: absolute; bottom: 45%; left: 5%; right: 5%; height: 8px;
  background: linear-gradient(0deg, #4a352c 0%, #5e4438 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-bad-example .book {
  position: absolute; bottom: 46%; height: 40px; width: 8px;
  background: linear-gradient(180deg, #7a5a44 0%, #4d3526 100%);
  border-radius: 1px;
  box-shadow: 1px 0 3px rgba(0,0,0,.4);
}
.scn-bad-example .book-a { left: 10%; width: 10px; background: linear-gradient(180deg, #8c6b50 0%, #5c4430 100%); }
.scn-bad-example .book-b { left: 16%; width: 12px; height: 44px; background: linear-gradient(180deg, #6e5644 0%, #3f3127 100%); }
.scn-bad-example .book-c { left: 25%; width: 9px; height: 38px; background: linear-gradient(180deg, #5e4a3c 0%, #342822 100%); }
.scn-bad-example .candle {
  position: absolute; bottom: 35%; left: 50%; margin-left: -3px;
  width: 6px; height: 24px;
  background: linear-gradient(0deg, #8a7550 0%, #b8a080 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-bad-example .glow-candle {
  position: absolute; bottom: 36%; left: 50%; margin-left: -15px;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230,180,100,.6) 0%, rgba(230,180,100,.2) 40%, transparent 70%);
  animation: be-glp 3s ease-in-out infinite;
}
.scn-bad-example .figure-seated {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2c1e1a 0%, #140e0c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: be-fig 6s ease-in-out infinite alternate;
}
@keyframes be-glp {
  0%,100% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}
@keyframes be-fig {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-remaining-subjects {
  background:
    linear-gradient(180deg, #2b221e 0%, #1f1612 50%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2c26 0%, transparent 80%);
}
.scn-remaining-subjects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a32 0%, #2f241e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-remaining-subjects .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 12px;
  background: linear-gradient(0deg, #5a4438 0%, #6e5648 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
}
.scn-remaining-subjects .scroll {
  position: absolute; bottom: 22%; height: 30px;
  background: linear-gradient(180deg, #9a795a 0%, #6e5540 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,.5);
}
.scn-remaining-subjects .scroll-a { left: 20%; width: 18px; transform: rotate(5deg); }
.scn-remaining-subjects .scroll-b { left: 30%; width: 22px; transform: rotate(-3deg); bottom: 23%; }
.scn-remaining-subjects .inkwell {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #2a1e1a 0%, #0e0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-remaining-subjects .hand-writing {
  position: absolute; bottom: 24%; left: 50%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #8a6a4e 0%, #4d3828 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rs-hand 2s ease-in-out infinite alternate;
}
.scn-remaining-subjects .glow-lamp {
  position: absolute; bottom: 35%; right: 20%; width: 20px; height: 28px;
  background: radial-gradient(circle at 50% 20%, rgba(230,190,120,0.5) 0%, transparent 70%);
  animation: rs-glp 4s ease-in-out infinite;
}
.scn-remaining-subjects .shadow-window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 50px;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  border-radius: 2px;
  animation: rs-win 12s ease-in-out infinite alternate;
}
@keyframes rs-hand {
  0% { transform: translate(0,0) rotate(-5deg); }
  100% { transform: translate(2px,-1px) rotate(3deg); }
}
@keyframes rs-glp {
  0%,100% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.05); }
}
@keyframes rs-win {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0.3; transform: scale(0.98); }
}
.scn-principle-implied {
  background:
    linear-gradient(180deg, #2f2520 0%, #1e1510 40%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 40%, #3d2c24 0%, transparent 70%);
}
.scn-principle-implied .pedestal {
  position: absolute; bottom: 15%; left: 50%; margin-left: -30px; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3d3028 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-principle-implied .bust {
  position: absolute; bottom: 40%; left: 50%; margin-left: -20px; width: 40px; height: 55px;
  background: linear-gradient(180deg, #6e5a4c 0%, #3a2e24 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pi-bust 8s ease-in-out infinite alternate;
}
.scn-principle-implied .plinth {
  position: absolute; bottom: 23%; left: 50%; margin-left: -24px; width: 48px; height: 12px;
  background: linear-gradient(0deg, #4a3a2e 0%, #604c3e 100%);
  border-radius: 2px;
}
.scn-principle-implied .glow-plinth {
  box-shadow: 0 0 15px 3px rgba(200,160,100,0.3);
  animation: pi-glo 5s ease-in-out infinite;
}
.scn-principle-implied .drapes {
  position: absolute; top: 0; width: 40px; height: 100%;
  background: linear-gradient(180deg, #4a3a32 0%, #2b1f1a 80%);
  border-radius: 4px;
}
.scn-principle-implied .drape-left { left: 5%; transform: rotate(3deg); }
.scn-principle-implied .drape-right { right: 5%; transform: rotate(-3deg); }
.scn-principle-implied .aureole {
  position: absolute; top: 25%; left: 50%; margin-left: -30px; width: 60px; height: 60px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(220,190,130,0.25) 0%, transparent 60%);
  animation: pi-aur 6s ease-in-out infinite alternate;
}
.scn-principle-implied .text-line {
  position: absolute; left: 10%; right: 10%; height: 2px;
  background: rgba(200,180,150,0.15);
  border-radius: 1px;
  animation: pi-txt 4s ease-in-out infinite;
}
.scn-principle-implied .line-1 { bottom: 35%; width: 60%; margin-left: 20%; }
.scn-principle-implied .line-2 { bottom: 32%; width: 50%; margin-left: 25%; animation-delay: 0.5s; }
.scn-principle-implied .line-3 { bottom: 29%; width: 40%; margin-left: 30%; animation-delay: 1s; }
@keyframes pi-bust {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pi-glo {
  0%,100% { opacity: 0.4; box-shadow: 0 0 10px 2px rgba(200,160,100,0.2); }
  50% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(200,160,100,0.4); }
}
@keyframes pi-aur {
  0% { opacity: 0.3; transform: scale(0.9); }
  100% { opacity: 0.6; transform: scale(1.1); }
}
@keyframes pi-txt {
  0%,100% { opacity: 0.1; }
  50% { opacity: 0.3; }
}
.scn-narration-styles {
  background:
    linear-gradient(180deg, #2f221e 0%, #1a100c 40%, #241a16 100%),
    radial-gradient(ellipse at 50% 70%, #3d2a22 0%, transparent 80%);
}
.scn-narration-styles .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a30 0%, #2f221c 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,.6);
}
.scn-narration-styles .backdrop {
  position: absolute; bottom: 20%; left: 5%; right: 5%; top: 10%;
  background: linear-gradient(180deg, #3d2e26 0%, #261b16 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-narration-styles .mask {
  position: absolute; width: 24px; height: 28px;
  background: linear-gradient(180deg, #6e5a4a 0%, #3f2e26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-narration-styles .mask-tragedy {
  bottom: 35%; left: 30%; transform: rotate(-10deg);
  animation: ns-mask 3s ease-in-out infinite alternate;
}
.scn-narration-styles .mask-comedy {
  bottom: 35%; right: 30%; transform: rotate(10deg);
  animation: ns-mask 3s ease-in-out infinite alternate-reverse;
}
.scn-narration-styles .actor {
  position: absolute; bottom: 20%; left: 50%; margin-left: -18px; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1f1410 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: ns-act 6s ease-in-out infinite alternate;
}
.scn-narration-styles .footlights {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, rgba(230,200,150,0.3) 0%, rgba(230,200,150,0.6) 30%, rgba(230,200,150,0.3) 100%);
  filter: blur(3px);
  animation: ns-lgt 4s ease-in-out infinite;
}
.scn-narration-styles .curtain {
  position: absolute; top: 0; bottom: 20%; width: 30px;
  background: linear-gradient(180deg, #5a3a32 0%, #3a221c 80%);
  border-radius: 4px;
}
.scn-narration-styles .curtain-left { left: 0; animation: ns-cur 7s ease-in-out infinite; }
.scn-narration-styles .curtain-right { right: 0; animation: ns-cur 7s ease-in-out infinite reverse; }
@keyframes ns-mask {
  0% { transform: translateY(0) rotate(-10deg); }
  100% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes ns-act {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ns-lgt {
  0%,100% { opacity: 0.4; }
  50% { opacity: 0.8; filter: blur(5px); }
}
@keyframes ns-cur {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}

/* All dim interior scenes share base palette: warm browns, golds, deep maroon - no crimson */
.scn-dog-philosopher {
  background: linear-gradient(180deg, #2b1f1a 0%, #3a2b20 50%, #1f1410 100%),
              radial-gradient(ellipse at 55% 70%, #5a3828 0%, transparent 60%);
}
.scn-dog-philosopher .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1410 0%, transparent 100%);
  animation: dp-bg 12s ease-in-out infinite alternate;
}
.scn-dog-philosopher .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-dog-philosopher .window {
  position: absolute; top: 10%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px; box-shadow: inset 0 0 20px #5a4a3a;
  animation: dp-win 8s ease-in-out infinite alternate;
}
.scn-dog-philosopher .dog-body {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: dp-body 6s ease-in-out infinite;
}
.scn-dog-philosopher .dog-head {
  position: absolute; bottom: 60%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 40% 40%, #6a4a32 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: dp-head 4s ease-in-out infinite alternate;
}
.scn-dog-philosopher .dog-paw {
  position: absolute; bottom: 32%; left: 28%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: dp-paw 3s ease-in-out infinite;
}
.scn-dog-philosopher .lamp {
  position: absolute; top: 15%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #8a5820 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #b07840, 0 0 60px 20px rgba(176,120,64,0.3);
  animation: dp-lamp 3s ease-in-out infinite alternate;
}
.scn-dog-philosopher .shadow {
  position: absolute; bottom: 27%; left: 25%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 100%);
  border-radius: 50%;
  animation: dp-shadow 8s ease-in-out infinite alternate;
}
@keyframes dp-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dp-win { 0% { box-shadow: inset 0 0 20px #5a4a3a; background: linear-gradient(135deg, #4a3a2a, #2a1a0a); } 50% { box-shadow: inset 0 0 30px #7a5a3a; background: linear-gradient(135deg, #5a4a3a, #3a2a1a); } 100% { box-shadow: inset 0 0 15px #4a3a2a; background: linear-gradient(135deg, #3a2a1a, #1a0a0a); } }
@keyframes dp-body { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-4px); } }
@keyframes dp-head { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.02); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes dp-paw { 0%,100% { transform: translate(0, 0); } 50% { transform: translate(4px, -2px); } }
@keyframes dp-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px #b07840, 0 0 60px 20px rgba(176,120,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px #d09050, 0 0 80px 30px rgba(208,144,80,0.4); } }
@keyframes dp-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1); } }

.scn-dog-lover-of-learning {
  background: linear-gradient(180deg, #2b1f1a 0%, #3a2b20 50%, #1f1410 100%),
              radial-gradient(ellipse at 45% 60%, #5a3828 0%, transparent 70%);
}
.scn-dog-lover-of-learning .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1410 0%, transparent 100%);
  animation: dl-bg 15s ease-in-out infinite alternate;
}
.scn-dog-lover-of-learning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-dog-lover-of-learning .human-profile {
  position: absolute; bottom: 25%; left: 55%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 40% 40%;
  animation: dl-human 5s ease-in-out infinite alternate;
}
.scn-dog-lover-of-learning .dog-profile {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 50% 40% 40% 50% / 50% 60% 40% 40%;
  transform: scaleX(-1);
  animation: dl-dog 4s ease-in-out infinite;
}
.scn-dog-lover-of-learning .book {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dl-book 6s ease-in-out infinite;
}
.scn-dog-lover-of-learning .lamp {
  position: absolute; top: 12%; left: 20%; width: 18px; height: 28px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #8a5820 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 8px #b07840, 0 0 50px 16px rgba(176,120,64,0.3);
  animation: dl-lamp 3s ease-in-out infinite alternate;
}
.scn-dog-lover-of-learning .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 12px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 100%);
  border-radius: 50%;
  animation: dl-shadow 10s ease-in-out infinite alternate;
}
@keyframes dl-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dl-human { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dl-dog { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px) rotate(3deg); } }
@keyframes dl-book { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes dl-lamp { 0% { opacity: 0.8; box-shadow: 0 0 25px 8px #b07840, 0 0 50px 16px rgba(176,120,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 35px 12px #d09050, 0 0 70px 25px rgba(208,144,80,0.4); } }
@keyframes dl-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.15); } }

.scn-guardian-combination {
  background: linear-gradient(180deg, #2b1f1a 0%, #3a2b20 50%, #1f1410 100%),
              radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-guardian-combination .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1410 0%, transparent 100%);
  animation: gc-bg 18s ease-in-out infinite alternate;
}
.scn-guardian-combination .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-guardian-combination .pedestal {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-guardian-combination .guardian-body {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: gc-body 8s ease-in-out infinite;
}
.scn-guardian-combination .shield {
  position: absolute; bottom: 40%; left: 45%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b09060;
  animation: gc-shield 5s ease-in-out infinite alternate;
}
.scn-guardian-combination .spear {
  position: absolute; bottom: 50%; left: 60%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: gc-spear 6s ease-in-out infinite;
}
.scn-guardian-combination .halo {
  position: absolute; bottom: 70%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.3;
  animation: gc-halo 4s ease-in-out infinite alternate;
}
@keyframes gc-bg { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes gc-body { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } }
@keyframes gc-shield { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 6px #b09060; } 100% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 30px 10px #c0a070; } }
@keyframes gc-spear { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } }
@keyframes gc-halo { 0% { opacity: 0.2; transform: translateX(-50%) scale(1); } 100% { opacity: 0.4; transform: translateX(-50%) scale(1.1); } }

.scn-false-stories-first {
  background: linear-gradient(180deg, #2b1f1a 0%, #3a2b20 50%, #1f1410 100%),
              radial-gradient(ellipse at 50% 70%, #5a3828 0%, transparent 60%);
}
.scn-false-stories-first .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1410 0%, transparent 100%);
  animation: fs-bg 14s ease-in-out infinite alternate;
}
.scn-false-stories-first .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-false-stories-first .storyteller {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: fs-teller 6s ease-in-out infinite;
}
.scn-false-stories-first .child-left {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fs-child 4s ease-in-out infinite alternate;
}
.scn-false-stories-first .child-right {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: fs-child 4s ease-in-out infinite alternate -1s;
}
.scn-false-stories-first .book {
  position: absolute; bottom: 30%; left: 48%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: fs-book 5s ease-in-out infinite;
}
.scn-false-stories-first .lamp {
  position: absolute; top: 12%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #8a5820 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 35px 12px #b07840, 0 0 70px 24px rgba(176,120,64,0.3);
  animation: fs-lamp 3s ease-in-out infinite alternate;
}
.scn-false-stories-first .shadow {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 14px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 100%);
  border-radius: 50%;
  animation: fs-shadow 12s ease-in-out infinite alternate;
}
@keyframes fs-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fs-teller { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes fs-child { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fs-book { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes fs-lamp { 0% { opacity: 0.8; box-shadow: 0 0 35px 12px #b07840, 0 0 70px 24px rgba(176,120,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 45px 18px #d09050, 0 0 90px 36px rgba(208,144,80,0.4); } }
@keyframes fs-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.2); } }

/* Scene: kings-philosophers (kp) */
.scn-kings-philosophers { background: linear-gradient(180deg, #2a1e1a 0%, #140e0c 100%), radial-gradient(ellipse at 50% 0%, #3a2a1e 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-kings-philosophers .bg-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #3a2a1e 0%, #1a1410 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-kings-philosophers .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-kings-philosophers .column-l { position: absolute; bottom: 25%; left: 5%; width: 6%; height: 55%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset -2px 0 8px rgba(0,0,0,.4); animation: kp-shadow 18s ease-in-out infinite alternate; }
.scn-kings-philosophers .column-r { position: absolute; bottom: 25%; right: 5%; width: 6%; height: 55%; background: linear-gradient(90deg, #3a2a1a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset 2px 0 8px rgba(0,0,0,.4); animation: kp-shadow 18s ease-in-out infinite alternate-reverse; }
.scn-kings-philosophers .throne { position: absolute; bottom: 25%; left: 20%; width: 15%; height: 30%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-kings-philosophers .figure-king { position: absolute; bottom: 24%; left: 21%; width: 10%; height: 32%; background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: kp-bow 12s ease-in-out infinite alternate; }
.scn-kings-philosophers .figure-plato { position: absolute; bottom: 24%; right: 22%; width: 10%; height: 30%; background: linear-gradient(180deg, #b89070 0%, #7a5040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: kp-gesture 9s ease-in-out infinite alternate; }
.scn-kings-philosophers .brazier { position: absolute; bottom: 30%; left: 48%; width: 12%; height: 18%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, #6a3010 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(192,128,64,.6), 0 0 60px 30px rgba(192,128,64,.3); animation: kp-brazier 3s ease-in-out infinite alternate; }
@keyframes kp-shadow { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes kp-bow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kp-gesture { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-4deg); } 100% { transform: translateY(1px) rotate(2deg); } }
@keyframes kp-brazier { 0% { box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(192,128,64,.4); opacity: .8; transform: scale(1) rotate(-1deg); } 50% { box-shadow: 0 0 35px 15px #ffd060, 0 0 80px 30px rgba(255,208,96,.5); opacity: 1; transform: scale(1.05) rotate(1deg); } 100% { box-shadow: 0 0 15px 5px #b07030, 0 0 30px 10px rgba(176,112,48,.3); opacity: .7; transform: scale(0.95) rotate(-2deg); } }

/* Scene: surprise-at-platos-lecture (sp) */
.scn-surprise-at-platos-lecture { background: linear-gradient(180deg, #1c1a28 0%, #0f0d16 100%), radial-gradient(ellipse at 50% 100%, #2a1e30 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-surprise-at-platos-lecture .bg-apse { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #2a1e30 0%, #1a1220 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-surprise-at-platos-lecture .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1220 0%, #0a0810 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-surprise-at-platos-lecture .lectern { position: absolute; bottom: 20%; left: 30%; width: 8%; height: 25%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-surprise-at-platos-lecture .speaker { position: absolute; bottom: 22%; left: 29%; width: 10%; height: 28%; background: linear-gradient(180deg, #c8a880 0%, #8a6848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sp-speak 5s ease-in-out infinite alternate; }
.scn-surprise-at-platos-lecture .listener-1 { position: absolute; bottom: 20%; right: 25%; width: 9%; height: 26%; background: linear-gradient(180deg, #b09070 0%, #6a5040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sp-turn 8s ease-in-out infinite alternate; }
.scn-surprise-at-platos-lecture .listener-2 { position: absolute; bottom: 20%; right: 12%; width: 9%; height: 24%; background: linear-gradient(180deg, #a08878 0%, #5a4840 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sp-lean 6s ease-in-out infinite alternate; }
.scn-surprise-at-platos-lecture .torch { position: absolute; bottom: 30%; left: 45%; width: 4%; height: 12%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, #8a5020 100%); border-radius: 50%; box-shadow: 0 0 25px 10px rgba(192,128,64,.5), 0 0 50px 20px rgba(192,128,64,.2); animation: sp-torch 2.5s ease-in-out infinite alternate; }
@keyframes sp-speak { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sp-turn { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(12deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-lean { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(4px) rotate(-6deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sp-torch { 0% { box-shadow: 0 0 15px 5px #c08040, 0 0 30px 10px rgba(192,128,64,.3); opacity: .8; transform: scale(1) rotate(-2deg); } 50% { box-shadow: 0 0 30px 12px #ffd060, 0 0 60px 25px rgba(255,208,96,.4); opacity: 1; transform: scale(1.1) rotate(3deg); } 100% { box-shadow: 0 0 20px 8px #b07030, 0 0 40px 15px rgba(176,112,48,.2); opacity: .7; transform: scale(0.9) rotate(-1deg); } }

/* Scene: use-of-idea-of-good (ug) */
.scn-use-of-idea-of-good { background: linear-gradient(180deg, #1a141e 0%, #0a0812 100%), radial-gradient(ellipse at 50% 40%, #3a2a3e 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-use-of-idea-of-good .bg-cave { position: absolute; inset: 0 0 20% 0; background: linear-gradient(135deg, #120e1a 0%, #1e1628 50%, #0a0610 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.8); }
.scn-use-of-idea-of-good .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%); }
.scn-use-of-idea-of-good .shadow-q { position: absolute; bottom: 10%; left: 10%; width: 20%; height: 45%; background: linear-gradient(180deg, rgba(30,20,40,.8) 0%, rgba(10,6,16,.9) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: ug-question 12s ease-in-out infinite alternate; }
.scn-use-of-idea-of-good .the-good { position: absolute; bottom: 30%; left: 40%; width: 20%; height: 35%; background: radial-gradient(circle at 50% 50%, #fff0c0 0%, #ffd080 40%, #c08040 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,208,128,.5), 0 0 120px 40px rgba(255,208,128,.2); animation: ug-glow 4s ease-in-out infinite alternate; }
.scn-use-of-idea-of-good .ring { position: absolute; bottom: 38%; left: 42%; width: 16%; height: 20%; border: 2px solid rgba(255,208,128,.4); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,208,128,.2), inset 0 0 20px 5px rgba(255,208,128,.1); animation: ug-ring 20s linear infinite; }
.scn-use-of-idea-of-good .question-mark { position: absolute; bottom: 55%; left: 35%; width: 6%; height: 12%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; opacity: .6; animation: ug-float 7s ease-in-out infinite alternate; }
@keyframes ug-glow { 0% { box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,.3); opacity: .8; transform: scale(.95); } 50% { box-shadow: 0 0 80px 30px #ffd060, 0 0 160px 60px rgba(255,208,96,.5); opacity: 1; transform: scale(1.05); } 100% { box-shadow: 0 0 50px 20px #b07030, 0 0 100px 40px rgba(176,112,48,.2); opacity: .85; transform: scale(1); } }
@keyframes ug-ring { 0% { transform: rotate(0deg) scale(1); opacity: .4; } 50% { transform: rotate(180deg) scale(1.1); opacity: .7; } 100% { transform: rotate(360deg) scale(1); opacity: .4; } }
@keyframes ug-float { 0% { transform: translate(0, 0) rotate(-10deg); opacity: .4; } 50% { transform: translate(10px, -10px) rotate(0deg); opacity: .8; } 100% { transform: translate(-5px, 5px) rotate(10deg); opacity: .5; } }
@keyframes ug-question { 0% { transform: translateX(0) scale(1); opacity: .7; } 50% { transform: translateX(15px) scale(1.05); opacity: .9; } 100% { transform: translateX(-10px) scale(.95); opacity: .6; } }

/* Scene: metaphysical-conception (mc) */
.scn-metaphysical-conception { background: linear-gradient(180deg, #0c0e1a 0%, #04060e 100%), radial-gradient(ellipse at 50% 50%, #1a1c3e 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-metaphysical-conception .bg-void { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0c1a 0%, #02040a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.9); }
.scn-metaphysical-conception .pillar-light { position: absolute; bottom: 10%; left: 40%; width: 20%; height: 80%; background: linear-gradient(180deg, transparent 0%, rgba(200,180,255,.2) 30%, rgba(255,240,200,.4) 60%, rgba(255,200,100,.6) 100%); filter: blur(10px); animation: mc-pillar 6s ease-in-out infinite alternate; }
.scn-metaphysical-conception .swirl-upper { position: absolute; bottom: 60%; left: 45%; width: 10%; height: 20%; border-radius: 50%; border: 2px solid rgba(200,180,255,.3); box-shadow: 0 0 15px 5px rgba(200,180,255,.1); animation: mc-orbit-a 25s linear infinite; }
.scn-metaphysical-conception .swirl-lower { position: absolute; bottom: 30%; left: 45%; width: 10%; height: 20%; border-radius: 50%; border: 1px solid rgba(255,220,150,.3); box-shadow: 0 0 15px 5px rgba(255,220,150,.1); animation: mc-orbit-b 30s linear infinite reverse; }
.scn-metaphysical-conception .figure-mind { position: absolute; bottom: 12%; left: 42%; width: 16%; height: 30%; background: linear-gradient(180deg, #8a7898 0%, #4a3858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: mc-float 8s ease-in-out infinite alternate; }
.scn-metaphysical-conception .thought-a { position: absolute; bottom: 70%; left: 30%; width: 4%; height: 4%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,208,128,.4); animation: mc-drift-a 15s linear infinite alternate; }
.scn-metaphysical-conception .thought-b { position: absolute; bottom: 65%; left: 60%; width: 3%; height: 3%; background: radial-gradient(circle, #a0c0ff 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(160,192,255,.4); animation: mc-drift-b 18s linear infinite alternate-reverse; }
@keyframes mc-pillar { 0% { transform: scaleY(.95) translateY(0); opacity: .6; } 50% { transform: scaleY(1.05) translateY(-5px); opacity: 1; } 100% { transform: scaleY(1) translateY(2px); opacity: .8; } }
@keyframes mc-orbit-a { 0% { transform: rotate(0deg) translateX(30px) rotate(0deg); opacity: .5; } 50% { transform: rotate(180deg) translateX(50px) rotate(-180deg); opacity: .8; } 100% { transform: rotate(360deg) translateX(30px) rotate(-360deg); opacity: .5; } }
@keyframes mc-orbit-b { 0% { transform: rotate(0deg) translateX(40px) rotate(0deg); opacity: .4; } 50% { transform: rotate(-180deg) translateX(20px) rotate(180deg); opacity: .7; } 100% { transform: rotate(-360deg) translateX(40px) rotate(360deg); opacity: .4; } }
@keyframes mc-float { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mc-drift-a { 0% { transform: translateX(0) translateY(0) scale(1); opacity: .3; } 50% { transform: translateX(30px) translateY(-20px) scale(1.5); opacity: .8; } 100% { transform: translateX(60px) translateY(10px) scale(1); opacity: .4; } }
@keyframes mc-drift-b { 0% { transform: translateX(0) translateY(0) scale(1); opacity: .4; } 50% { transform: translateX(-20px) translateY(-30px) scale(1.3); opacity: .9; } 100% { transform: translateX(-50px) translateY(5px) scale(1); opacity: .3; } }

.scn-virtue-body-care {
  background: linear-gradient(180deg, #e8d8c8 0%, #c8b098 100%), radial-gradient(ellipse at 50% 80%, #b89878 0%, transparent 60%);
}
.scn-virtue-body-care .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c4b0 0%, #c4a88c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
}
.scn-virtue-body-care .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 0 0 0 0;
}
.scn-virtue-body-care .bench {
  position: absolute; bottom: 18%; left: 20%; right: 40%; height: 8%;
  background: linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 50%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: vbc-bench 6s ease-in-out infinite alternate;
}
.scn-virtue-body-care .tool {
  position: absolute; bottom: 26%; left: 25%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: vbc-tool 4s ease-in-out infinite alternate;
}
.scn-virtue-body-care .figure {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vbc-figure 3s ease-in-out infinite alternate;
}
.scn-virtue-body-care .lamp {
  position: absolute; bottom: 55%; right: 20%; width: 14px; height: 18px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,.5);
  animation: vbc-lamp 2s ease-in-out infinite alternate;
}
.scn-virtue-body-care .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: vbc-shadow 5s ease-in-out infinite alternate;
}
@keyframes vbc-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes vbc-tool { 0% { transform: rotate(-18deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes vbc-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes vbc-lamp { 0% { opacity: .8; box-shadow: 0 0 20px 5px rgba(192,128,64,.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,192,96,.6); } 100% { opacity: .85; box-shadow: 0 0 25px 8px rgba(192,128,64,.45); } }
@keyframes vbc-shadow { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.1) translateX(2px); opacity: .7; } 100% { transform: scale(1); opacity: .5; } }

.scn-asclepius-statesman {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%), radial-gradient(ellipse at 50% 70%, #c8b898 0%, transparent 60%);
}
.scn-asclepius-statesman .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0b8a0 100%);
}
.scn-asclepius-statesman .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(90deg, #8a6a4a 0%, #7a5a3a 50%, #8a6a4a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: asm-table 10s ease-in-out infinite alternate;
}
.scn-asclepius-statesman .patient {
  position: absolute; bottom: 26%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #b09880 0%, #907060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asm-patient 8s ease-in-out infinite alternate;
}
.scn-asclepius-statesman .healer {
  position: absolute; bottom: 26%; left: 52%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asm-healer 6s ease-in-out infinite alternate;
}
.scn-asclepius-statesman .cup {
  position: absolute; bottom: 32%; left: 46%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c0a080 0%, #a08060 100%);
  border-radius: 0 0 30% 30%;
  animation: asm-cup 4s ease-in-out infinite alternate;
}
.scn-asclepius-statesman .light {
  position: absolute; top: 10%; left: 40%; right: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,230,180,.6) 0%, transparent 80%);
  filter: blur(20px);
  animation: asm-light 12s ease-in-out infinite alternate;
}
@keyframes asm-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes asm-patient { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes asm-healer { 0% { transform: translateX(0) rotate(1deg) scale(1); } 50% { transform: translateX(-3px) rotate(-1deg) scale(1.02); } 100% { transform: translateX(0) rotate(1deg) scale(1); } }
@keyframes asm-cup { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes asm-light { 0% { opacity: .6; transform: scale(.95); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .7; transform: scale(1); } }

.scn-sons-of-asclepius-troy {
  background: linear-gradient(180deg, #d8a060 0%, #b08040 40%, #7a5020 100%), radial-gradient(ellipse at 50% 30%, #e0b070 0%, transparent 70%);
}
.scn-sons-of-asclepius-troy .tent {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,160,100,.4) 0%, transparent 100%);
}
.scn-sons-of-asclepius-troy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 0 0 0 0;
}
.scn-sons-of-asclepius-troy .wound {
  position: absolute; bottom: 26%; left: 40%; width: 14px; height: 8px;
  background: #a03a1a;
  border-radius: 20% 50% 50% 20%;
  box-shadow: 0 0 12px 4px rgba(160,58,26,.6);
  animation: sat-wound 3s ease-in-out infinite alternate;
}
.scn-sons-of-asclepius-troy .warrior {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #8a6040 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sat-warrior 5s ease-in-out infinite alternate;
}
.scn-sons-of-asclepius-troy .healer {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sat-healer 4s ease-in-out infinite alternate;
}
.scn-sons-of-asclepius-troy .torch {
  position: absolute; bottom: 50%; right: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #8a6a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
}
.scn-sons-of-asclepius-troy .torch::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 22px; height: 22px;
  background: radial-gradient(circle, #f0a030 0%, #d08020 50%, transparent 100%);
  border-radius: 50%;
  animation: sat-torch 2s ease-in-out infinite alternate;
}
@keyframes sat-wound { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: .85; } }
@keyframes sat-warrior { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sat-healer { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes sat-torch { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); opacity: .85; } }

.scn-pindar-error-asclepius {
  background: linear-gradient(180deg, #d0b898 0%, #b09878 40%, #8a6a4a 100%), radial-gradient(ellipse at 50% 60%, #c0a080 0%, transparent 70%);
}
.scn-pindar-error-asclepius .hall {
  position: absolute; inset: 0 10% 0 10%;
  background: linear-gradient(180deg, #c8ac90 0%, #a08060 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
}
.scn-pindar-error-asclepius .rich-man {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pea-rich 6s ease-in-out infinite alternate;
}
.scn-pindar-error-asclepius .figure {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pea-figure 4s ease-in-out infinite alternate;
}
.scn-pindar-error-asclepius .pouch {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pea-pouch 5s ease-in-out infinite alternate;
}
.scn-pindar-error-asclepius .pillar {
  position: absolute; bottom: 0; left: 15%; width: 14px; height: 80%;
  background: linear-gradient(90deg, #b09880 0%, #d0b8a0 30%, #b09880 60%, #8a7058 100%);
  border-radius: 4px;
}
.scn-pindar-error-asclepius .glow {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,120,.5) 0%, transparent 80%);
  filter: blur(30px);
  animation: pea-glow 7s ease-in-out infinite alternate;
}
@keyframes pea-rich { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pea-figure { 0% { transform: translateX(0) rotate(1deg) scale(1); } 50% { transform: translateX(-4px) rotate(-1deg) scale(1.02); } 100% { transform: translateX(0) rotate(1deg) scale(1); } }
@keyframes pea-pouch { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes pea-glow { 0% { opacity: .6; transform: scale(.95); } 50% { opacity: .9; transform: scale(1.1); } 100% { opacity: .7; transform: scale(1); } }

/* human-nature-small */
.scn-human-nature-small {
  background: linear-gradient(180deg, #2a1e12 0%, #1a140e 60%, #0d0a08 100%),
              radial-gradient(ellipse at 50% 80%, #4a3520 0%, transparent 70%);
}
.scn-human-nature-small .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1a, #2e1f14); }
.scn-human-nature-small .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a120e, #2a1e12); }
.scn-human-nature-small .table { position:absolute; bottom:20%; left:20%; right:20%; height:6%; background: #4a3820; border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-human-nature-small .hand { position:absolute; bottom:26%; left:38%; width:30px; height:18px; background: linear-gradient(180deg, #b88a60, #7a5a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: hns-hand 6s ease-in-out infinite; }
.scn-human-nature-small .shard { position:absolute; bottom:22%; width:10px; height:14px; background: #5a4a30; border-radius: 20% 60% 40% 40%; opacity:0.7; }
.scn-human-nature-small .shard-1 { left:45%; animation: hns-shard1 8s ease-in-out infinite; }
.scn-human-nature-small .shard-2 { left:55%; animation: hns-shard2 8s ease-in-out infinite 2s; }
.scn-human-nature-small .shard-3 { left:35%; animation: hns-shard3 8s ease-in-out infinite 4s; }
.scn-human-nature-small .candle { position:absolute; bottom:20%; left:70%; width:16px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 30%, #8a7a60 100%); border-radius: 10% 10% 20% 20%; }
.scn-human-nature-small .glow { position:absolute; top:20%; left:68%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,160,.4), transparent 70%); border-radius:50%; filter:blur(6px); animation: hns-glow 4s ease-in-out infinite alternate; }
@keyframes hns-hand { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg) scale(1.02); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes hns-shard1 { 0% { transform: translateY(0) rotate(0deg); opacity:0.7; } 50% { transform: translateY(-6px) rotate(10deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.7; } }
@keyframes hns-shard2 { 0% { transform: translateY(0) rotate(0deg); opacity:0.7; } 50% { transform: translateY(-4px) rotate(-8deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.7; } }
@keyframes hns-shard3 { 0% { transform: translateY(0) rotate(0deg); opacity:0.7; } 50% { transform: translateY(-8px) rotate(6deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.7; } }
@keyframes hns-glow { 0% { transform: scale(1); opacity:.4; } 100% { transform: scale(1.2); opacity:.7; } }

/* imitation-becomes-nature */
.scn-imitation-becomes-nature {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #1a1410 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a20 0%, transparent 80%);
}
.scn-imitation-becomes-nature .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2018, #0a0808); }
.scn-imitation-becomes-nature .bg-mirror { position:absolute; top:10%; left:50%; width:140px; height:200px; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a22 0%, #4a3a2e 50%, #2a1e18 100%); border-radius: 20% 20% 10% 10%; border: 2px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-imitation-becomes-nature .figure { position:absolute; bottom:30%; left:50%; width:40px; height:80px; transform:translateX(-60%); background: linear-gradient(180deg, #6a5a4a, #2a2018); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ibn-fig 8s ease-in-out infinite; }
.scn-imitation-becomes-nature .reflection { position:absolute; bottom:30%; left:50%; width:40px; height:80px; transform:translateX(-40%) scaleX(-1); background: linear-gradient(180deg, #5a4a3a, #1a1410); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.5; animation: ibn-refl 8s ease-in-out infinite; }
.scn-imitation-becomes-nature .mask { position:absolute; top:30%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a, #4a3a2a); border-radius: 50% 50% 30% 30%; opacity:0.8; animation: ibn-mask 6s ease-in-out infinite; }
.scn-imitation-becomes-nature .shadow { position:absolute; bottom:20%; left:50%; width:60px; height:10px; transform:translateX(-50%); background:rgba(0,0,0,.4); border-radius:50%; animation: ibn-shadow 8s ease-in-out infinite; }
.scn-imitation-becomes-nature .lamp { position:absolute; top:5%; right:20%; width:20px; height:30px; background: linear-gradient(180deg, #e8c080, #a08050); border-radius: 20% 20% 10% 10%; }
.scn-imitation-becomes-nature .glow { position:absolute; top:0%; right:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.3), transparent 70%); filter:blur(10px); animation: ibn-glow 4s ease-in-out infinite alternate; }
@keyframes ibn-fig { 0% { transform: translateX(-60%) translateY(0); } 50% { transform: translateX(-60%) translateY(-4px) scale(1.01); } 100% { transform: translateX(-60%) translateY(0); } }
@keyframes ibn-refl { 0% { transform: translateX(-40%) scaleX(-1) translateY(0); opacity:0.4; } 50% { transform: translateX(-40%) scaleX(-1) translateY(3px); opacity:0.6; } 100% { transform: translateX(-40%) scaleX(-1) translateY(0); opacity:0.4; } }
@keyframes ibn-mask { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes ibn-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.8); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes ibn-glow { 0% { transform: scale(1); opacity:.3; } 100% { transform: scale(1.3); opacity:.6; } }

/* slaves-and-bad-men */
.scn-slaves-and-bad-men {
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 60%, #080605 100%),
              radial-gradient(ellipse at 50% 100%, #2a1e18 0%, transparent 70%);
}
.scn-slaves-and-bad-men .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a14, #1a0e0a); }
.scn-slaves-and-bad-men .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0a0808, #1a1210); }
.scn-slaves-and-bad-men .chain-left { position:absolute; bottom:40%; left:15%; width:30%; height:4px; background: linear-gradient(90deg, #3a2e24, #2a1e18); border-radius: 2px; animation: sbm-chain 10s ease-in-out infinite; }
.scn-slaves-and-bad-men .chain-right { position:absolute; bottom:40%; right:15%; width:30%; height:4px; background: linear-gradient(90deg, #2a1e18, #3a2e24); border-radius: 2px; animation: sbm-chain 10s ease-in-out infinite reverse; }
.scn-slaves-and-bad-men .figure-f { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2e, #2a1e18); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sbm-figf 6s ease-in-out infinite; }
.scn-slaves-and-bad-men .figure-s { position:absolute; bottom:30%; right:30%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a, #3a2a20); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sbm-figs 6s ease-in-out infinite 3s; }
.scn-slaves-and-bad-men .vice { position:absolute; bottom:20%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: #3a2e24; border-radius: 30%; box-shadow: 0 0 0 3px #1a120e; animation: sbm-vice 4s ease-in-out infinite alternate; }
.scn-slaves-and-bad-men .lamp { position:absolute; top:5%; left:50%; width:20px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b070, #7a5a30); border-radius: 20% 20% 10% 10%; }
@keyframes sbm-chain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sbm-figf { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sbm-figs { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(-2deg); } 66% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sbm-vice { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.2) rotate(10deg); } }

/* artificers-and-sounds */
.scn-artificers-and-sounds {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-artificers-and-sounds .bg-workshop { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1e16, #0e0a08); }
.scn-artificers-and-sounds .anvil { position:absolute; bottom:15%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #4a3e34, #2a2018); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); }
.scn-artificers-and-sounds .hammer { position:absolute; bottom:40%; left:25%; width:10px; height:50px; background: linear-gradient(180deg, #6a5a4a, #2a1e18); border-radius:10%; transform-origin: 50% 100%; animation: aas-hammer 3s ease-in-out infinite; }
.scn-artificers-and-sounds .horse-head { position:absolute; bottom:20%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2e, #2a1e18); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: aas-horse 8s ease-in-out infinite; }
.scn-artificers-and-sounds .bellows { position:absolute; bottom:10%; left:45%; width:30px; height:20px; background: #3a2a20; border-radius: 30% 30% 10% 10%; animation: aas-bellows 5s ease-in-out infinite; }
.scn-artificers-and-sounds .forge-glow { position:absolute; top:20%; left:35%; width:80px; height:80px; background: radial-gradient(circle, #d09050 0%, rgba(200,100,40,.2) 40%, transparent 70%); filter:blur(8px); animation: aas-glow 6s ease-in-out infinite alternate; }
.scn-artificers-and-sounds .spark { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #e8b060, transparent); border-radius:50%; }
.scn-artificers-and-sounds .spark-1 { top:30%; left:40%; animation: aas-spark1 2s linear infinite; }
.scn-artificers-and-sounds .spark-2 { top:35%; left:45%; animation: aas-spark2 2.5s linear infinite 0.5s; }
.scn-artificers-and-sounds .spark-3 { top:25%; left:50%; animation: aas-spark3 3s linear infinite 1s; }
@keyframes aas-hammer { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes aas-horse { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(0); } }
@keyframes aas-bellows { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.7); } 100% { transform: scaleX(1); } }
@keyframes aas-glow { 0% { opacity:.5; transform: scale(1); } 100% { opacity:.8; transform: scale(1.3); } }
@keyframes aas-spark1 { 0% { transform: translate(0,0) scale(0); opacity:1; } 100% { transform: translate(40px,-80px) scale(2); opacity:0; } }
@keyframes aas-spark2 { 0% { transform: translate(0,0) scale(0); opacity:1; } 100% { transform: translate(-30px,-90px) scale(2.5); opacity:0; } }
@keyframes aas-spark3 { 0% { transform: translate(0,0) scale(0); opacity:1; } 100% { transform: translate(20px,-60px) scale(1.5); opacity:0; } }

.scn-god-truly-good {
  background: linear-gradient(180deg, #1f1a24 0%, #2a2330 40%, #1b1420 100%),
              radial-gradient(ellipse at 50% 100%, #3a3042 0%, transparent 60%);
}
.scn-god-truly-good .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c2535 0%, #1b1420 100%);
  animation: s1-wall 20s ease-in-out infinite alternate;
}
.scn-god-truly-good .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a2f40 0%, #241d2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-god-truly-good .desk {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 50%;
  height: 10%;
  background: linear-gradient(180deg, #4a3e4e 0%, #2f2635 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-god-truly-good .candle {
  position: absolute;
  bottom: 24%;
  left: 48%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 50%, #a08070 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(232,213,176,0.4);
  animation: s1-candle 6s ease-in-out infinite;
}
.scn-god-truly-good .flame {
  position: absolute;
  bottom: 38%;
  left: 48%;
  width: 12px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #fff8e0 0%, #ffd080 50%, #e8a040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 -8px 30px 6px #ffd080, 0 -20px 60px 15px rgba(255,208,128,0.3);
  animation: s1-flame 2s ease-in-out infinite alternate;
}
.scn-god-truly-good .chair {
  position: absolute;
  bottom: 18%;
  left: 60%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #3a2e3e 0%, #1f1825 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: s1-chair 15s ease-in-out infinite alternate;
}
.scn-god-truly-good .window {
  position: absolute;
  top: 12%;
  left: 30%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #1a2330 0%, #0d1420 100%);
  border: 3px solid #3a2e3e;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(50,80,120,0.2);
  animation: s1-window 12s ease-in-out infinite alternate;
}
.scn-god-truly-good .book {
  position: absolute;
  bottom: 21%;
  left: 37%;
  width: 30px;
  height: 14px;
  background: linear-gradient(180deg, #805030 0%, #603820 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.6);
  animation: s1-book 8s ease-in-out infinite;
}
@keyframes s1-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.65 } }
@keyframes s1-candle { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes s1-flame { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.08) rotate(5deg); opacity:1 } 100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); opacity:0.85 } }
@keyframes s1-chair { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes s1-window { 0% { box-shadow: inset 0 0 20px rgba(50,80,120,0.2) } 50% { box-shadow: inset 0 0 40px rgba(80,120,180,0.3) } 100% { box-shadow: inset 0 0 15px rgba(30,50,80,0.15) } }
@keyframes s1-book { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-god-not-author-of-evil {
  background: linear-gradient(180deg, #111318 0%, #1a1c22 40%, #0c0e12 100%),
              radial-gradient(ellipse at 30% 70%, #2a3040 0%, transparent 60%);
}
.scn-god-not-author-of-evil .bg-shadow {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,0.4) 100%);
  animation: s2-shadow 30s ease-in-out infinite alternate;
}
.scn-god-not-author-of-evil .pedestal {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1c24 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-god-not-author-of-evil .statue {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 30px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3e4a 0%, #1e2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: s2-statue 12s ease-in-out infinite alternate;
}
.scn-god-not-author-of-evil .drape {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #1a1c24 0%, #0e1016 100%);
  border-radius: 0 0 40% 60% / 0 0 60% 40%;
  filter: blur(2px);
  animation: s2-drape 15s ease-in-out infinite;
}
.scn-god-not-author-of-evil .light-shaft {
  position: absolute;
  top: 0;
  left: 40%;
  width: 20%;
  height: 100%;
  background: linear-gradient(180deg, rgba(200,210,230,0.05) 0%, transparent 80%);
  filter: blur(8px);
  animation: s2-light 20s ease-in-out infinite alternate;
}
.scn-god-not-author-of-evil .fog-base {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,70,90,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: s2-fog 25s ease-in-out infinite alternate;
}
@keyframes s2-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes s2-statue { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes s2-drape { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.03) } }
@keyframes s2-light { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes s2-fog { 0% { opacity: 0.2 } 50% { opacity: 0.4 } 100% { opacity: 0.15 } }

.scn-zeus-casks {
  background: linear-gradient(180deg, #141018 0%, #1c1822 40%, #0a0810 100%),
              radial-gradient(ellipse at 50% 80%, #2a2230 0%, transparent 50%);
}
.scn-zeus-casks .floor-dark {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1c1822 0%, #0e0a14 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-zeus-casks .cask-left {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #3a2e3a 0%, #1f1822 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: rotate(-5deg);
}
.scn-zeus-casks .cask-right {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #2e2230 0%, #16101a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: rotate(5deg);
}
.scn-zeus-casks .content-left {
  position: absolute;
  bottom: 30%;
  left: 33%;
  width: 48px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #b0a890 0%, #8a7e6e 50%, #554a44 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: s3-mixed 8s ease-in-out infinite alternate;
}
.scn-zeus-casks .content-right {
  position: absolute;
  bottom: 30%;
  right: 33%;
  width: 48px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #1a1820 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: s3-ill 8s ease-in-out infinite alternate-reverse;
}
.scn-zeus-casks .shadow-left {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 70px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: s3-shadow 12s ease-in-out infinite alternate;
}
.scn-zeus-casks .shadow-right {
  position: absolute;
  bottom: 18%;
  right: 28%;
  width: 70px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: s3-shadow 12s ease-in-out infinite alternate-reverse;
}
@keyframes s3-mixed { 0% { transform: scaleY(1) rotate(0deg); opacity:0.7 } 50% { transform: scaleY(1.05) rotate(2deg); opacity:0.9 } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.6 } }
@keyframes s3-ill { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.04); opacity:1 } 100% { transform: scaleY(0.96); opacity:0.7 } }
@keyframes s3-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-niobe-and-pelops {
  background: linear-gradient(180deg, #1a1520 0%, #241e2c 40%, #0e0a14 100%),
              radial-gradient(ellipse at 50% 0%, #2a2230 0%, transparent 70%);
}
.scn-niobe-and-pelops .wall-stone {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2230 0%, #1a1520 100%);
  border-bottom: 4px solid #3a3040;
}
.scn-niobe-and-pelops .pillar-left {
  position: absolute;
  bottom: 20%;
  left: 18%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #3a3240 0%, #261e2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
}
.scn-niobe-and-pelops .pillar-right {
  position: absolute;
  bottom: 20%;
  right: 18%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #3a3240 0%, #261e2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
}
.scn-niobe-and-pelops .door {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 20%;
  height: 60%;
  background: linear-gradient(180deg, #1a1520 0%, #0e0a14 100%);
  border: 3px solid #2a2230;
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-niobe-and-pelops .figure-niobe {
  position: absolute;
  bottom: 22%;
  left: 34%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #2a2230 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-weep 6s ease-in-out infinite;
}
.scn-niobe-and-pelops .figure-pelops {
  position: absolute;
  bottom: 22%;
  right: 34%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #2a2230 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-weep 6s ease-in-out infinite alternate-reverse;
}
.scn-niobe-and-pelops .veil {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, rgba(60,50,70,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: s4-veil 15s ease-in-out infinite alternate;
}
@keyframes s4-weep { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes s4-veil { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* spartan-superiority-misattributed */
.scn-spartan-superiority-misattributed {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #3a2a4e 100%), radial-gradient(ellipse at 50% 100%, #3a2a4e 0%, transparent 70%);
}
.scn-spartan-superiority-misattributed .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1e1e3a 100%);
  animation: ss1-wall 20s ease-in-out infinite alternate;
}
.scn-spartan-superiority-misattributed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-spartan-superiority-misattributed .window {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c08040 0%, #7a5020 60%, transparent 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 40px 10px rgba(192,128,64,0.4);
  animation: ss1-glow 4s ease-in-out infinite alternate;
}
.scn-spartan-superiority-misattributed .light-shaft {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(192,128,64,0.08) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0 100%);
  animation: ss1-shaft 6s ease-in-out infinite alternate;
}
.scn-spartan-superiority-misattributed .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss1-breathe-l 4s ease-in-out infinite alternate;
}
.scn-spartan-superiority-misattributed .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #222240 0%, #0e0e20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss1-breathe-r 4s ease-in-out infinite alternate 0.5s;
}
.scn-spartan-superiority-misattributed .bench {
  position: absolute; bottom: 26%; left: 25%; right: 25%; height: 8px;
  background: linear-gradient(90deg, #3a2a1a, #4a3a2a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ss1-bench 12s ease-in-out infinite;
}
.scn-spartan-superiority-misattributed .dust {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: ss1-dust 30s linear infinite;
}
@keyframes ss1-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ss1-glow {
  0% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 60px 15px rgba(192,128,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px rgba(192,128,64,0.4); opacity: 0.8; }
}
@keyframes ss1-shaft {
  0% { transform: translateX(-50%) scaleX(0.95); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleX(0.98); opacity: 0.7; }
}
@keyframes ss1-breathe-l {
  0% { transform: translateY(0) scaleY(1) rotate(-1deg); }
  50% { transform: translateY(-2px) scaleY(1.02) rotate(0deg); }
  100% { transform: translateY(0) scaleY(1) rotate(1deg); }
}
@keyframes ss1-breathe-r {
  0% { transform: translateY(0) scaleY(1) rotate(1deg); }
  50% { transform: translateY(-2px) scaleY(1.02) rotate(0deg); }
  100% { transform: translateY(0) scaleY(1) rotate(-1deg); }
}
@keyframes ss1-bench {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px); }
  100% { transform: translateX(-2px); }
}
@keyframes ss1-dust {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate(100px, -30px) rotate(360deg); opacity: 0; }
}

/* sparta-not-productive */
.scn-sparta-not-productive {
  background: linear-gradient(180deg, #1a1a2e 0%, #242440 50%, #2a2a4e 100%), radial-gradient(circle at 50% 30%, #2a2a4e 0%, transparent 80%);
}
.scn-sparta-not-productive .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12122a 0%, #1a1a38 100%);
  animation: sn2-bg 15s ease-in-out infinite alternate;
}
.scn-sparta-not-productive .plinth {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: sn2-plinth 8s ease-in-out infinite;
}
.scn-sparta-not-productive .column {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: sn2-column 10s ease-in-out infinite alternate;
}
.scn-sparta-not-productive .figure {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 110px;
  transform: translateX(-50%) scale(0.9);
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn2-figure 6s ease-in-out infinite alternate;
}
.scn-sparta-not-productive .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: sn2-shadow 4s ease-in-out infinite alternate;
}
.scn-sparta-not-productive .highlight {
  position: absolute; top: 20%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(135deg, rgba(200,200,240,0.05) 0%, transparent 100%);
  animation: sn2-highlight 12s ease-in-out infinite alternate;
}
.scn-sparta-not-productive .spear {
  position: absolute; bottom: 32%; left: 50%; width: 4px; height: 90px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 2px;
  animation: sn2-spear 5s ease-in-out infinite alternate;
}
@keyframes sn2-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sn2-plinth {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes sn2-column {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.03); }
  100% { transform: translateX(-50%) scaleX(0.97); }
}
@keyframes sn2-figure {
  0% { transform: translateX(-50%) scale(0.9) rotate(-1deg); }
  50% { transform: translateX(-50%) scale(0.92) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.9) rotate(1deg); }
}
@keyframes sn2-shadow {
  0% { opacity: 0.3; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 0.6; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scaleX(0.9); }
}
@keyframes sn2-highlight {
  0% { opacity: 0.2; transform: rotate(0deg); }
  50% { opacity: 0.5; transform: rotate(5deg); }
  100% { opacity: 0.3; transform: rotate(-3deg); }
}
@keyframes sn2-spear {
  0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-3deg) scaleY(0.98); }
}

/* progress-from-individuals */
.scn-progress-from-individuals {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-progress-from-individuals .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  animation: pi3-wall 18s ease-in-out infinite alternate;
}
.scn-progress-from-individuals .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(90deg, #4a3a2a, #5a4a3a, #4a3a2a);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: pi3-table 10s ease-in-out infinite;
}
.scn-progress-from-individuals .candle-base {
  position: absolute; bottom: 27%; left: 50%; width: 12px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: pi3-base 8s ease-in-out infinite;
}
.scn-progress-from-individuals .flame {
  position: absolute; bottom: 42%; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #f0d060 0%, #c08040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(240,208,96,0.5);
  animation: pi3-flame 3s ease-in-out infinite alternate;
}
.scn-progress-from-individuals .light-pool {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%) scale(1.2);
  background: radial-gradient(ellipse, rgba(240,208,96,0.08) 0%, transparent 100%);
  border-radius: 50%;
  animation: pi3-pool 5s ease-in-out infinite alternate;
}
.scn-progress-from-individuals .figure {
  position: absolute; bottom: 23%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi3-figure 7s ease-in-out infinite alternate;
}
.scn-progress-from-individuals .book {
  position: absolute; bottom: 26%; left: 40%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pi3-book 12s ease-in-out infinite alternate;
}
.scn-progress-from-individuals .particle {
  position: absolute; top: 30%; left: 40%; width: 3px; height: 3px;
  background: rgba(240,208,96,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: pi3-particle 25s linear infinite;
}
@keyframes pi3-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pi3-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pi3-base {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes pi3-flame {
  0% { transform: translateX(-50%) scaleY(0.8) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9) rotate(2deg); opacity: 0.9; }
}
@keyframes pi3-pool {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1.1); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.3); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1.0); }
}
@keyframes pi3-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pi3-book {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-6deg) scaleX(1.05); }
  100% { transform: rotate(-12deg) scaleX(0.95); }
}
@keyframes pi3-particle {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.6; }
  100% { transform: translate(80px, -50px) rotate(360deg); opacity: 0; }
}

/* population-problem */
.scn-population-problem {
  background: linear-gradient(180deg, #12122a 0%, #1a1a3a 50%, #24244a 100%), radial-gradient(circle at 50% 20%, #24244a 0%, transparent 80%);
}
.scn-population-problem .bg-depth {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e22 0%, #1a1a3a 100%);
  animation: pp4-bg 20s ease-in-out infinite alternate;
}
.scn-population-problem .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-population-problem .arch {
  position: absolute; top: 5%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: pp4-arch 15s ease-in-out infinite alternate;
}
.scn-population-problem .column-left {
  position: absolute; bottom: 30%; left: 20%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: pp4-col-l 12s ease-in-out infinite alternate;
}
.scn-population-problem .column-right {
  position: absolute; bottom: 30%; right: 20%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: pp4-col-r 12s ease-in-out infinite alternate 0.5s;
}
.scn-population-problem .figure-fore {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%) scale(1.2);
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp4-fore 8s ease-in-out infinite alternate;
}
.scn-population-problem .figure-mid {
  position: absolute; bottom: 20%; left: 35%; width: 38px; height: 70px;
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp4-mid 8s ease-in-out infinite alternate 0.3s;
}
.scn-population-problem .figure-back {
  position: absolute; bottom: 22%; left: 60%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp4-back 8s ease-in-out infinite alternate 0.6s;
}
.scn-population-problem .glare {
  position: absolute; top: 0; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,200,255,0.06) 0%, transparent 100%);
  animation: pp4-glare 10s ease-in-out infinite alternate;
}
@keyframes pp4-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pp4-arch {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes pp4-col-l {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes pp4-col-r {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes pp4-fore {
  0% { transform: translateX(-50%) scale(1.2) rotate(-1deg); }
  50% { transform: translateX(-50%) scale(1.22) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1.2) rotate(1deg); }
}
@keyframes pp4-mid {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(1deg); }
}
@keyframes pp4-back {
  0% { transform: rotate(1deg); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes pp4-glare {
  0% { opacity: 0.1; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 0.3; transform: translateX(-50%) scaleX(1.2); }
  100% { opacity: 0.2; transform: translateX(-50%) scaleX(0.8); }
}

/* one block per scene id. Append to style.css. */
.scn-power-of-music { background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 70%); }
.scn-power-of-music .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(26,16,16,.6) 100%); }
.scn-power-of-music .window { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at center, #4a3a3a 0%, #2a1a1a 100%); border:4px solid #5a3a2a; border-radius:50% 50% 0 0; animation: pm-window 12s ease-in-out infinite alternate; }
.scn-power-of-music .col { position:absolute; left:25%; top:0; width:8%; height:80%; background: linear-gradient(90deg, #3a2a2a 0%, #5a3a2a 50%, #3a2a2a 100%); border-radius:4px; box-shadow: 0 0 20px rgba(0,0,0,.4); }
.scn-power-of-music .sitter { position:absolute; bottom:10%; left:20%; width:20%; height:40%; background: #1a1010; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-sway 8s ease-in-out infinite; }
.scn-power-of-music .lyre-player { position:absolute; bottom:10%; right:25%; width:18%; height:45%; background: #1a1010; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-sway 10s ease-in-out infinite reverse; }
.scn-power-of-music .lyre-instr { position:absolute; bottom:30%; right:28%; width:6%; height:12%; background: #c08040; border-radius: 50%; box-shadow: 0 0 12px 2px #c08040; animation: pm-strum 2s ease-in-out infinite; }
.scn-power-of-music .scroll { position:absolute; bottom:5%; left:40%; width:12%; height:6%; background: #b87878; border-radius: 20%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: pm-float 20s ease-in-out infinite; }
.scn-power-of-music .glow { position:absolute; top:5%; left:45%; width:10%; height:10%; background: radial-gradient(circle, rgba(192,128,64,.3) 0%, transparent 70%); animation: pm-glow 6s ease-in-out infinite alternate; }
@keyframes pm-window { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.02); opacity:1 } 100% { transform: scaleY(1); opacity:.85 } }
@keyframes pm-sway { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pm-strum { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes pm-float { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pm-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.95) } }

.scn-mind-controls-body { background: linear-gradient(180deg, #1a1010 0%, #2a1a2a 50%, #1a1010 100%), radial-gradient(circle at 50% 50%, #3a2a3a 0%, transparent 60%); }
.scn-mind-controls-body .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(26,16,16,.5) 100%); }
.scn-mind-controls-body .aura { position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(184,120,120,.15) 0%, transparent 70%); animation: mcb-aura 8s ease-in-out infinite alternate; }
.scn-mind-controls-body .head { position:absolute; bottom:30%; right:30%; width:15%; height:25%; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcb-sway 12s ease-in-out infinite; }
.scn-mind-controls-body .torso { position:absolute; bottom:10%; left:35%; width:20%; height:30%; background: #2a1a1a; border-radius: 20% 20% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: mcb-sway 14s ease-in-out infinite reverse; }
.scn-mind-controls-body .mdot { position:absolute; width:6px; height:6px; background: #e0c060; border-radius:50%; box-shadow: 0 0 8px 2px #e0c060; }
.scn-mind-controls-body .mdot-a { top:25%; left:40%; animation: mcb-float-a 15s linear infinite; }
.scn-mind-controls-body .mdot-b { top:35%; left:55%; animation: mcb-float-b 18s linear infinite; }
.scn-mind-controls-body .hdot { position:absolute; width:6px; height:6px; background: #b87878; border-radius:50%; box-shadow: 0 0 8px 2px #b87878; }
.scn-mind-controls-body .hdot-a { bottom:25%; right:40%; animation: mcb-float-a 20s linear infinite reverse; }
.scn-mind-controls-body .hdot-b { bottom:20%; right:25%; animation: mcb-float-b 22s linear infinite; }
.scn-mind-controls-body .scale { position:absolute; bottom:45%; left:50%; width:20%; height:8%; margin-left:-10%; background: #5a3a2a; clip-path: polygon(0 50%, 100% 50%, 80% 0, 20% 0); transform-origin: bottom center; animation: mcb-scale 10s ease-in-out infinite; }
@keyframes mcb-aura { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }
@keyframes mcb-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes mcb-float-a { 0% { transform: translate(0,0) scale(1); opacity:0 } 25% { opacity:1 } 75% { opacity:1 } 100% { transform: translate(40px,-60px) scale(.5); opacity:0 } }
@keyframes mcb-float-b { 0% { transform: translate(0,0) scale(.5); opacity:0 } 25% { opacity:.8 } 75% { opacity:.8 } 100% { transform: translate(-30px,-80px) scale(1); opacity:0 } }
@keyframes mcb-scale { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }

.scn-plato-on-medicine { background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 80%); }
.scn-plato-on-medicine .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(26,16,16,.4) 100%); }
.scn-plato-on-medicine .shelf { position:absolute; bottom:30%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 6px 16px rgba(0,0,0,.6); }
.scn-plato-on-medicine .book { position:absolute; bottom:36%; left:20%; width:15%; height:20%; background: #702243; border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: pom-sway 18s ease-in-out infinite; }
.scn-plato-on-medicine .mortar { position:absolute; bottom:36%; left:45%; width:18%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 0 0 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-plato-on-medicine .bot { position:absolute; bottom:36%; width:10%; height:25%; border-radius: 20% 20% 10% 10%; opacity:.9; }
.scn-plato-on-medicine .bot-a { left:68%; background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); animation: pom-float 14s ease-in-out infinite; }
.scn-plato-on-medicine .bot-b { left:80%; width:8%; height:18%; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%); animation: pom-float 18s ease-in-out infinite reverse; }
.scn-plato-on-medicine .herb { position:absolute; top:10%; left:75%; width:4%; height:45%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: pom-sway 10s ease-in-out infinite; }
.scn-plato-on-medicine .candle { position:absolute; bottom:38%; left:60%; width:4%; height:10%; background: linear-gradient(180deg, #e0c060 0%, #c08040 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 24px 4px rgba(224,192,96,.4); animation: pom-glow 4s ease-in-out infinite alternate; }
@keyframes pom-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pom-float { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pom-glow { 0% { box-shadow: 0 0 16px 2px rgba(224,192,96,.3); opacity:.7 } 50% { box-shadow: 0 0 36px 8px rgba(224,192,96,.6); opacity:1 } 100% { box-shadow: 0 0 20px 4px rgba(224,192,96,.4); opacity:.8 } }

.scn-lesser-matters-of-style { background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 30%, #3a2a2a 100%), radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%); }
.scn-lesser-matters-of-style .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(26,16,16,.5) 100%); }
.scn-lesser-matters-of-style .desk { position:absolute; bottom:15%; left:5%; width:90%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 -8px 30px rgba(0,0,0,.6); }
.scn-lesser-matters-of-style .scribe { position:absolute; bottom:25%; left:30%; width:20%; height:40%; background: #1a1010; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lms-rock 9s ease-in-out infinite; }
.scn-lesser-matters-of-style .hand { position:absolute; bottom:30%; left:38%; width:6%; height:10%; background: #2a1a1a; border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: lms-write 4s ease-in-out infinite; }
.scn-lesser-matters-of-style .lamp { position:absolute; bottom:40%; left:65%; width:8%; height:12%; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); }
.scn-lesser-matters-of-style .glow { position:absolute; bottom:35%; left:60%; width:20%; height:25%; background: radial-gradient(circle, rgba(192,128,64,.2) 0%, transparent 70%); animation: lms-glow 5s ease-in-out infinite alternate; }
.scn-lesser-matters-of-style .spile { position:absolute; bottom:18%; height:5%; border-radius: 10%; background: #b87878; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-lesser-matters-of-style .spile-a { left:70%; width:10%; animation: lms-float 20s ease-in-out infinite; }
.scn-lesser-matters-of-style .spile-b { left:82%; width:8%; animation: lms-float 25s ease-in-out infinite reverse; }
@keyframes lms-rock { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes lms-write { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(8px,-2px) rotate(5deg) } 50% { transform: translate(16px,0) rotate(0deg) } 75% { transform: translate(8px,-2px) rotate(-5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes lms-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes lms-float { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-art-and-religion {
  background: 
    linear-gradient(180deg, #2c1e14 0%, #1a110a 40%, #0d0805 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-art-and-religion .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1c120c 100%);
  animation: ar-wall 20s ease-in-out infinite alternate;
}
.scn-art-and-religion .arch {
  position: absolute; top: 5%; left: 25%; right: 25%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1e14 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-art-and-religion .art-frame {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3);
  animation: ar-frame 12s ease-in-out infinite alternate;
}
.scn-art-and-religion .art-image {
  position: absolute; top: 18%; left: 37.5%; width: 25%; height: 34%;
  background: radial-gradient(ellipse at 40% 30%, #7a6a4a 0%, #4a3a2a 50%, #2a1a10 100%);
  border-radius: 2px;
  animation: ar-image 18s ease-in-out infinite alternate;
}
.scn-art-and-religion .figure-body {
  position: absolute; bottom: 8%; left: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ar-body 6s ease-in-out infinite;
}
.scn-art-and-religion .figure-head {
  position: absolute; bottom: 36%; left: 20%; width: 6%; height: 7%;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ar-head 6s ease-in-out infinite;
}
.scn-art-and-religion .candle {
  position: absolute; bottom: 20%; left: 12%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c8a060 0%, #6a4a20 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: ar-candle 3s ease-in-out infinite alternate;
}
.scn-art-and-religion .candle-glow {
  position: absolute; bottom: 30%; left: 10%; width: 6%; height: 8%;
  background: radial-gradient(ellipse, rgba(200,160,96,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ar-glow 3s ease-in-out infinite alternate;
}
.scn-art-and-religion .shadow {
  position: absolute; bottom: 0; left: 15%; width: 18%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ar-shadow 8s ease-in-out infinite;
}
@keyframes ar-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes ar-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes ar-image { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ar-body { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes ar-head { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } }
@keyframes ar-candle { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.03) scaleX(0.97) } }
@keyframes ar-glow { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } }
@keyframes ar-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-beginnings-of-religion {
  background: 
    linear-gradient(180deg, #e8c8a0 0%, #c8a070 30%, #a08050 60%, #705030 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8b0 0%, transparent 60%);
}
.scn-beginnings-of-religion .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8b890 0%, #b09070 100%);
  animation: br-wall 20s ease-in-out infinite alternate;
}
.scn-beginnings-of-religion .room-floor {
  position: absolute; bottom: 0; inset-inline: 0; height: 25%;
  background: linear-gradient(180deg, #8a7050 0%, #604830 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
}
.scn-beginnings-of-religion .window-frame {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #b09070 0%, #8a7050 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
.scn-beginnings-of-religion .dawn-light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,220,160,.6) 0%, transparent 70%);
  border-radius: 6px;
  animation: br-light 8s ease-in-out infinite alternate;
}
.scn-beginnings-of-religion .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: br-table 15s ease-in-out infinite alternate;
}
.scn-beginnings-of-religion .figure-left {
  position: absolute; bottom: 15%; left: 22%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 7s ease-in-out infinite;
}
.scn-beginnings-of-religion .figure-right {
  position: absolute; bottom: 15%; right: 22%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 7s ease-in-out infinite 2s;
}
.scn-beginnings-of-religion .figure-center {
  position: absolute; bottom: 18%; left: 46%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 7s ease-in-out infinite 4s;
}
@keyframes br-wall { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes br-light { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.5; transform: scaleY(.98) } }
@keyframes br-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes br-figure { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(-2px) } 75% { transform: rotate(-1deg) translateY(-1px) } }

.scn-poetry-as-highest-truth {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2c1e10 40%, #1a1008 100%),
    radial-gradient(ellipse at 40% 50%, #5a4030 0%, transparent 60%);
}
.scn-poetry-as-highest-truth .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2c2014 100%);
  animation: ph-wall 25s ease-in-out infinite alternate;
}
.scn-poetry-as-highest-truth .bookshelf {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);
}
.scn-poetry-as-highest-truth .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #7a5a40 0%, #4a3420 100%);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  animation: ph-desk 20s ease-in-out infinite alternate;
}
.scn-poetry-as-highest-truth .scroll {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: ph-scroll 10s ease-in-out infinite alternate;
}
.scn-poetry-as-highest-truth .scholar {
  position: absolute; bottom: 12%; left: 42%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ph-scholar 6s ease-in-out infinite;
}
.scn-poetry-as-highest-truth .oil-lamp {
  position: absolute; bottom: 28%; left: 30%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #b09060 0%, #6a5030 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: ph-lamp 4s ease-in-out infinite alternate;
}
.scn-poetry-as-highest-truth .lamp-glow {
  position: absolute; bottom: 30%; left: 26%; width: 12%; height: 15%;
  background: radial-gradient(ellipse, rgba(200,160,80,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ph-glow 4s ease-in-out infinite alternate;
}
.scn-poetry-as-highest-truth .shadow-depth {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: ph-shadow 12s ease-in-out infinite;
}
@keyframes ph-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes ph-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ph-scroll { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes ph-scholar { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(-1px) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes ph-lamp { 0%,100% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.02) rotate(2deg) } }
@keyframes ph-glow { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.15) } }
@keyframes ph-shadow { 0%,100% { opacity:.6 } 50% { opacity:.8 } }

.scn-nature-as-art {
  background: 
    linear-gradient(180deg, #c8c0a8 0%, #b0a890 40%, #a09880 100%),
    radial-gradient(ellipse at 50% 20%, #d8d0b8 0%, transparent 60%);
}
.scn-nature-as-art .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8d0b8 0%, #b8b098 50%, #a8a088 100%);
  animation: na-sky 25s ease-in-out infinite alternate;
}
.scn-nature-as-art .distant-hills {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
  animation: na-hills 30s ease-in-out infinite alternate;
}
.scn-nature-as-art .meadow {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: na-meadow 20s ease-in-out infinite alternate;
}
.scn-nature-as-art .tree-canopy {
  position: absolute; bottom: 28%; left: 20%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 60%, #5a7a4a 0%, #3a5a2a 60%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: na-tree 15s ease-in-out infinite alternate;
}
.scn-nature-as-art .tree-trunk {
  position: absolute; bottom: 10%; left: 30%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
}
.scn-nature-as-art .figure-strolling {
  position: absolute; bottom: 14%; left: 55%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: na-figure 8s ease-in-out infinite;
}
.scn-nature-as-art .path {
  position: absolute; bottom: 10%; left: 40%; right: 30%; height: 4%;
  background: linear-gradient(90deg, #8a7a5a 0%, #7a6a4a 50%, #8a7a5a 100%);
  border-radius: 40%;
  filter: blur(2px);
  animation: na-path 15s ease-in-out infinite alternate;
}
.scn-nature-as-art .clouds {
  position: absolute; top: 8%; left: 10%; width: 40%; height: 12%;
  background: radial-gradient(ellipse, rgba(200,200,180,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: na-clouds 45s linear infinite;
}
@keyframes na-sky { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes na-hills { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes na-meadow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes na-tree { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } }
@keyframes na-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(0deg) } 75% { transform: translateX(4px) rotate(-1deg) } }
@keyframes na-path { 0%,100% { opacity:.6 } 50% { opacity:.9 } }
@keyframes na-clouds { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

/* Scene 1: simple-gymnastic-military */
.scn-simple-gymnastic-military {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c3b0 50%, #c0aa90 100%),
              radial-gradient(ellipse at 80% 20%, #f5efe0 10%, transparent 60%);
}
.scn-simple-gymnastic-military .wall-sgm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dccbb8 0%, #b8a28e 100%);
}
.scn-simple-gymnastic-military .floor-sgm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a48b76 0%, #8c735e 100%);
  border-radius: 0 0 8% 8%;
}
.scn-simple-gymnastic-military .warrior-sgm {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-40px);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 60%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sgm-breathe 5s ease-in-out infinite;
  box-shadow: -5px 0 8px rgba(0,0,0,0.3);
}
.scn-simple-gymnastic-military .warrior-sgm::before {
  content: ''; position: absolute; top: -4px; left: 10px; width: 20px; height: 20px;
  background: #5a4a3a; border-radius: 50%;
}
.scn-simple-gymnastic-military .lamp-sgm {
  position: absolute; bottom: 50%; right: 20%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #d4b060, 0 0 60px 15px rgba(212,176,96,0.3);
  animation: sgm-lampglow 4s ease-in-out infinite alternate;
}
.scn-simple-gymnastic-military .shield-sgm {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #8a7650 0%, #5a4a2a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
}
.scn-simple-gymnastic-military .shadow-sgm {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.15); border-radius: 50%;
  filter: blur(4px);
  animation: sgm-shadowpulse 5s ease-in-out infinite;
}

@keyframes sgm-breathe { 0% { transform: translateX(-40px) scaleY(1); } 50% { transform: translateX(-40px) scaleY(1.03); } 100% { transform: translateX(-40px) scaleY(1); } }
@keyframes sgm-lampglow { 0% { box-shadow: 0 0 20px 4px #d4b060, 0 0 40px 10px rgba(212,176,96,0.2); } 50% { box-shadow: 0 0 40px 12px #e8c878, 0 0 70px 20px rgba(232,200,120,0.4); } 100% { box-shadow: 0 0 25px 6px #d4b060, 0 0 50px 12px rgba(212,176,96,0.3); } }
@keyframes sgm-shadowpulse { 0%,100% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } }

/* Scene 2: homeric-diet-soldiers */
.scn-homeric-diet-soldiers {
  background: linear-gradient(180deg, #dcc8a8 0%, #c0a880 40%, #a0885e 100%),
              radial-gradient(ellipse at 60% 20%, #f5e8c0 10%, transparent 70%);
}
.scn-homeric-diet-soldiers .wall-hds {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #dcc8a8, #c4b090);
}
.scn-homeric-diet-soldiers .table-hds {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #b08a5a 0%, #8a6a3a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-homeric-diet-soldiers .soldier-hds {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 75px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-20px);
  animation: hds-eat 6s ease-in-out infinite;
}
.scn-homeric-diet-soldiers .soldier-hds::before {
  content: ''; position: absolute; top: 2px; left: 15px; width: 20px; height: 20px;
  background: #7a5a3a; border-radius: 50%;
}
.scn-homeric-diet-soldiers .bread-hds {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #d4a858 0%, #a88030 100%);
  border-radius: 40% 30% 30% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: hds-steam 4s ease-in-out infinite;
}
.scn-homeric-diet-soldiers .amphora-hds {
  position: absolute; bottom: 25%; left: 65%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #7a5a2a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(5deg);
}
.scn-homeric-diet-soldiers .flame-hds {
  position: absolute; bottom: 32%; left: 72%; width: 8px; height: 18px;
  background: radial-gradient(ellipse at 50% 0%, #f0c050 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: hds-flame 2s ease-in-out infinite alternate;
}
.scn-homeric-diet-soldiers .steam-hds {
  position: absolute; bottom: 33%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: hds-risesteam 5s ease-out infinite;
}

@keyframes hds-eat { 0%,100% { transform: translateX(-20px) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-3deg); } 50% { transform: translateX(-20px) rotate(0deg); } 75% { transform: translateX(-30px) rotate(3deg); } }
@keyframes hds-steam { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes hds-flame { 0% { transform: scaleY(0.8) translateY(2px); opacity: 0.7; } 100% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } }
@keyframes hds-risesteam { 0% { transform: translateY(0) scale(0.8); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.3; } 100% { transform: translateY(-20px) scale(1.5); opacity: 0; } }

/* Scene 3: syracusan-dinners-forbidden (funny) */
.scn-syracusan-dinners-forbidden {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #ccb898 100%),
              radial-gradient(ellipse at 40% 60%, #fcf5e8 10%, transparent 80%);
}
.scn-syracusan-dinners-forbidden .wall-sdf {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%);
}
.scn-syracusan-dinners-forbidden .table-sdf {
  position: absolute; bottom: 35%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #c0a880 0%, #a08868 100%);
  border-radius: 8px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.2);
}
.scn-syracusan-dinners-forbidden .feast-sdf {
  position: absolute; bottom: 40%; left: 30%; right: 30%; height: 18%;
  background: linear-gradient(135deg, #d4b888 0%, #b89868 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  display: flex; justify-content: center; align-items: flex-start;
  overflow: hidden;
}
.scn-syracusan-dinners-forbidden .feast-sdf::before {
  content: ''; position: absolute; top: 15%; width: 40%; height: 50%;
  background: radial-gradient(circle, #b87858 20%, #8a5030 60%, transparent 100%);
  border-radius: 50%; /* plate with food */
}
.scn-syracusan-dinners-forbidden .hand-sdf {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a070 0%, #a88050 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(45deg);
  animation: sdf-push 3s ease-in-out infinite;
  z-index: 2;
}
.scn-syracusan-dinners-forbidden .hand-sdf::after {
  content: ''; position: absolute; bottom: -20px; left: -5px; width: 14px; height: 14px;
  background: #c8a070; border-radius: 50%; /* thumb */
}
.scn-syracusan-dinners-forbidden .plate-sdf {
  position: absolute; bottom: 36%; left: 55%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, #d0b080 0%, #b89868 100%);
  border-radius: 50%; filter: blur(1px);
  animation: sdf-spin 4s linear infinite;
}
.scn-syracusan-dinners-forbidden .drape-sdf {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 0 0 50% 50%;
  transform: skewX(-10deg);
  animation: sdf-sway 6s ease-in-out infinite alternate;
}

@keyframes sdf-push { 0%,100% { transform: rotate(45deg) translateX(0); } 25% { transform: rotate(30deg) translateX(-15px) translateY(-5px); } 50% { transform: rotate(45deg) translateX(0); } 75% { transform: rotate(60deg) translateX(10px) translateY(5px); } }
@keyframes sdf-spin { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes sdf-sway { 0% { transform: skewX(-10deg) translateX(0); } 100% { transform: skewX(10deg) translateX(20px); } }

/* Scene 4: simplicity-health-discipline */
.scn-simplicity-health-discipline {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c3b0 50%, #c0aa90 100%),
              radial-gradient(ellipse at 50% 10%, #f5efe0 10%, transparent 70%);
}
.scn-simplicity-health-discipline .wall-shd {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 100%);
}
.scn-simplicity-health-discipline .floor-shd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a890 0%, #a08870 100%);
  border-radius: 0 0 6% 6%;
}
.scn-simplicity-health-discipline .jug-shd {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8b898 0%, #a88868 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -6px 8px rgba(0,0,0,0.2);
  animation: shd-drip 5s ease-in-out infinite;
}
.scn-simplicity-health-discipline .bed-shd {
  position: absolute; bottom: 20%; left: 55%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #b8a080 0%, #988060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-simplicity-health-discipline .curtain-shd {
  position: absolute; top: 10%; right: 15%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #c8b898 0%, #b8a080 100%);
  border-radius: 20% 20% 0 0;
  animation: shd-curtain 7s ease-in-out infinite alternate;
}
.scn-simplicity-health-discipline .water-shd {
  position: absolute; bottom: 30%; left: 33%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8d0 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: shd-waterdrop 3s ease-in infinite;
}

@keyframes shd-drip { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes shd-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1) translateX(5px); } }
@keyframes shd-waterdrop { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 80% { transform: translateY(20px) scale(0.6); opacity: 0.4; } 100% { transform: translateY(25px) scale(0.2); opacity: 0; } }

.scn-banishment-of-lusts { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0d0808 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%); }
.scn-banishment-of-lusts .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); animation: bl-wall 20s ease-in-out infinite alternate; }
.scn-banishment-of-lusts .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-banishment-of-lusts .table { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-banishment-of-lusts .candle { position:absolute; bottom:30%; left:38%; width:6px; height:16px; background: linear-gradient(180deg, #ccaa66 0%, #aa8844 50%, #664422 100%); border-radius:2px; animation: bl-candle 3s ease-in-out infinite alternate; }
.scn-banishment-of-lusts .candle::after { content:''; position:absolute; top:-4px; left:-3px; width:12px; height:12px; background: radial-gradient(circle, #ffdd88 0%, #ffaa44 60%, transparent 100%); border-radius:50%; animation: bl-glow 2s ease-in-out infinite alternate; }
.scn-banishment-of-lusts .scroll { position:absolute; bottom:22%; left:45%; width:30px; height:8px; background: linear-gradient(90deg, #aa8844, #c8b080, #aa8844); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-15deg); }
.scn-banishment-of-lusts .figure { position:absolute; bottom:25%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bl-figure 8s ease-in-out infinite; }
.scn-banishment-of-lusts .shadow { position:absolute; bottom:20%; left:50%; width:60px; height:8px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: bl-shadow 8s ease-in-out infinite; }
@keyframes bl-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes bl-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.98) } }
@keyframes bl-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(1.1) } }
@keyframes bl-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(1px) translateY(0) rotate(-1deg) } }
@keyframes bl-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

.scn-happy-surroundings { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #e0f0f0 100%), radial-gradient(ellipse at 50% 0%, #ffdd66 0%, transparent 70%); }
.scn-happy-surroundings .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #add8e6 0%, #b0e0e6 50%, #e0f0f0 100%); animation: hs-sky 12s ease-in-out infinite alternate; }
.scn-happy-surroundings .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff7dd 0%, #ffdd66 60%, transparent 100%); border-radius:50%; animation: hs-sun 4s ease-in-out infinite alternate; }
.scn-happy-surroundings .cloud { position:absolute; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.2) 100%); border-radius:50%; filter: blur(8px); }
.scn-happy-surroundings .cloud-a { top:12%; left:10%; animation: hs-drift 30s linear infinite; }
.scn-happy-surroundings .cloud-b { top:20%; left:60%; width:60px; height:15px; animation: hs-drift 40s linear infinite reverse; }
.scn-happy-surroundings .grass { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7cb342 0%, #558b2f 50%, #33691e 100%); border-radius: 20% 20% 0 0; }
.scn-happy-surroundings .tree { position:absolute; bottom:30%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius:4px; }
.scn-happy-surroundings .tree::before { content:''; position:absolute; top:-30px; left:-20px; width:60px; height:40px; background: radial-gradient(ellipse, #4caf50 0%, #2e7d32 60%, transparent 100%); border-radius:50%; }
.scn-happy-surroundings .figure { position:absolute; bottom:20%; left:40%; width:16px; height:30px; background: linear-gradient(180deg, #fdd835 0%, #f9a825 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-run 4s ease-in-out infinite; }
@keyframes hs-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes hs-sun { 0% { transform: scale(1); box-shadow: 0 0 20px 10px #ffdd66; } 50% { transform: scale(1.05); box-shadow: 0 0 30px 15px #ffec80; } 100% { transform: scale(0.98); box-shadow: 0 0 15px 5px #ffdd66; } }
@keyframes hs-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(0px); } 100% { transform: translateX(100vw); } }
@keyframes hs-run { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(20px) translateY(0) rotate(-3deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(-1deg); } }

.scn-danger-of-sudden-change { background: linear-gradient(180deg, #1a202c 0%, #0f172a 50%, #090e17 100%), radial-gradient(ellipse at 50% 50%, #2d3748 0%, transparent 80%); }
.scn-danger-of-sudden-change .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2d3748 0%, #1a202c 100%); animation: ds-wall 15s ease-in-out infinite alternate; }
.scn-danger-of-sudden-change .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a202c 0%, #0f172a 100%); border-radius: 5% 5% 0 0; }
.scn-danger-of-sudden-change .column { position:absolute; bottom:25%; left:50%; width:20px; height:100px; background: linear-gradient(90deg, #4a5568, #2d3748, #4a5568); border-radius:2px; transform:translateX(-50%); animation: ds-column 20s ease-in-out infinite; }
.scn-danger-of-sudden-change .book { position:absolute; bottom:20%; left:30%; width:30px; height:8px; background: linear-gradient(90deg, #718096, #a0aec0, #718096); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-danger-of-sudden-change .figure { position:absolute; bottom:15%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #1a202c 0%, #090e17 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figure 8s ease-in-out infinite; }
.scn-danger-of-sudden-change .dust { position:absolute; width:4px; height:4px; background: rgba(200,200,220,.3); border-radius:50%; filter: blur(2px); }
.scn-danger-of-sudden-change .dust-a { bottom:45%; left:20%; animation: ds-dust 12s linear infinite; }
.scn-danger-of-sudden-change .dust-b { bottom:50%; left:70%; animation: ds-dust 15s linear infinite reverse; }
@keyframes ds-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ds-column { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes ds-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-1px) translateY(0) rotate(-2deg); } }
@keyframes ds-dust { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(15deg); } 100% { transform: translateY(-40px) rotate(30deg); } }

.scn-simplicity-in-art { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0d0808 100%), radial-gradient(ellipse at 50% 40%, #5c4033 0%, transparent 70%); }
.scn-simplicity-in-art .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); }
.scn-simplicity-in-art .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 10% 10% 0 0; }
.scn-simplicity-in-art .pedestal { position:absolute; bottom:20%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius:4px; transform:translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sa-pedestal 15s ease-in-out infinite; }
.scn-simplicity-in-art .statue { position:absolute; bottom:30%; left:50%; width:20px; height:60px; background: linear-gradient(180deg, #3e2723 0%, #1a1210 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform:translateX(-50%) rotate(-5deg); transform-origin: bottom center; animation: sa-statue 10s ease-in-out infinite; }
.scn-simplicity-in-art .lyre { position:absolute; bottom:25%; left:42%; width:12px; height:16px; background: linear-gradient(180deg, #d4a373 0%, #b07d4b 100%); border-radius:50% / 30% 30% 70% 70%; transform: rotate(-20deg); animation: sa-lyre 6s ease-in-out infinite alternate; }
.scn-simplicity-in-art .light { position:absolute; top:5%; left:35%; width:100px; height:100px; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.15) 0%, transparent 100%); animation: sa-light 5s ease-in-out infinite alternate; }
@keyframes sa-pedestal { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sa-statue { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-6deg); } }
@keyframes sa-lyre { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-18deg) scaleY(1.02); } 100% { transform: rotate(-22deg) scaleY(0.98); } }
@keyframes sa-light { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }

/* censorship-needed */
.scn-censorship-needed {
  background: 
    linear-gradient(180deg, #2a1f14 0%, #3d2b1b 60%, #4e3b2a 100%),
    radial-gradient(ellipse at 60% 0%, #6b4c30 0%, transparent 70%);
}
.scn-censorship-needed .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 70%);
  animation: cn-wall 10s ease-in-out infinite alternate;
}
.scn-censorship-needed .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: cn-table 6s ease-in-out infinite;
}
.scn-censorship-needed .book-stack {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: cn-books 8s ease-in-out infinite alternate;
}
.scn-censorship-needed .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #b88a5a 0%, #8a6a3a 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  animation: cn-candle 3s ease-in-out infinite alternate;
}
.scn-censorship-needed .candle-glow {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c868 0%, #c09040 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 0);
  box-shadow: 0 0 40px 12px #c09040;
  animation: cn-glow 3s ease-in-out infinite alternate;
}
.scn-censorship-needed .figure-shade {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: cn-figure 7s ease-in-out infinite;
}
.scn-censorship-needed .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1f12 100%);
  border-radius: 0 0 0 30%/0 0 0 30%;
  animation: cn-curtain 12s ease-in-out infinite alternate;
}
.scn-censorship-needed .shelf {
  position: absolute; bottom: 40%; right: 10%; width: 15%; height: 4px;
  background: #8a6a4a;
  box-shadow: 0 4px 4px rgba(0,0,0,.3);
  animation: cn-shelf 9s ease-in-out infinite;
}

@keyframes cn-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes cn-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cn-books { 0% { transform: scaleX(.9); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(.95); } }
@keyframes cn-candle { 0% { transform: translateX(-50%) scaleY(.9); } 50% { transform: translateX(-50%) scaleY(1.08); } 100% { transform: translateX(-50%) scaleY(.95); } }
@keyframes cn-glow { 0% { opacity: .7; transform: translate(-50%, 0) scale(.9); } 50% { opacity: 1; transform: translate(-50%, 0) scale(1.1); } 100% { opacity: .8; transform: translate(-50%, 0) scale(.95); } }
@keyframes cn-figure { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } }
@keyframes cn-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(2px); } }
@keyframes cn-shelf { 0% { transform: scaleX(.9); } 50% { transform: scaleX(1); } 100% { transform: scaleX(.95); } }

/* model-in-greater */
.scn-model-in-greater {
  background: 
    linear-gradient(180deg, #1e202a 0%, #2a2e3a 40%, #3a3e4e 100%),
    radial-gradient(ellipse at 70% 0%, #4a4e5e 0%, transparent 60%);
}
.scn-model-in-greater .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a2e3a 0%, #3a3e4e 50%, #2a2e3a 100%);
  animation: mg-wall 14s ease-in-out infinite alternate;
}
.scn-model-in-greater .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a5e6e 0%, #3a3e4e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  animation: mg-pedestal 8s ease-in-out infinite;
}
.scn-model-in-greater .greater-model {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 50px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #8a8e9e 0%, #5a5e6e 100%);
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(200,200,220,0.2);
  animation: mg-greater 10s ease-in-out infinite alternate;
}
.scn-model-in-greater .lesser-fig {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0e101a 0%, #1a1c2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-lesser 4s ease-in-out infinite;
}
.scn-model-in-greater .shadow-cast {
  position: absolute; bottom: 12%; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: mg-shadow 6s ease-in-out infinite alternate;
}
.scn-model-in-greater .light-shaft {
  position: absolute; top: 0; left: 40%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(220,220,240,.15) 0%, transparent 100%);
  transform: skewX(-8deg);
  animation: mg-shaft 12s ease-in-out infinite;
}
.scn-model-in-greater .step {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #4a4e5e 0%, #2a2e3a 100%);
  border-radius: 4px;
  animation: mg-step 9s ease-in-out infinite alternate;
}

@keyframes mg-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mg-pedestal { 0%,100% { transform: translateX(-50%) rotateX(0deg); } 50% { transform: translateX(-50%) rotateX(1deg) translateY(-2px); } }
@keyframes mg-greater { 0% { transform: translate(-50%, 0) scale(.95); } 50% { transform: translate(-50%, 0) scale(1.05); } 100% { transform: translate(-50%, 0) scale(.98); } }
@keyframes mg-lesser { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(6px) rotate(-1deg); } 50% { transform: translateX(12px) rotate(1deg); } 75% { transform: translateX(18px) rotate(-2deg); } 100% { transform: translateX(24px) rotate(0); } }
@keyframes mg-shadow { 0% { transform: scaleX(.8); opacity: .5; } 50% { transform: scaleX(1.2); opacity: 1; } 100% { transform: scaleX(.9); opacity: .6; } }
@keyframes mg-shaft { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .25; } }
@keyframes mg-step { 0% { height: 6%; } 50% { height: 7%; } 100% { height: 5.5%; } }

/* erroneous-representation */
.scn-erroneous-representation {
  background: 
    linear-gradient(180deg, #2a2218 0%, #3c3024 50%, #4e3e2e 100%),
    radial-gradient(ellipse at 40% 0%, #6a5240 0%, transparent 70%);
}
.scn-erroneous-representation .studio-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #4e3e2e 0%, #2a2218 100%);
  animation: er-wall 11s ease-in-out infinite alternate;
}
.scn-erroneous-representation .easel {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: er-easel 7s ease-in-out infinite;
}
.scn-erroneous-representation .canvas-distorted {
  position: absolute; bottom: 35%; left: 28%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #8a7a6a 30%, #6a5a4a 60%, #9a8a7a 100%);
  border-radius: 2px;
  transform: rotate(2deg) skewX(-1deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: er-canvas 5s ease-in-out infinite alternate;
}
.scn-erroneous-representation .palette {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #a09080 0%, #7a6a5a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: er-palette 9s ease-in-out infinite;
}
.scn-erroneous-representation .brush-hand {
  position: absolute; bottom: 20%; left: 46%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(30deg);
  animation: er-hand 3s ease-in-out infinite alternate;
}
.scn-erroneous-representation .paint-drip {
  position: absolute; bottom: 38%; left: 33%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #c07030 0%, #a05020 100%);
  border-radius: 2px;
  animation: er-drip 4s ease-in-out infinite;
}
.scn-erroneous-representation .dim-window {
  position: absolute; top: 5%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, rgba(100,80,60,0.1) 70%);
  border: 2px solid #4a3a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,.4);
  animation: er-window 13s ease-in-out infinite alternate;
}

@keyframes er-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes er-easel { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(3deg) translateX(-2px); } }
@keyframes er-canvas { 0% { transform: rotate(2deg) skewX(-1deg) scale(.95); } 50% { transform: rotate(-1deg) skewX(2deg) scale(1.05); } 100% { transform: rotate(1deg) skewX(0) scale(.98); } }
@keyframes er-palette { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes er-hand { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(28deg) translateX(-1px); } }
@keyframes er-drip { 0% { height: 12px; } 50% { height: 18px; opacity: .8; } 100% { height: 10px; opacity: 1; } }
@keyframes er-window { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .5; transform: scale(1.1); } 100% { opacity: .3; transform: scale(.95); } }

/* uranus-and-cronus */
.scn-uranus-and-cronus {
  background: 
    linear-gradient(180deg, #0e0a12 0%, #1a1220 40%, #2a1e30 100%),
    radial-gradient(ellipse at 30% 100%, #3a2a4a 0%, transparent 80%);
}
.scn-uranus-and-cronus .cave-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1220 0%, #0e0a12 50%, #2a1e30 100%);
  animation: uc-cave 15s ease-in-out infinite alternate;
}
.scn-uranus-and-cronus .cronus-fig {
  position: absolute; bottom: 10%; left: 45%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: uc-cronus 5s ease-in-out infinite;
}
.scn-uranus-and-cronus .scythe {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 10px;
  background: linear-gradient(135deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 10% 10% 10% / 100% 10% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: uc-scythe 8s ease-in-out infinite alternate;
}
.scn-uranus-and-cronus .uranus-shadow {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0e060e 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  opacity: .8;
  animation: uc-shadow 9s ease-in-out infinite;
}
.scn-uranus-and-cronus .throne {
  position: absolute; bottom: 8%; left: 20%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,.6);
  animation: uc-throne 6s ease-in-out infinite alternate;
}
.scn-uranus-and-cronus .chained-form {
  position: absolute; bottom: 15%; right: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: uc-chains 4s ease-in-out infinite;
}
.scn-uranus-and-cronus .eye-glow {
  position: absolute; bottom: 22%; left: 42%; width: 8px; height: 4px;
  background: radial-gradient(circle, #a08050 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #a08050;
  animation: uc-eyes 3s ease-in-out infinite alternate;
}
.scn-uranus-and-cronus .mist-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(30,20,40,.7) 0%, transparent 100%);
  animation: uc-mist 12s ease-in-out infinite;
}

@keyframes uc-cave { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes uc-cronus { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes uc-scythe { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-25deg) scaleX(1.1) translateX(4px); } 100% { transform: rotate(-28deg) scaleX(.95); } }
@keyframes uc-shadow { 0%,100% { opacity: .7; } 50% { opacity: .9; transform: translateX(2px); } }
@keyframes uc-throne { 0% { transform: scaleY(.95); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(.98); } }
@keyframes uc-chains { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(-3px); } 100% { transform: rotate(18deg) translateX(2px); } }
@keyframes uc-eyes { 0% { opacity: .3; } 50% { opacity: 1; } 100% { opacity: .5; } }
@keyframes uc-mist { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }

/* objection-continued */
.scn-objection-continued {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c4b8a0 40%, #9a8a74 100%),
    radial-gradient(ellipse at 50% 60%, #fff4e0 0%, transparent 60%);
}
.scn-objection-continued .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d6c8b0 0%, #b8aa90 100%);
  animation: oc-wall 12s ease-in-out infinite alternate;
}
.scn-objection-continued .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a7a64 0%, #5c4e3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-objection-continued .window-bars {
  position:absolute; top:10%; right:15%; width:100px; height:140px;
  background:
    repeating-linear-gradient(0deg, #2a2218 0px, #2a2218 4px, transparent 4px, transparent 20px),
    repeating-linear-gradient(90deg, #2a2218 0px, #2a2218 4px, transparent 4px, transparent 20px);
  border: 4px solid #3a3022;
  box-shadow: inset 0 0 0 2px #5a4a36;
  animation: oc-bars 8s ease-in-out infinite;
}
.scn-objection-continued .speaker-figure {
  position:absolute; bottom:30%; left:38%; width:50px; height:90px;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc-speaker 4s ease-in-out infinite;
}
.scn-objection-continued .accusation-arm {
  position:absolute; bottom:48%; left:44%; width:30px; height:8px;
  background: #3a2e24;
  border-radius: 40% 40% 30% 30%;
  transform-origin: left center;
  animation: oc-arm 2s ease-in-out infinite alternate;
}
.scn-objection-continued .listener-shadow {
  position:absolute; bottom:30%; right:25%; width:45px; height:85px;
  background: linear-gradient(180deg, #2a2218 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: oc-listener 6s ease-in-out infinite;
}
.scn-objection-continued .light-shaft {
  position:absolute; top:0; left:40%; width:30%; height:70%;
  background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, rgba(255,235,200,0) 100%);
  filter: blur(8px);
  animation: oc-shaft 5s ease-in-out infinite alternate;
}
.scn-objection-continued .dust-motes {
  position:absolute; top:20%; left:50%; width:8px; height:8px;
  background: radial-gradient(circle, #ffe8c0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: oc-dust 9s linear infinite;
}
@keyframes oc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes oc-bars { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateX(2px) } }
@keyframes oc-speaker { 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 oc-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(20deg) } }
@keyframes oc-listener { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes oc-shaft { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes oc-dust { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 25% { transform: translate(20px,-10px) scale(1.2); opacity:0.8; } 50% { transform: translate(40px,5px) scale(0.8); opacity:0.6; } 75% { transform: translate(10px,15px) scale(1); opacity:0.5; } 100% { transform: translate(0,0) scale(1); opacity:0.4; } }

/* state-painted-as-whole */
.scn-state-painted-as-whole {
  background:
    linear-gradient(180deg, #f5efe0 0%, #ddd0b8 40%, #bfb09a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 60%);
}
.scn-state-painted-as-whole .hall-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  animation: spaw-hall 15s ease-in-out infinite alternate;
}
.scn-state-painted-as-whole .pillar-left {
  position:absolute; bottom:20%; left:10%; width:20px; height:80%;
  background: linear-gradient(90deg, #d0c0a8, #b8a890, #d0c0a8);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-state-painted-as-whole .pillar-right {
  position:absolute; bottom:20%; right:10%; width:20px; height:80%;
  background: linear-gradient(90deg, #d0c0a8, #b8a890, #d0c0a8);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-state-painted-as-whole .citizen-row1 {
  position:absolute; bottom:45%; left:20%; right:20%; height:14px;
  background: repeating-linear-gradient(90deg, #4a3e34 0%, #4a3e34 6px, transparent 6px, transparent 14px);
  animation: spaw-cit1 25s linear infinite;
}
.scn-state-painted-as-whole .citizen-row2 {
  position:absolute; bottom:35%; left:15%; right:15%; height:14px;
  background: repeating-linear-gradient(90deg, #5a4e42 0%, #5a4e42 5px, transparent 5px, transparent 13px);
  animation: spaw-cit2 30s linear infinite reverse;
}
.scn-state-painted-as-whole .citizen-row3 {
  position:absolute; bottom:25%; left:10%; right:10%; height:14px;
  background: repeating-linear-gradient(90deg, #3a2e24 0%, #3a2e24 4px, transparent 4px, transparent 12px);
  animation: spaw-cit3 20s linear infinite;
}
.scn-state-painted-as-whole .sunbeam-cross {
  position:absolute; top:5%; left:35%; width:30%; height:2px;
  background: linear-gradient(90deg, transparent, rgba(255,240,200,0.5), transparent);
  filter: blur(2px);
  animation: spaw-beam 8s ease-in-out infinite alternate;
}
@keyframes spaw-hall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes spaw-cit1 { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes spaw-cit2 { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }
@keyframes spaw-cit3 { 0% { transform: translateX(0) } 100% { transform: translateX(-15px) } }
@keyframes spaw-beam { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.3); opacity:0.6 } 100% { transform: scaleX(0.9); opacity:0.4 } }

/* each-class-own-work */
.scn-each-class-own-work {
  background:
    linear-gradient(180deg, #d4a86a 0%, #b88a54 40%, #8a5e32 100%),
    radial-gradient(ellipse at 50% 80%, #f0c080 0%, transparent 70%);
}
.scn-each-class-own-work .workshop-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #c49a64 0%, #a47a46 100%);
  animation: ecow-wall 14s ease-in-out infinite alternate;
}
.scn-each-class-own-work .pottery-wheel {
  position:absolute; bottom:35%; left:40%; width:80px; height:30px;
  background: #5a3a1e;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ecow-wheel 3s linear infinite;
}
.scn-each-class-own-work .potters-hands {
  position:absolute; bottom:42%; left:42%; width:40px; height:20px;
  background: #7a5a3a;
  border-radius: 40% 40% 30% 30%;
  animation: ecow-hands 4s ease-in-out infinite alternate;
}
.scn-each-class-own-work .fire-glow {
  position:absolute; bottom:30%; left:20%; width:60px; height:60px;
  background: radial-gradient(circle, #ffb060 0%, #ff8040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ecow-fire 2s ease-in-out infinite alternate;
}
.scn-each-class-own-work .stacked-vases {
  position:absolute; bottom:35%; right:25%; width:40px; height:50px;
  background:
    linear-gradient(180deg, #b07040 0%, #a06030 30%, #b07040 60%, #a06030 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ecow-vases 6s ease-in-out infinite;
}
.scn-each-class-own-work .wine-cup {
  position:absolute; bottom:32%; left:30%; width:20px; height:18px;
  background: #6a4a2e;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ecow-cup 5s ease-in-out infinite alternate;
}
.scn-each-class-own-work .warm-haze {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 70%, rgba(255,200,100,0.2) 0%, transparent 60%);
  filter: blur(20px);
  animation: ecow-haze 7s ease-in-out infinite alternate;
}
@keyframes ecow-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ecow-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ecow-hands { 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 ecow-fire { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes ecow-vases { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ecow-cup { 0% { transform: translateZ(0) rotate(-3deg) } 100% { transform: translateZ(0) rotate(3deg) } }
@keyframes ecow-haze { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* guardians-true-saviours */
.scn-guardians-true-saviours {
  background:
    linear-gradient(180deg, #e0d4c0 0%, #c0b098 40%, #9a8a74 100%),
    radial-gradient(ellipse at 50% 70%, #ffe0b0 0%, transparent 60%);
}
.scn-guardians-true-saviours .city-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #b8a88c 0%, #908068 100%);
  animation: gts-city 16s ease-in-out infinite alternate;
}
.scn-guardians-true-saviours .guardian-body {
  position:absolute; bottom:30%; left:35%; width:50px; height:95px;
  background: linear-gradient(180deg, #2a2218 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gts-guardian 5s ease-in-out infinite;
}
.scn-guardians-true-saviours .guardian-spear {
  position:absolute; bottom:45%; left:30%; width:4px; height:60px;
  background: #4a3a2e;
  transform-origin: bottom center;
  animation: gts-spear 3s ease-in-out infinite alternate;
}
.scn-guardians-true-saviours .reveler-figure {
  position:absolute; bottom:30%; right:30%; width:45px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gts-reveler 6s ease-in-out infinite;
}
.scn-guardians-true-saviours .reveler-cup {
  position:absolute; bottom:35%; right:26%; width:16px; height:14px;
  background: #7a5a3a;
  border-radius: 30% 30% 10% 10%;
  animation: gts-cup 2.5s ease-in-out infinite alternate;
}
.scn-guardians-true-saviours .contrast-light {
  position:absolute; top:10%; left:30%; width:40%; height:50%;
  background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: gts-light 4s ease-in-out infinite alternate;
}
.scn-guardians-true-saviours .ground-shadow {
  position:absolute; bottom:0; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.2));
  animation: gts-shadow 7s ease-in-out infinite;
}
@keyframes gts-city { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gts-guardian { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gts-spear { 0% { transform: rotate(-10deg) } 100% { transform: rotate(15deg) } }
@keyframes gts-reveler { 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 gts-cup { 0% { transform: rotate(0deg) } 100% { transform: rotate(-40deg) } }
@keyframes gts-light { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes gts-shadow { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }

.scn-gods-lamenting { background: linear-gradient(180deg, #1a1625 0%, #2a1f2a 40%, #3a2a35 100%), radial-gradient(ellipse at 30% 80%, #4a3a4a 0%, transparent 70%); }
.scn-gods-lamenting .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f2a 0%, #1a1625 100%); opacity:0.8; animation: gl-wall 15s ease-in-out infinite alternate; }
.scn-gods-lamenting .bg-shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 80%); }
.scn-gods-lamenting .window-frame { position:absolute; top:15%; left:30%; right:40%; bottom:60%; border:20px solid #3a2a35; border-radius:10%; background: radial-gradient(circle at 50% 50%, #4a5568 0%, #2a3038 70%); box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-gods-lamenting .figure-seated { position:absolute; bottom:30%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #1a1625 0%, #0a0a0a 90%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-seated 12s ease-in-out infinite; }
.scn-gods-lamenting .candle-glow { position:absolute; bottom:35%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #ffd060 0%, #b08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,208,96,.5); animation: gl-candle 4s ease-in-out infinite alternate; }
.scn-gods-lamenting .distant-chase { position:absolute; top:20%; left:35%; width:15px; height:10px; background: radial-gradient(circle, #4a5568 0%, transparent 70%); border-radius:50%; animation: gl-chase 20s linear infinite; }
.scn-gods-lamenting .tear-drop { position:absolute; bottom:40%; left:25%; width:4px; height:8px; background: radial-gradient(circle at 50% 30%, #a0b0ff 0%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 6px 2px #a0b0ff; animation: gl-tear 3s ease-in-out infinite; }
@keyframes gl-wall { 0% { opacity:0.75 } 50% { opacity:0.85 } 100% { opacity:0.8 } }
@keyframes gl-seated { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-5px) translateY(-2px) rotate(-2deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } }
@keyframes gl-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.85 } }
@keyframes gl-chase { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20px) translateY(-5px) } 50% { transform: translateX(40px) translateY(0) } 75% { transform: translateX(20px) translateY(5px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes gl-tear { 0% { transform: translateY(0) scale(1); opacity:0 } 20% { opacity:1 } 100% { transform: translateY(40px) scale(0.5); opacity:0 } }

.scn-effect-on-youth { background: linear-gradient(180deg, #2a2030 0%, #1e1625 40%, #302535 100%), radial-gradient(ellipse at 70% 50%, #3a2a4a 0%, transparent 70%); }
.scn-effect-on-youth .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #1e1625 100%); }
.scn-effect-on-youth .bg-corner { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 90%); }
.scn-effect-on-youth .statue-god { position:absolute; top:20%; left:60%; width:40px; height:100px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: ey-statue 20s ease-in-out infinite; }
.scn-effect-on-youth .youth-seated { position:absolute; bottom:25%; left:25%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 30%, #1a1625 0%, #0a0a1a 90%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ey-youth 15s ease-in-out infinite; }
.scn-effect-on-youth .scroll-open { position:absolute; bottom:35%; left:30%; width:60px; height:10px; background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%); border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ey-scroll 6s ease-in-out infinite alternate; }
.scn-effect-on-youth .lamp-glow { position:absolute; bottom:40%; left:15%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 20%, #ffd060 0%, #b08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(255,208,96,.4); animation: ey-lamp 4s ease-in-out infinite alternate; }
.scn-effect-on-youth .shadow-cast { position:absolute; bottom:0; left:20%; right:10%; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 80%); animation: ey-shadow 20s ease-in-out infinite; }
@keyframes ey-statue { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes ey-youth { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(1deg) } 70% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ey-scroll { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(0.95) } 100% { transform: translateX(5px) scaleX(1) } }
@keyframes ey-lamp { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.85 } }
@keyframes ey-shadow { 0%,100% { opacity:0.6 } 50% { opacity:0.8 } }

.scn-laughter-excess { background: linear-gradient(180deg, #1a2028 0%, #2a3038 40%, #3a4048 100%), radial-gradient(ellipse at 50% 80%, #4a5058 0%, transparent 70%); }
.scn-laughter-excess .bg-hall { position:absolute; inset:0; background: linear-gradient(180deg, #2a3038 0%, #1a2028 100%); }
.scn-laughter-excess .bg-column { position:absolute; top:10%; left:0; right:0; height:90%; background: linear-gradient(90deg, #1a2028 0%, transparent 10%, transparent 90%, #1a2028 100%); }
.scn-laughter-excess .guardian-left { position:absolute; bottom:25%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #2a3038 0%, #1a2028 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 2px 0 10px rgba(0,0,0,.5); animation: le-guardian-l 20s ease-in-out infinite; }
.scn-laughter-excess .guardian-right { position:absolute; bottom:25%; right:15%; width:30px; height:80px; background: linear-gradient(180deg, #2a3038 0%, #1a2028 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: -2px 0 10px rgba(0,0,0,.5); animation: le-guardian-r 20s ease-in-out infinite reverse; }
.scn-laughter-excess .guardian-center { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40px; height:90px; background: linear-gradient(180deg, #3a4048 0%, #2a3038 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 15px rgba(0,0,0,.7); animation: le-guardian-c 25s ease-in-out infinite; }
.scn-laughter-excess .torch-glow { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:8px; height:15px; background: radial-gradient(ellipse at 50% 30%, #ffd060 0%, #b08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,208,96,.5); animation: le-torch 3s ease-in-out infinite alternate; }
.scn-laughter-excess .shadow-floor { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%); }
@keyframes le-guardian-l { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes le-guardian-r { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes le-guardian-c { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes le-torch { 0% { transform: translateX(-50%) scaleY(1); opacity:0.8 } 50% { transform: translateX(-50%) scaleY(1.15) scaleX(0.85); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.7 } }

.scn-homer-laughter-of-gods { background: linear-gradient(180deg, #1a1520 0%, #2a2030 40%, #3a2a40 100%), radial-gradient(ellipse at 30% 70%, #4a3a50 0%, transparent 70%); }
.scn-homer-laughter-of-gods .bg-mansion { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #1a1520 100%); }
.scn-homer-laughter-of-gods .bg-balcony { position:absolute; top:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #3a2a40 0%, transparent 100%); border-radius: 20px; }
.scn-homer-laughter-of-gods .god-figure { position:absolute; top:15%; left:25%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 20%, #4a3a5a 0%, #2a1a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: hlg-god1 12s ease-in-out infinite; }
.scn-homer-laughter-of-gods .god-figure.second { left:55%; animation-delay: -6s; }
.scn-homer-laughter-of-gods .hephaestus { position:absolute; bottom:25%; left:35%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: hlg-hephaestus 15s ease-in-out infinite; }
.scn-homer-laughter-of-gods .anvil { position:absolute; bottom:22%; left:30%; width:20px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-homer-laughter-of-gods .fire-glow { position:absolute; bottom:30%; left:28%; width:10px; height:15px; background: radial-gradient(circle, #ff8040 0%, #ff4020 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,128,64,.6); animation: hlg-fire 4s ease-in-out infinite alternate; }
.scn-homer-laughter-of-gods .laugh-sound-vis { position:absolute; top:12%; left:30%; width:4px; height:4px; background: radial-gradient(circle, #ffd0a0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 4px rgba(255,208,160,.5); animation: hlg-laugh 3s ease-in-out infinite; }
@keyframes hlg-god1 { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(5deg) } 75% { transform: translateY(1px) rotate(-3deg) } }
@keyframes hlg-hephaestus { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(10px) translateY(-2px) rotate(3deg) } 70% { transform: translateX(-5px) translateY(2px) rotate(-2deg) } }
@keyframes hlg-fire { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.2) scaleX(0.8); opacity:1 } 100% { transform: scale(0.9); opacity:0.6 } }
@keyframes hlg-laugh { 0% { transform: translateY(0) scale(0.5); opacity:0 } 20% { opacity:1; transform: translateY(-10px) scale(1.5) } 40% { transform: translateY(-20px) scale(2) rotate(20deg) } 60% { transform: translateY(-30px) scale(1) rotate(-20deg) } 80% { transform: translateY(-20px) scale(1.5) rotate(10deg) } 100% { transform: translateY(0) scale(0.5); opacity:0 } }

.scn-delphic-god-religion {
  background: linear-gradient(180deg, #e8dac0 0%, #d4c0a0 50%, #c0a880 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-delphic-god-religion .bg-columns {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, #c8b898 0px 2px, transparent 2px 40px);
  opacity: 0.3; animation: dr-columns 20s linear infinite;
}
.scn-delphic-god-religion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #a08a70 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-delphic-god-religion .altar {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b898 0%, #a88a6a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dr-altar 8s ease-in-out infinite alternate;
}
.scn-delphic-god-religion .flame-a {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 24px;
  background: radial-gradient(ellipse 50% 50%, #ffd080 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: dr-flame 3s ease-in-out infinite alternate;
}
.scn-delphic-god-religion .flame-b {
  position: absolute; bottom: 30%; left: 52%; width: 10px; height: 20px;
  background: radial-gradient(ellipse 50% 50%, #ffc060 0%, #ffa020 40%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: dr-flame 3s ease-in-out 1.5s infinite alternate;
}
.scn-delphic-god-religion .statue {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dr-statue 12s ease-in-out infinite alternate;
}
.scn-delphic-god-religion .shadow {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: dr-shadow 4s ease-in-out infinite alternate;
}
.scn-delphic-god-religion .votive {
  position: absolute; bottom: 25%; left: 55%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #e0c890 0%, #c0a870 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dr-votive 6s ease-in-out infinite;
}
@keyframes dr-columns { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes dr-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes dr-flame { 0% { opacity:0.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.2) translateY(-4px); } 100% { opacity:0.8; transform: scale(0.9) translateY(0); } }
@keyframes dr-statue { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes dr-shadow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes dr-votive { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-justice-residue-of-virtues {
  background: linear-gradient(180deg, #d8ccc0 0%, #c4b4a4 50%, #b09884 100%), radial-gradient(ellipse at 50% 80%, #e8d8c8 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-justice-residue-of-virtues .wall {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(90deg, #c8b898 0px 1px, transparent 1px 30px);
  opacity: 0.15; animation: jr-wall 25s linear infinite;
}
.scn-justice-residue-of-virtues .bench {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 4%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: jr-bench 10s ease-in-out infinite alternate;
}
.scn-justice-residue-of-virtues .figure-left {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jr-figure 6s ease-in-out infinite;
}
.scn-justice-residue-of-virtues .figure-right {
  position: absolute; bottom: 25%; right: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jr-figure 6s ease-in-out 3s infinite;
}
.scn-justice-residue-of-virtues .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: jr-scroll 8s ease-in-out infinite alternate;
}
.scn-justice-residue-of-virtues .lamp {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 50%, #ffe0a0 0%, #ffc060 50%, transparent 80%);
  border-radius: 50%; filter: blur(3px);
  animation: jr-lamp 4s ease-in-out infinite alternate;
}
.scn-justice-residue-of-virtues .dust {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: jr-dust 15s ease-in-out infinite alternate;
}
@keyframes jr-wall { 0% { opacity:0.1; } 50% { opacity:0.2; } 100% { opacity:0.1; } }
@keyframes jr-bench { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes jr-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jr-scroll { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(0); } 100% { transform: translateX(-50%) scale(1) rotate(2deg); } }
@keyframes jr-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes jr-dust { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(20px,-30px) scale(1.5); opacity:0.8; } 100% { transform: translate(0,0) scale(1); opacity:0.3; } }

.scn-wisdom-of-guardians {
  background: linear-gradient(180deg, #d4c8b8 0%, #c0b0a0 50%, #a89888 100%), radial-gradient(ellipse at 50% 100%, #e0d0c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-wisdom-of-guardians .room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: wg-room 20s ease-in-out infinite alternate;
}
.scn-wisdom-of-guardians .desk {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wg-desk 10s ease-in-out infinite alternate;
}
.scn-wisdom-of-guardians .book-1 {
  position: absolute; bottom: 32%; left: 42%; width: 18px; height: 24px;
  background: linear-gradient(90deg, #7a6040 0%, #5a4020 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: wg-book 6s ease-in-out infinite alternate;
}
.scn-wisdom-of-guardians .book-2 {
  position: absolute; bottom: 32%; left: 48%; width: 20px; height: 22px;
  background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: wg-book 6s ease-in-out 3s infinite alternate;
}
.scn-wisdom-of-guardians .hand {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: wg-hand 4s ease-in-out infinite alternate;
}
.scn-wisdom-of-guardians .lamp {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 18px;
  background: radial-gradient(ellipse 50% 50%, #ffe8b0 0%, #ffc860 50%, transparent 80%);
  border-radius: 50%; filter: blur(4px);
  animation: wg-lamp 5s ease-in-out infinite alternate;
}
.scn-wisdom-of-guardians .shadow {
  position: absolute; bottom: 20%; left: 48%; width: 30%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: wg-shadow 8s ease-in-out infinite alternate;
}
@keyframes wg-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes wg-desk { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wg-book { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes wg-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes wg-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes wg-shadow { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.4; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

.scn-wisdom-in-smallest-class {
  background: linear-gradient(180deg, #d8ccc0 0%, #c4b4a4 50%, #b09884 100%), radial-gradient(ellipse at 50% 100%, #e0d0c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-wisdom-in-smallest-class .wall {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(0deg, transparent 0px 50px, #c8b8a8 50px 52px);
  opacity: 0.2; animation: ws-wall 30s linear infinite;
}
.scn-wisdom-in-smallest-class .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a890 0%, #a09080 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
}
.scn-wisdom-in-smallest-class .table {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ws-table 12s ease-in-out infinite alternate;
}
.scn-wisdom-in-smallest-class .student-1 {
  position: absolute; bottom: 30%; left: 35%; width: 20px; 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: ws-student 5s ease-in-out infinite;
}
.scn-wisdom-in-smallest-class .student-2 {
  position: absolute; bottom: 30%; right: 35%; width: 20px; 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: ws-student 5s ease-in-out 2.5s infinite;
}
.scn-wisdom-in-smallest-class .teacher {
  position: absolute; bottom: 35%; left: 50%; width: 22px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ws-teacher 8s ease-in-out infinite alternate;
}
.scn-wisdom-in-smallest-class .chalk {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 10px;
  transform: translateX(-50%);
  background: #e8d8c0;
  border-radius: 10% 10% 10% 10% / 30% 30% 30% 30%;
  animation: ws-chalk 3s ease-in-out infinite;
}
.scn-wisdom-in-smallest-class .light {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,230,180,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ws-light 10s ease-in-out infinite alternate;
}
@keyframes ws-wall { 0% { opacity:0.15; } 50% { opacity:0.25; } 100% { opacity:0.15; } }
@keyframes ws-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ws-student { 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(0); } }
@keyframes ws-teacher { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0) scale(1); } }
@keyframes ws-chalk { 0% { transform: translateX(-50%) translateY(0) rotate(-10deg); } 50% { transform: translateX(-50%) translateY(-5px) rotate(10deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ws-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }

.scn-unity-and-number { 
  background: 
    linear-gradient(180deg, #f8f6e6 0%, #e8e0c8 40%, #d8ceb0 100%),
    radial-gradient(ellipse at 50% 80%, #d8ceb0 0%, transparent 60%);
}
.scn-unity-and-number .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #f2edd9 0%, #e0d6b6 100%); }
.scn-unity-and-number .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #c8b68a 0%, #a89770 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-unity-and-number .column { position: absolute; bottom: 20%; left: 50%; width: 30px; height: 60%; transform: translateX(-50%); background: linear-gradient(180deg, #f0ead5 0%, #d6c9a5 50%, #bfae8a 100%); border-radius: 4px 4px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,0.08); animation: un-col 8s ease-in-out infinite; }
.scn-unity-and-number .unity-dot { position: absolute; top: 44%; left: 50%; width: 14px; height: 14px; transform: translate(-50%, -50%); background: radial-gradient(circle, #fff8d0 0%, #d4b86a 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(212,184,106,0.5); animation: un-dot 4s ease-in-out infinite; }
.scn-unity-and-number .num-row-1, .scn-unity-and-number .num-row-2, .scn-unity-and-number .num-row-3 { position: absolute; left: 50%; height: 6px; border-radius: 3px; background: #c0b090; transform: translateX(-50%); }
.scn-unity-and-number .num-row-1 { bottom: 38%; width: 60px; animation: un-num 6s ease-in-out infinite; }
.scn-unity-and-number .num-row-2 { bottom: 34%; width: 80px; animation: un-num 6s ease-in-out 1.5s infinite; }
.scn-unity-and-number .num-row-3 { bottom: 30%; width: 100px; animation: un-num 6s ease-in-out 3s infinite; }
.scn-unity-and-number .light-shaft { position: absolute; top: 0; left: 44%; width: 12%; height: 50%; background: linear-gradient(180deg, rgba(255,255,230,0.5) 0%, rgba(255,255,230,0) 100%); filter: blur(8px); animation: un-light 10s ease-in-out infinite alternate; }
.scn-unity-and-number .shadow-base { position: absolute; bottom: 20%; left: 43%; width: 14%; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%); }
@keyframes un-col { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes un-dot { 0%,100% { box-shadow: 0 0 20px 6px rgba(212,184,106,0.5); } 50% { box-shadow: 0 0 30px 12px rgba(255,236,160,0.7); } }
@keyframes un-num { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes un-light { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }

.scn-arithmetic-and-dialectic { 
  background: 
    linear-gradient(180deg, #fdfcf0 0%, #eee3c8 40%, #d4c4a0 100%),
    radial-gradient(ellipse at 50% 70%, #e8dcc0 0%, transparent 60%);
}
.scn-arithmetic-and-dialectic .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f8f0dd 0%, #e8dcc0 100%); }
.scn-arithmetic-and-dialectic .table { position: absolute; bottom: 30%; left: 30%; right: 30%; height: 12%; background: linear-gradient(180deg, #b8a888 0%, #9a8a6a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
.scn-arithmetic-and-dialectic .tablet { position: absolute; bottom: 34%; left: 38%; width: 24%; height: 8%; background: #f0e6d0; border-radius: 4px; box-shadow: inset 0 0 0 2px #c8b898; }
.scn-arithmetic-and-dialectic .digit { position: absolute; bottom: 36%; width: 18px; height: 28px; background: linear-gradient(180deg, #d0b888 0%, #b8a070 100%); border-radius: 3px; color: transparent; }
.scn-arithmetic-and-dialectic .digit-a { left: 40%; animation: ad-digit 8s ease-in-out infinite; }
.scn-arithmetic-and-dialectic .digit-b { left: 46%; animation: ad-digit 8s ease-in-out 2s infinite; }
.scn-arithmetic-and-dialectic .digit-c { left: 52%; animation: ad-digit 8s ease-in-out 4s infinite; }
.scn-arithmetic-and-dialectic .spiral { position: absolute; top: 15%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); background: conic-gradient(from 0deg, #c0b898 0%, #d0c8a8 10%, #c0b898 20%, #e0d4b0 30%, #c0b898 40%, #d0c8a8 50%, #c0b898 60%, #e0d4b0 70%, #c0b898 80%, #d0c8a8 90%, #c0b898 100%); border-radius: 50%; mask: radial-gradient(circle, transparent 40%, black 41%, black 45%, transparent 46%); -webkit-mask: radial-gradient(circle, transparent 40%, black 41%, black 45%, transparent 46%); animation: ad-spiral 15s linear infinite; }
.scn-arithmetic-and-dialectic .figure { position: absolute; bottom: 35%; left: 44%; width: 20px; height: 40px; background: linear-gradient(180deg, #b8a88a 0%, #a09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-figure 6s ease-in-out infinite; }
@keyframes ad-digit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ad-spiral { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes ad-figure { 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); } }

.scn-geometry-leads-to-being { 
  background: 
    linear-gradient(180deg, #fefcf2 0%, #e8dec6 40%, #d4c4a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-geometry-leads-to-being .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #f6f0e0 0%, #e8dec6 100%); }
.scn-geometry-leads-to-being .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-geometry-leads-to-being .ladder { position: absolute; bottom: 20%; left: 50%; width: 8px; height: 60%; transform: translateX(-50%); background: repeating-linear-gradient(0deg, #c0a88a 0px, #c0a88a 4px, transparent 4px, transparent 30px), linear-gradient(90deg, transparent 20%, #b8a080 20%, #b8a080 80%, transparent 80%); animation: glb-ladder 12s ease-in-out infinite; }
.scn-geometry-leads-to-being .square { position: absolute; bottom: 58%; left: 42%; width: 30px; height: 30px; background: rgba(180,160,130,0.7); border: 2px solid #b8a080; transform: rotate(15deg); animation: glb-square 10s ease-in-out infinite; }
.scn-geometry-leads-to-being .triangle { position: absolute; bottom: 48%; left: 46%; width: 0; height: 0; border-left: 18px solid transparent; border-right: 18px solid transparent; border-bottom: 30px solid rgba(200,180,140,0.8); animation: glb-tri 9s ease-in-out infinite; }
.scn-geometry-leads-to-being .circle { position: absolute; bottom: 42%; left: 40%; width: 26px; height: 26px; background: radial-gradient(circle, rgba(220,200,160,0.9) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(220,200,160,0.5); animation: glb-circle 8s ease-in-out infinite; }
.scn-geometry-leads-to-being .beam { position: absolute; top: 0; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(255,255,210,0.6) 0%, rgba(255,255,210,0) 100%); filter: blur(10px); animation: glb-beam 8s ease-in-out infinite alternate; }
.scn-geometry-leads-to-being .shadow-figure { position: absolute; bottom: 20%; left: 44%; width: 30px; height: 50px; background: rgba(80,70,50,0.3); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: glb-shadow 5s ease-in-out infinite; }
@keyframes glb-ladder { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes glb-square { 0%,100% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } }
@keyframes glb-tri { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes glb-circle { 0%,100% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 16px 6px rgba(220,200,160,0.7); } }
@keyframes glb-beam { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }
@keyframes glb-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2) translateX(2px); } }

.scn-harmonics-as-sister-science { 
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-harmonics-as-sister-science .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); }
.scn-harmonics-as-sister-science .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3e 100%); }
.scn-harmonics-as-sister-science .ring { position: absolute; left: 50%; transform: translateX(-50%); border: 2px solid rgba(200,180,255,0.3); border-radius: 50%; background: transparent; }
.scn-harmonics-as-sister-science .ring-1 { bottom: 40%; width: 120px; height: 120px; animation: hss-ring 20s linear infinite; }
.scn-harmonics-as-sister-science .ring-2 { bottom: 32%; width: 180px; height: 180px; animation: hss-ring 25s linear infinite reverse; }
.scn-harmonics-as-sister-science .ring-3 { bottom: 24%; width: 240px; height: 240px; animation: hss-ring 30s linear infinite; }
.scn-harmonics-as-sister-science .star { position: absolute; width: 4px; height: 4px; background: #fff8d0; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,248,208,0.6); }
.scn-harmonics-as-sister-science .star-a { top: 18%; left: 20%; animation: hss-star 4s ease-in-out infinite; }
.scn-harmonics-as-sister-science .star-b { top: 10%; right: 30%; animation: hss-star 4s ease-in-out 1s infinite; }
.scn-harmonics-as-sister-science .star-c { top: 25%; left: 60%; animation: hss-star 4s ease-in-out 2s infinite; }
.scn-harmonics-as-sister-science .instrument { position: absolute; bottom: 24%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hss-instr 6s ease-in-out infinite; }
@keyframes hss-ring { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes hss-star { 0%,100% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } }
@keyframes hss-instr { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }

/* Scenes */

/* lover-of-wisdom-defined */
.scn-lover-of-wisdom-defined {
  background: linear-gradient(180deg, #f5f0e8 0%, #e5dcc8 40%, #d4c4a8 100%), radial-gradient(ellipse at 50% 80%, #ffeedd 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-lover-of-wisdom-defined .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #c8b89a 0%, #dccab0 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.1);
}
.scn-lover-of-wisdom-defined .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #faf5ec 0%, #efe6d6 80%);
}
.scn-lover-of-wisdom-defined .window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #e0f0ff 0%, #b8d8f0 100%);
  border: 6px solid #b89a78; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: lwd-skylight 8s ease-in-out infinite alternate;
}
.scn-lover-of-wisdom-defined .desk {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #a0886a 0%, #7a644a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-lover-of-wisdom-defined .scroll {
  position: absolute; bottom: 28%; left: 52%; width: 16%; height: 6%;
  background: linear-gradient(135deg, #f5e8d0 0%, #dcc8a8 100%);
  border-radius: 0 8px 8px 0; transform: rotate(-10deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.15);
  animation: lwd-scroll 12s ease-in-out infinite;
}
.scn-lover-of-wisdom-defined .amphora {
  position: absolute; bottom: 20%; left: 38%; width: 10%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 70%, #6b2e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
}
.scn-lover-of-wisdom-defined .figure {
  position: absolute; bottom: 18%; left: 15%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lwd-figure 6s ease-in-out infinite;
}
@keyframes lwd-skylight {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(1); }
}
@keyframes lwd-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes lwd-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* lovers-of-sounds-and-sights */
.scn-lovers-of-sounds-and-sights {
  background: linear-gradient(180deg, #fff4e0 0%, #f0e2cc 50%, #dcc6a8 100%), radial-gradient(circle at 30% 40%, #fff8e8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-lovers-of-sounds-and-sights .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #efe6d6 0%, #dcccb8 100%);
}
.scn-lovers-of-sounds-and-sights .window-frame {
  position: absolute; top: 5%; left: 5%; width: 45%; height: 70%;
  background: #d4b898; border: 6px solid #b89a78; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.2);
}
.scn-lovers-of-sounds-and-sights .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 18%; height: 70%;
  background: linear-gradient(90deg, #b87878 0%, #d8a898 100%);
  border-radius: 0 20px 20px 0; transform-origin: left;
  animation: lss-curtain 10s ease-in-out infinite alternate;
}
.scn-lovers-of-sounds-and-sights .curtain-right {
  position: absolute; top: 5%; right: 50%; width: 18%; height: 70%;
  background: linear-gradient(90deg, #d8a898 0%, #b87878 100%);
  border-radius: 20px 0 0 20px; transform-origin: right;
  animation: lss-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-lovers-of-sounds-and-sights .lyre {
  position: absolute; bottom: 18%; left: 55%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: lss-lyre 8s ease-in-out infinite;
}
.scn-lovers-of-sounds-and-sights .vase {
  position: absolute; bottom: 15%; left: 20%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #9ab8c0 0%, #6a8a94 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
}
.scn-lovers-of-sounds-and-sights .flower {
  position: absolute; bottom: 40%; left: 22%; width: 8%; height: 12%;
  background: radial-gradient(circle, #f5d0a0 0%, #e0b080 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(255,200,100,0.3);
  animation: lss-flower 6s ease-in-out infinite;
}
.scn-lovers-of-sounds-and-sights .painting {
  position: absolute; top: 8%; left: 52%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #a8c8d8 0%, #7898a8 100%);
  border: 4px solid #8a6a4a; border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
@keyframes lss-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1); }
}
@keyframes lss-lyre {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lss-flower {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

/* knowledge-and-opinion */
.scn-knowledge-and-opinion {
  background: linear-gradient(180deg, #e8e0d0 0%, #d4c8b4 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 10%, #f0ece0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-knowledge-and-opinion .shelf-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
}
.scn-knowledge-and-opinion .shelf-1 {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 4%;
  background: #8a7a5a; border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-knowledge-and-opinion .shelf-2 {
  position: absolute; top: 30%; left: 5%; right: 5%; height: 4%;
  background: #8a7a5a; border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-knowledge-and-opinion .shelf-3 {
  position: absolute; top: 50%; left: 5%; right: 5%; height: 4%;
  background: #8a7a5a; border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-knowledge-and-opinion .books {
  position: absolute; top: 14%; left: 10%; width: 80%; height: 16%;
  background: repeating-linear-gradient(90deg, 
    #a06040 0px, #a06040 6px, 
    #7a4a2a 6px, #7a4a2a 12px, 
    #b08060 12px, #b08060 18px, 
    #8a5a3a 18px, #8a5a3a 24px,
    #c89070 24px, #c89070 30px);
  border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: kno-books 20s linear infinite;
}
.scn-knowledge-and-opinion .ladder {
  position: absolute; bottom: 10%; left: 15%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #6a5a42 0%, #8a7a62 50%, #6a5a42 100%);
  border-radius: 2px; transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: kno-ladder 15s ease-in-out infinite;
}
.scn-knowledge-and-opinion .figure-k {
  position: absolute; bottom: 35%; left: 22%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kno-figure 8s ease-in-out infinite;
}
@keyframes kno-books {
  0% { background-position-x: 0; }
  100% { background-position-x: 30px; }
}
@keyframes kno-ladder {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes kno-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* being-and-not-being */
.scn-being-and-not-being {
  background: linear-gradient(180deg, #f5f0e8 0%, #e5dcc8 50%, #d4c4a8 100%), radial-gradient(ellipse at 50% 80%, #fff0d0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-being-and-not-being .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8b4 0%, #c0b09a 100%);
}
.scn-being-and-not-being .doorway {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 85%;
  background: #2a2a1a; border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-being-and-not-being .light-stream {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 85%;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, rgba(255,255,200,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: 0.5; animation: bnb-light 10s ease-in-out infinite alternate;
}
.scn-being-and-not-being .threshold {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #8a7048 0%, #6a5030 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-being-and-not-being .shadow-figure {
  position: absolute; bottom: 13%; left: 42%; width: 16%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: bnb-shadow 8s ease-in-out infinite;
}
.scn-being-and-not-being .floor-line {
  position: absolute; bottom: 14%; left: 0; right: 0; height: 0.5%;
  background: #8a7048;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
@keyframes bnb-light {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes bnb-shadow {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}

/* injustice-weakness */
.scn-injustice-weakness { background: linear-gradient(180deg, #f5e6d3 0%, #d9c5a8 100%), radial-gradient(ellipse at 80% 20%, #fff5e6 0%, transparent 70%); }
.scn-injustice-weakness .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(180,150,120,0.3) 100%); }
.scn-injustice-weakness .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c4a882 0%, #a88b6a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-injustice-weakness .pillar { position:absolute; left:50%; top:10%; bottom:20%; width:8px; transform:translateX(-50%); background: linear-gradient(180deg, #a88b6a 0%, #7a5e3e 100%); border-radius:4px; box-shadow: 2px 0 6px rgba(0,0,0,0.3); }
.scn-injustice-weakness .left-figure { position:absolute; left:30%; bottom:20%; width:20px; 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: breath-iw 4s ease-in-out infinite; }
.scn-injustice-weakness .right-figure { position:absolute; right:30%; bottom:20%; width:20px; 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: breath-iw 4s ease-in-out infinite reverse; }
.scn-injustice-weakness .window { position:absolute; right:12%; top:15%; width:40px; height:50px; background: radial-gradient(circle, #fff8e7 0%, #b8a080 70%); border-radius:4px 4px 10% 10%; box-shadow: 0 0 20px 8px rgba(255,248,231,0.4); animation: glow-iw 3s ease-in-out infinite alternate; }
.scn-injustice-weakness .light-beam { position:absolute; top:15%; right:12%; width:10px; height:200px; background: linear-gradient(180deg, rgba(255,248,231,0.3) 0%, transparent 100%); transform: rotate(-20deg); transform-origin: top right; animation: beam-iw 5s ease-in-out infinite alternate; }
.scn-injustice-weakness .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 60%); animation: shadow-iw 8s ease-in-out infinite alternate; }
@keyframes breath-iw { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes glow-iw { 0% { box-shadow: 0 0 15px 5px rgba(255,248,231,0.3); opacity:0.8; } 50% { box-shadow: 0 0 30px 12px rgba(255,248,231,0.6); opacity:1; } 100% { box-shadow: 0 0 20px 8px rgba(255,248,231,0.4); opacity:0.85; } }
@keyframes beam-iw { 0% { opacity:0.2; transform: rotate(-20deg) scaleX(1); } 50% { opacity:0.5; transform: rotate(-18deg) scaleX(1.1); } 100% { opacity:0.3; transform: rotate(-22deg) scaleX(0.9); } }
@keyframes shadow-iw { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* justice-and-happiness */
.scn-justice-and-happiness { background: linear-gradient(180deg, #faf3e0 0%, #e3d4b0 100%), radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%); }
.scn-justice-and-happiness .bg-balance { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,248,231,0.2) 0%, transparent 70%); }
.scn-justice-and-happiness .scale-base { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:10px; height:40px; background: linear-gradient(180deg, #8b7355 0%, #5a4328 100%); border-radius:4px; }
.scn-justice-and-happiness .beam { position:absolute; bottom:35%; left:30%; right:30%; height:6px; background: linear-gradient(90deg, #8b7355 0%, #a88b6a 50%, #8b7355 100%); border-radius:3px; transform-origin: center; animation: sway-jh 6s ease-in-out infinite; }
.scn-justice-and-happiness .left-pan { position:absolute; bottom:38%; left:20%; width:40px; height:12px; background: linear-gradient(180deg, #a88b6a 0%, #7a5e3e 100%); border-radius:50% 50% 0 0; box-shadow: 0 -2px 4px rgba(0,0,0,0.2); transform-origin: bottom center; animation: pan-jh 6s ease-in-out infinite; }
.scn-justice-and-happiness .right-pan { position:absolute; bottom:38%; right:20%; width:40px; height:12px; background: linear-gradient(180deg, #a88b6a 0%, #7a5e3e 100%); border-radius:50% 50% 0 0; box-shadow: 0 -2px 4px rgba(0,0,0,0.2); transform-origin: bottom center; animation: pan-jh 6s ease-in-out infinite reverse; }
.scn-justice-and-happiness .figure-just { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: stand-jh 4s ease-in-out infinite; }
.scn-justice-and-happiness .glow { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, rgba(255,220,180,0.4) 0%, transparent 70%); border-radius:50%; animation: glow-jh 5s ease-in-out infinite alternate; }
.scn-justice-and-happiness .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #c4a882 0%, #a88b6a 100%); border-radius: 20% 20% 0 0; }
@keyframes sway-jh { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pan-jh { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes stand-jh { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes glow-jh { 0% { box-shadow: 0 0 20px 10px rgba(255,220,180,0.2); opacity:0.7; } 50% { box-shadow: 0 0 40px 20px rgba(255,220,180,0.4); opacity:1; } 100% { box-shadow: 0 0 30px 15px rgba(255,220,180,0.3); opacity:0.8; } }

/* entertainment-at-festival */
.scn-entertainment-at-festival { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-entertainment-at-festival .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); }
.scn-entertainment-at-festival .sun { position:absolute; top:8%; left:15%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); animation: pulse-ef 4s ease-in-out infinite; }
.scn-entertainment-at-festival .stage { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #deb887 0%, #8b5a2b 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-entertainment-at-festival .dancer { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:20px; 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: dance-ef 2s ease-in-out infinite; }
.scn-entertainment-at-festival .confetti-1 { position:absolute; top:20%; left:30%; width:8px; height:12px; background: #f4a460; border-radius:2px; transform: rotate(30deg); animation: fall-ef 6s linear infinite; animation-delay:0s; }
.scn-entertainment-at-festival .confetti-2 { position:absolute; top:15%; right:25%; width:10px; height:6px; background: #87ceeb; border-radius:2px; transform: rotate(-45deg); animation: fall-ef 7s linear infinite; animation-delay:2s; }
.scn-entertainment-at-festival .confetti-3 { position:absolute; top:25%; left:60%; width:7px; height:9px; background: #90ee90; border-radius:2px; transform: rotate(15deg); animation: fall-ef 8s linear infinite; animation-delay:4s; }
.scn-entertainment-at-festival .crowd-shape { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(50,30,10,0.8) 0%, rgba(50,30,10,0.4) 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: sway-crowd-ef 3s ease-in-out infinite alternate; }
@keyframes pulse-ef { 0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(255,215,0,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(255,215,0,0.3); } }
@keyframes dance-ef { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } 25% { transform: translateX(-47%) rotate(0deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 75% { transform: translateX(-53%) rotate(0deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } }
@keyframes fall-ef { 0% { transform: translateY(-30px) rotate(0deg); opacity:1; } 100% { transform: translateY(100vh) rotate(360deg); opacity:0; } }
@keyframes sway-crowd-ef { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* sophistical-fabric-demolished */
.scn-sophistical-fabric-demolished { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%); }
.scn-sophistical-fabric-demolished .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%); }
.scn-sophistical-fabric-demolished .fabric-torn { position:absolute; top:15%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #7a5e3e 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 20% 80% 40% 60% / 30% 70% 30% 70%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: sway-fd 8s ease-in-out infinite; }
.scn-sophistical-fabric-demolished .tool { position:absolute; bottom:25%; left:40%; width:30px; height:10px; background: linear-gradient(90deg, #a08060 0%, #7a5e3e 100%); border-radius:2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: tool-fd 5s ease-in-out infinite; }
.scn-sophistical-fabric-demolished .table { position:absolute; bottom:10%; left:25%; right:25%; height:15%; background: linear-gradient(180deg, #5a4328 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-sophistical-fabric-demolished .shadow { position:absolute; bottom:10%; left:35%; right:35%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: shadow-fd 10s ease-in-out infinite alternate; }
.scn-sophistical-fabric-demolished .light-source { position:absolute; top:20%; left:60%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,200,100,0.2); animation: flicker-fd 3s ease-in-out infinite alternate; }
@keyframes sway-fd { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes tool-fd { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes shadow-fd { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes flicker-fd { 0% { opacity:0.6; box-shadow: 0 0 30px 10px rgba(255,200,100,0.15); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(255,200,100,0.3); } 100% { opacity:0.7; box-shadow: 0 0 40px 15px rgba(255,200,100,0.2); } }

/* continued-rewrite */
.scn-continued-rewrite {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #3a3028 80%, #4a3a30 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1c 0%, transparent 60%);
}
.scn-continued-rewrite .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2c2824 0%, #1e1c18 100%);
  animation: cr-shade 18s ease-in-out infinite alternate;
}
.scn-continued-rewrite .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3028 0%, #241c14 100%);
}
.scn-continued-rewrite .wall-shadow {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 30% 20%, rgba(0,0,0,0.25) 0%, transparent 50%);
  animation: cr-shadow 12s ease-in-out infinite alternate;
}
.scn-continued-rewrite .window {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%);
  border: 4px solid #4a3a28;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: cr-window 20s ease-in-out infinite;
}
.scn-continued-rewrite .altar {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-continued-rewrite .flame {
  position: absolute; bottom: 44%; left: 16.5%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc66 0%, #ff9922 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cr-flame 2s ease-in-out infinite alternate;
}
.scn-continued-rewrite .old-man {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-walk 6s ease-in-out infinite;
}
.scn-continued-rewrite .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a3a28 0%, #2c1e14 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  animation: cr-curtain 10s ease-in-out infinite alternate;
}
.scn-continued-rewrite .dust {
  position: absolute; top: 30%; left: 40%; width: 8px; height: 8px;
  background: rgba(200,180,150,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: cr-drift 20s linear infinite, cr-drift-y 17s ease-in-out infinite;
}
@keyframes cr-shade {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cr-shadow {
  0% { transform: translateX(-5px) scale(1); }
  100% { transform: translateX(5px) scale(1.02); }
}
@keyframes cr-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 15px rgba(20,40,60,0.5); }
  50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(20,40,60,0.7); }
  100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(20,40,60,0.4); }
}
@keyframes cr-flame {
  0% { transform: scaleY(0.8) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.85; }
}
@keyframes cr-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes cr-curtain {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.92); }
}
@keyframes cr-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}
@keyframes cr-drift-y {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

/* dialogue-only */
.scn-dialogue-only {
  background: linear-gradient(180deg, #1c1814 0%, #2a221e 40%, #38322a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2018 0%, transparent 60%);
}
.scn-dialogue-only .stage-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2c2420 0%, #181412 100%);
  animation: do-bg 20s ease-in-out infinite alternate;
}
.scn-dialogue-only .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3228 0%, #221a12 100%);
}
.scn-dialogue-only .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #4a3828 0%, #2c1e14 60%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  animation: do-curtain 12s ease-in-out infinite alternate;
}
.scn-dialogue-only .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #4a3828 0%, #2c1e14 60%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  animation: do-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-dialogue-only .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e1812 0%, #100c08 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: do-figure-a 8s ease-in-out infinite;
}
.scn-dialogue-only .figure-b {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e1812 0%, #100c08 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: do-figure-b 8s ease-in-out infinite;
}
.scn-dialogue-only .lamp {
  position: absolute; top: 8%; left: 46%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #5a5040 0%, #3a3228 100%);
  border-radius: 4px;
  animation: do-lamp 6s ease-in-out infinite alternate;
}
.scn-dialogue-only .light-spot {
  position: absolute; top: 14%; left: 44%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 60%);
  animation: do-spot 4s ease-in-out infinite alternate;
}
@keyframes do-bg {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes do-curtain {
  0% { transform: scaleX(0.95); }
  100% { transform: scaleX(1.05); }
}
@keyframes do-figure-a {
  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 do-figure-b {
  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 do-lamp {
  0% { transform: scaleY(0.9); opacity: 0.7; }
  100% { transform: scaleY(1.1); opacity: 1; }
}
@keyframes do-spot {
  0% { transform: scaleX(0.8) scaleY(0.8); opacity: 0.6; }
  50% { transform: scaleX(1) scaleY(1); opacity: 1; }
  100% { transform: scaleX(0.9) scaleY(0.9); opacity: 0.7; }
}

/* mimetic-art-question */
.scn-mimetic-art-question {
  background: linear-gradient(180deg, #1e1c18 0%, #2c2822 40%, #3a342c 100%),
              radial-gradient(ellipse at 50% 80%, #2c241c 0%, transparent 50%);
}
.scn-mimetic-art-question .study-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #221e18 0%, #14100c 100%);
  animation: ma-light 16s ease-in-out infinite alternate;
}
.scn-mimetic-art-question .bookshelf {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #3a3028 0%, #2a221c 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ma-shelf 20s ease-in-out infinite;
}
.scn-mimetic-art-question .desk {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a4036 0%, #2c241c 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-mimetic-art-question .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #c8b89a 0%, #a0906e 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ma-scroll 8s ease-in-out infinite alternate;
}
.scn-mimetic-art-question .lyre {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
}
.scn-mimetic-art-question .poet-figure {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1e1812 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-poet 7s ease-in-out infinite;
}
.scn-mimetic-art-question .candle {
  position: absolute; bottom: 35%; left: 42%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a868 100%);
  border-radius: 2px;
}
.scn-mimetic-art-question .candle-glow {
  position: absolute; bottom: 38%; left: 40%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,80,0.2) 0%, transparent 70%);
  animation: ma-glow 3s ease-in-out infinite alternate;
}
@keyframes ma-light {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ma-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ma-scroll {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-4deg) translateX(0); }
}
@keyframes ma-poet {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(-4px) scaleY(1.02); }
  50% { transform: translateX(0) scaleY(0.98); }
  75% { transform: translateX(3px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ma-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

/* guardians-imitators */
.scn-guardians-imitators {
  background: linear-gradient(180deg, #161412 0%, #262220 40%, #36302c 100%),
              radial-gradient(ellipse at 50% 90%, #2a241e 0%, transparent 60%);
}
.scn-guardians-imitators .chamber-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1c1814 0%, #100c0a 100%);
  animation: gi-dark 22s ease-in-out infinite alternate;
}
.scn-guardians-imitators .pillar-left {
  position: absolute; top: 0; left: 15%; width: 12%; height: 90%;
  background: linear-gradient(90deg, #3a322a 0%, #4a4038 30%, #3a322a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: gi-pillar 12s ease-in-out infinite alternate;
}
.scn-guardians-imitators .pillar-right {
  position: absolute; top: 0; right: 15%; width: 12%; height: 90%;
  background: linear-gradient(270deg, #3a322a 0%, #4a4038 30%, #3a322a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: gi-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-guardians-imitators .guardian-a {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a221c 0%, #18120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-guardians-imitators .guardian-b {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a221c 0%, #18120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gi-guard 6s ease-in-out infinite;
}
.scn-guardians-imitators .shield {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: gi-shield 8s ease-in-out infinite alternate;
}
.scn-guardians-imitators .torch-flame {
  position: absolute; top: 10%; left: 48%; width: 16px; height: 30px;
  background: radial-gradient(ellipse at 50% 80%, #ffcc66 0%, #ff9922 30%, transparent 70%);
  filter: blur(3px);
  animation: gi-fire 1.5s ease-in-out infinite alternate;
}
.scn-guardians-imitators .torch-glow {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: gi-glow 3s ease-in-out infinite alternate;
}
@keyframes gi-dark {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gi-pillar {
  0% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}
@keyframes gi-guard {
  0% { transform: rotate(-1deg) translateX(0); }
  25% { transform: rotate(1deg) translateX(-2px); }
  50% { transform: rotate(-1deg) translateX(0); }
  75% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes gi-shield {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes gi-fire {
  0% { transform: scaleY(0.8) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.85; }
}
@keyframes gi-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* royal-lie-intro */
.scn-royal-lie-intro { background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 50%, #a0886a 100%), radial-gradient(ellipse at 50% 30%, #f5e6c0 0%, transparent 70%); }
.scn-royal-lie-intro .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a488 100%); }
.scn-royal-lie-intro .pillars { position:absolute; bottom:0; width:20px; height:80%; background: linear-gradient(180deg, #f0e8d8 0%, #c0b098 100%); border-radius:4px; box-shadow: inset -2px 0 6px rgba(0,0,0,.15); }
.scn-royal-lie-intro .pillar-left { left:15%; }
.scn-royal-lie-intro .pillar-right { right:15%; }
.scn-royal-lie-intro .throne { position:absolute; bottom:12%; left:50%; width:90px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:12% 12% 6% 6%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: rli-throne 8s ease-in-out infinite; }
.scn-royal-lie-intro .king { position:absolute; bottom:22%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; animation: rli-king 3s ease-in-out infinite alternate; }
.scn-royal-lie-intro .council { position:absolute; bottom:8%; width:24px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: rli-council 5s ease-in-out infinite; }
.scn-royal-lie-intro .figure-left { left:30%; }
.scn-royal-lie-intro .figure-right { right:30%; }
.scn-royal-lie-intro .torch { position:absolute; bottom:30%; width:8px; height:25px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-royal-lie-intro .torch-left { left:22%; animation: rli-torch-l 4s ease-in-out infinite; }
.scn-royal-lie-intro .torch-right { right:22%; animation: rli-torch-r 4s ease-in-out infinite 2s; }
.scn-royal-lie-intro .torch::after { content:''; position:absolute; top:-10px; left:50%; width:16px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #f0c060 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px #e0a030; animation: rli-flame 1.5s ease-in-out infinite alternate; }
@keyframes rli-throne { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px); } }
@keyframes rli-king { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes rli-council { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rli-torch-l { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } }
@keyframes rli-torch-r { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } }
@keyframes rli-flame { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.15); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:.85; } }

/* myth-metals-born */
.scn-myth-metals-born { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a2a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-myth-metals-born .cave-back { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #2a2a2a 0%, #0a0a0a 100%); animation: mmb-cave 20s ease-in-out infinite alternate; }
.scn-myth-metals-born .earth-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:60% 60% 0 0 / 40% 40% 0 0; }
.scn-myth-metals-born .forge-glow { position:absolute; bottom:15%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, #c06020 0%, #602000 50%, transparent 80%); border-radius:50%; animation: mmb-glow 3s ease-in-out infinite alternate; }
.scn-myth-metals-born .anvil { position:absolute; bottom:18%; left:50%; width:40px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #504030 0%, #302010 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-myth-metals-born .figure-shaped { position:absolute; bottom:20%; left:52%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: mmb-figure 6s ease-in-out infinite; }
.scn-myth-metals-born .sparks { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #e0a030 0%, transparent 80%); border-radius:50%; }
.scn-myth-metals-born .spark-a { bottom:35%; left:45%; animation: mmb-spark-a 2s ease-in-out infinite; }
.scn-myth-metals-born .spark-b { bottom:30%; left:55%; animation: mmb-spark-b 2.5s ease-in-out infinite 1s; }
.scn-myth-metals-born .chain { position:absolute; width:6px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:3px; }
.scn-myth-metals-born .chain-top { top:8%; left:30%; height:40%; animation: mmb-chain 10s ease-in-out infinite; }
.scn-myth-metals-born .chain-bottom { top:8%; right:30%; height:40%; animation: mmb-chain 10s ease-in-out infinite 3s; }
@keyframes mmb-cave { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes mmb-glow { 0% { transform: translateX(-50%) scale(1); opacity:.7; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:.75; } }
@keyframes mmb-figure { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } }
@keyframes mmb-spark-a { 0% { transform: translateY(0) scale(1); opacity:0; } 30% { opacity:1; } 100% { transform: translateY(-40px) scale(0); opacity:0; } }
@keyframes mmb-spark-b { 0% { transform: translateY(0) scale(1); opacity:0; } 30% { opacity:1; } 100% { transform: translateY(-30px) scale(0); opacity:0; } }
@keyframes mmb-chain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* myth-gold-silver-brass */
.scn-myth-gold-silver-brass { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%); }
.scn-myth-gold-silver-brass .hall-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-myth-gold-silver-brass .pedestal { position:absolute; bottom:12%; width:40px; height:50px; border-radius:6% 6% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform-origin: bottom center; }
.scn-myth-gold-silver-brass .gold-ped { left:20%; background: linear-gradient(180deg, #c8a040 0%, #a08020 100%); animation: mgsb-ped-gold 7s ease-in-out infinite; }
.scn-myth-gold-silver-brass .silver-ped { left:45%; width:45px; height:55px; background: linear-gradient(180deg, #b0b8c0 0%, #808890 100%); animation: mgsb-ped-silver 8s ease-in-out infinite; }
.scn-myth-gold-silver-brass .brass-ped { right:15%; background: linear-gradient(180deg, #8a7a4a 0%, #6a5a3a 100%); animation: mgsb-ped-brass 9s ease-in-out infinite; }
.scn-myth-gold-silver-brass .scale-arm { position:absolute; bottom:35%; left:50%; width:80px; height:6px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:3px; animation: mgsb-arm 10s ease-in-out infinite; }
.scn-myth-gold-silver-brass .figure-kneeling { position:absolute; bottom:10%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(-10deg); animation: mgsb-kneel 5s ease-in-out infinite alternate; }
.scn-myth-gold-silver-brass .light-beam { position:absolute; top:0; width:12px; bottom:0; opacity:.15; border-radius:50%; filter: blur(10px); }
.scn-myth-gold-silver-brass .beam-gold { left:22%; background: radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 100%); animation: mgsb-beam-gold 4s ease-in-out infinite alternate; }
.scn-myth-gold-silver-brass .beam-silver { left:46%; width:18px; background: radial-gradient(ellipse at 50% 0%, #c0d0e0 0%, transparent 100%); animation: mgsb-beam-silver 5s ease-in-out infinite alternate 2s; }
.scn-myth-gold-silver-brass .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); }
@keyframes mgsb-ped-gold { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } }
@keyframes mgsb-ped-silver { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.06); } }
@keyframes mgsb-ped-brass { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes mgsb-arm { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes mgsb-kneel { 0% { transform: rotate(-12deg) translateY(0); } 100% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes mgsb-beam-gold { 0% { opacity:.1; } 100% { opacity:.25; } }
@keyframes mgsb-beam-silver { 0% { opacity:.1; } 100% { opacity:.2; } }

/* oracle-of-brass-guard */
.scn-oracle-of-brass-guard { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%); }
.scn-oracle-of-brass-guard .temple-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-oracle-of-brass-guard .oracle-throne { position:absolute; bottom:8%; left:50%; width:80px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:12% 12% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: obg-throne 6s ease-in-out infinite; }
.scn-oracle-of-brass-guard .oracle-figure { position:absolute; bottom:18%; left:50%; width:28px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; animation: obg-oracle 4s ease-in-out infinite alternate; }
.scn-oracle-of-brass-guard .guard-statue { position:absolute; bottom:4%; right:12%; width:35px; height:70px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:10% 10% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: obg-guard 8s ease-in-out infinite; }
.scn-oracle-of-brass-guard .brazier { position:absolute; bottom:22%; width:20px; height:24px; background: radial-gradient(ellipse, #c05020 0%, #602000 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #a04010; }
.scn-oracle-of-brass-guard .brazier-left { left:20%; animation: obg-braze-l 3s ease-in-out infinite; }
.scn-oracle-of-brass-guard .brazier-right { right:20%; animation: obg-braze-r 3.5s ease-in-out infinite 1.5s; }
.scn-oracle-of-brass-guard .smoke { position:absolute; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 80%); border-radius:50%; filter: blur(6px); }
.scn-oracle-of-brass-guard .smoke-a { bottom:45%; left:30%; animation: obg-smoke-a 15s linear infinite; }
.scn-oracle-of-brass-guard .smoke-b { bottom:48%; right:25%; animation: obg-smoke-b 18s linear infinite 5s; }
.scn-oracle-of-brass-guard .crack { position:absolute; bottom:0; left:50%; width:4px; height:20px; transform:translateX(-50%); background: #2a1a1a; border-radius:2px; animation: obg-crack 12s ease-in-out infinite; }
@keyframes obg-throne { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.3deg) translateY(-1px); } }
@keyframes obg-oracle { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes obg-guard { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes obg-braze-l { 0%,100% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.15); opacity:1; } }
@keyframes obg-braze-r { 0%,100% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.15); opacity:1; } }
@keyframes obg-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.2; } 100% { transform: translateY(-60px) scale(1.8); opacity:0; } }
@keyframes obg-smoke-b { 0% { transform: translateY(0) scale(1); opacity:.15; } 100% { transform: translateY(-70px) scale(2); opacity:0; } }
@keyframes obg-crack { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } }

/* Scene 1: image-of-waves */
.scn-image-of-waves {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%),
              radial-gradient(ellipse at 50% 20%, #0f3460 0%, transparent 70%);
}
.scn-image-of-waves .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #1a1a2e 40%, #0f0f1a 100%);
  animation: wv-room 12s ease-in-out infinite alternate;
}
.scn-image-of-waves .window-view {
  position: absolute; left: 18%; top: 10%; width: 64%; height: 50%;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-image-of-waves .sky {
  position: absolute; left: 0; right: 0; top: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a5e 0%, #4a6a8e 100%);
  animation: wv-sky 18s ease-in-out infinite alternate;
}
.scn-image-of-waves .sea {
  position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
  background: linear-gradient(180deg, #2a5080 0%, #1a3050 100%);
  animation: wv-sea 14s ease-in-out infinite alternate;
}
.scn-image-of-waves .wave-1 {
  position: absolute; left: 0; bottom: 10%; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #4a7a9a 0%, transparent 100%);
  border-radius: 50%;
  animation: wv-wave1 8s ease-in-out infinite;
}
.scn-image-of-waves .wave-2 {
  position: absolute; left: 0; bottom: 25%; width: 100%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #3a6a8a 0%, transparent 100%);
  border-radius: 50%;
  animation: wv-wave2 10s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-image-of-waves .window-frame {
  position: absolute; left: 16%; top: 8%; width: 68%; height: 54%;
  border: 8px solid #3a2a1a;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.7);
  pointer-events: none;
}
.scn-image-of-waves .lamp {
  position: absolute; left: 12%; bottom: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-image-of-waves .lamp-glow {
  position: absolute; left: 10%; bottom: 33%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0a050 0%, rgba(208,160,80,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: wv-lampglow 3s ease-in-out infinite alternate;
}

@keyframes wv-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes wv-sky {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.8; transform: translateY(1px); }
}
@keyframes wv-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes wv-wave1 {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(10px) scale(1.05); opacity: 1; }
  100% { transform: translateX(-5px) scale(0.95); opacity: 0.7; }
}
@keyframes wv-wave2 {
  0% { transform: translateX(0) scale(1) rotate(0deg); }
  50% { transform: translateX(-8px) scale(1.03) rotate(1deg); }
  100% { transform: translateX(5px) scale(0.97) rotate(-1deg); }
}
@keyframes wv-lampglow {
  0% { transform: scale(0.9); opacity: 0.6; box-shadow: 0 0 10px 2px rgba(208,160,80,0.4); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 20px 6px rgba(208,160,80,0.6); }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 14px 3px rgba(208,160,80,0.5); }
}

/* Scene 2: defects-in-communism */
.scn-defects-in-communism {
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a3e 0%, transparent 70%);
}
.scn-defects-in-communism .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e2e 60%, #38384a 100%);
  animation: dfc-room 15s ease-in-out infinite alternate;
}
.scn-defects-in-communism .desk {
  position: absolute; left: 10%; right: 10%; bottom: 8%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-defects-in-communism .books {
  position: absolute; left: 15%; bottom: 15%; width: 18%; height: 10%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 30%, #4a2a0a 70%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-defects-in-communism .papers {
  position: absolute; left: 35%; bottom: 16%; width: 25%; height: 4%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 1px;
  box-shadow: 0 2px 3px rgba(0,0,0,0.3);
  animation: dfc-papers 8s ease-in-out infinite;
}
.scn-defects-in-communism .candle {
  position: absolute; left: 68%; bottom: 20%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 60%, #8a6a3a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-defects-in-communism .candle-glow {
  position: absolute; left: 65%; bottom: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: dfc-candle 3s ease-in-out infinite alternate;
}
.scn-defects-in-communism .figure {
  position: absolute; left: 42%; bottom: 8%; width: 28px; 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: dfc-figure 6s ease-in-out infinite;
}
.scn-defects-in-communism .quill {
  position: absolute; left: 50%; bottom: 16%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 50%, #4a3a2a 100%);
  border-radius: 0 60% 40% 40% / 20% 80% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: dfc-quill 4s ease-in-out infinite alternate;
}

@keyframes dfc-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dfc-papers {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dfc-candle {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes dfc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dfc-quill {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(0.95); }
  100% { transform: rotate(10deg) scaleY(1); }
}

/* Scene 3: delineation-of-philosopher */
.scn-delineation-of-philosopher {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 70%);
}
.scn-delineation-of-philosopher .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%);
  animation: phl-room 20s ease-in-out infinite alternate;
}
.scn-delineation-of-philosopher .bookcase {
  position: absolute; left: 5%; top: 5%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 50%, #4a2a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-delineation-of-philosopher .fireplace {
  position: absolute; left: 35%; bottom: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-delineation-of-philosopher .fire {
  position: absolute; left: 40%; bottom: 15%; width: 20%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #ff6030 0%, #ff8040 30%, #ffa060 60%, transparent 100%);
  border-radius: 50%;
  animation: phl-fire 2s ease-in-out infinite alternate;
}
.scn-delineation-of-philosopher .armchair {
  position: absolute; left: 50%; bottom: 5%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-delineation-of-philosopher .figure {
  position: absolute; left: 54%; bottom: 12%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: phl-figure 8s ease-in-out infinite;
}
.scn-delineation-of-philosopher .lamp {
  position: absolute; left: 70%; bottom: 35%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(255,160,80,0.5);
  animation: phl-lamp 4s ease-in-out infinite alternate;
}

@keyframes phl-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes phl-fire {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.7; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(-1px); opacity: 0.8; }
}
@keyframes phl-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  75% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes phl-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 6px 1px rgba(255,160,80,0.4); }
  50% { opacity: 1; box-shadow: 0 0 12px 4px rgba(255,160,80,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 8px 2px rgba(255,160,80,0.5); }
}

/* Scene 4: contingent-matter */
.scn-contingent-matter {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 70%);
}
.scn-contingent-matter .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #0f0f1a 100%);
  animation: cnt-room 18s ease-in-out infinite alternate;
}
.scn-contingent-matter .desk {
  position: absolute; left: 15%; right: 15%; bottom: 8%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-contingent-matter .book {
  position: absolute; left: 25%; bottom: 14%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.scn-contingent-matter .sphere {
  position: absolute; left: 48%; bottom: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e0ff 0%, #8090c0 50%, #4060a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(128,144,192,0.6);
  animation: cnt-sphere 4s ease-in-out infinite alternate;
}
.scn-contingent-matter .sphere-glow {
  position: absolute; left: 44%; bottom: 14%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(208,224,255,0.4) 0%, rgba(128,144,192,0.1) 60%, transparent 100%);
  border-radius: 50%;
  animation: cnt-sphereglow 4s ease-in-out infinite alternate;
}
.scn-contingent-matter .candle {
  position: absolute; left: 70%; bottom: 20%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 60%, #8a6a3a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-contingent-matter .candle-glow {
  position: absolute; left: 67%; bottom: 18%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: cnt-candle 3s ease-in-out infinite alternate;
}
.scn-contingent-matter .arm {
  position: absolute; left: 50%; bottom: 14%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: cnt-arm 6s ease-in-out infinite;
}

@keyframes cnt-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cnt-sphere {
  0% { transform: scale(0.95) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.05) rotate(10deg); opacity: 1; }
  100% { transform: scale(1) rotate(-5deg); opacity: 0.9; }
}
@keyframes cnt-sphereglow {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes cnt-candle {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes cnt-arm {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

/* justice-medicine-law – tense bright interior, courtroom */
.scn-justice-medicine-law {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #b8a48c 40%, #8a7a62 100%),
    radial-gradient(ellipse at 50% 100%, #e8d8c0 0%, transparent 70%);
  animation: jml-bg 10s ease-in-out infinite alternate;
}
.scn-justice-medicine-law .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a090 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.2);
}
.scn-justice-medicine-law .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #7a6a5a 8px, #6a5a4a 16px);
  opacity: 0.6;
}
.scn-justice-medicine-law .bench {
  position: absolute; bottom: 28%; left: 38%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: skewX(-2deg);
}
.scn-justice-medicine-law .scales {
  position: absolute; bottom: 36%; left: 42%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #d0b070 0%, #a08050 60%, transparent);
  clip-path: polygon(30% 10%, 70% 10%, 60% 50%, 40% 50%);
  animation: jml-sway 4s ease-in-out infinite;
}
.scn-justice-medicine-law .staff {
  position: absolute; bottom: 32%; left: 28%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #b09050 0%, #806030 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-justice-medicine-law .figure {
  position: absolute; bottom: 24%; left: 48%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jml-figure 6s ease-in-out infinite;
}
.scn-justice-medicine-law .lamp {
  position: absolute; top: 8%; left: 10%; width: 4%; height: 6%;
  background: radial-gradient(circle, #f0d890 0%, #d0b060 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,216,144,0.4), 0 0 80px 40px rgba(240,216,144,0.2);
  animation: jml-lamp 3s ease-in-out infinite alternate;
}
.scn-justice-medicine-law .gavel {
  position: absolute; bottom: 30%; left: 36%; width: 8%; height: 3%;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: jml-strike 2s ease-in-out infinite;
}
@keyframes jml-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes jml-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes jml-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2%) rotate(1deg) } 50% { transform: translateX(4%) rotate(-1deg) } 75% { transform: translateX(6%) rotate(1deg) } 100% { transform: translateX(8%) rotate(0) } }
@keyframes jml-lamp { 0% { box-shadow: 0 0 30px 15px rgba(240,216,144,0.3); } 50% { box-shadow: 0 0 60px 30px rgba(240,216,144,0.6); } 100% { box-shadow: 0 0 40px 20px rgba(240,216,144,0.4); } }
@keyframes jml-strike { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* litigiousness-disgrace – dark mood, bright interior, man surrounded by legal papers */
.scn-litigiousness-disgrace {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 80%);
  animation: lg-bg 14s ease-in-out infinite alternate;
}
.scn-litigiousness-disgrace .bg-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, rgba(0,0,0,0.1) 40px, transparent 80px);
  opacity: 0.5;
}
.scn-litigiousness-disgrace .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.8);
  transform: perspective(200px) rotateX(5deg);
}
.scn-litigiousness-disgrace .scroll {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 2%;
  background: linear-gradient(90deg, #c8b080 0%, #b09860 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lg-scroll 8s ease-in-out infinite alternate;
}
.scn-litigiousness-disgrace .hand-left {
  position: absolute; bottom: 18%; left: 20%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(10deg);
  animation: lg-hand-left 6s ease-in-out infinite;
}
.scn-litigiousness-disgrace .hand-right {
  position: absolute; bottom: 18%; right: 20%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-10deg);
  animation: lg-hand-right 6s ease-in-out infinite;
}
.scn-litigiousness-disgrace .face {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: lg-face 10s ease-in-out infinite;
}
.scn-litigiousness-disgrace .candle {
  position: absolute; top: 10%; left: 10%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c0a0 60%, #c0a080 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 6px rgba(255,200,100,0.5);
}
.scn-litigiousness-disgrace .flame {
  position: absolute; top: 7%; left: 10.5%; width: 1.5%; height: 3%;
  background: radial-gradient(circle, #ffd080 0%, #ff8040 70%, transparent);
  border-radius: 50%;
  animation: lg-flame 1.5s ease-in-out infinite alternate;
}
@keyframes lg-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.7 } }
@keyframes lg-scroll { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lg-hand-left { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2%) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes lg-hand-right { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2%) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes lg-face { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes lg-flame { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.3) } 100% { transform: scaleY(0.9) } }

/* healing-illness-valetudinarian – dark mood, sickbed interior */
.scn-healing-illness-valetudinarian {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
  animation: hiv-bg 12s ease-in-out infinite alternate;
}
.scn-healing-illness-valetudinarian .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.3) 100%);
}
.scn-healing-illness-valetudinarian .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
}
.scn-healing-illness-valetudinarian .pillow {
  position: absolute; bottom: 28%; left: 15%; width: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #d0c0b0 0%, #b0a090 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: hiv-pillow 8s ease-in-out infinite alternate;
}
.scn-healing-illness-valetudinarian .body {
  position: absolute; bottom: 15%; left: 22%; width: 55%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 18px rgba(0,0,0,0.5);
  animation: hiv-breath 4s ease-in-out infinite;
}
.scn-healing-illness-valetudinarian .blanket {
  position: absolute; bottom: 12%; left: 16%; width: 68%; height: 12%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
  animation: hiv-cover 6s ease-in-out infinite alternate;
}
.scn-healing-illness-valetudinarian .cup {
  position: absolute; bottom: 22%; right: 18%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: hiv-cup 10s ease-in-out infinite;
}
.scn-healing-illness-valetudinarian .lamp-dim {
  position: absolute; top: 8%; right: 12%; width: 4%; height: 5%;
  background: radial-gradient(circle, #d0a060 0%, #a07030 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(208,160,96,0.3);
  animation: hiv-lamp 5s ease-in-out infinite alternate;
}
@keyframes hiv-bg { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes hiv-pillow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2%) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes hiv-breath { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes hiv-cover { 0% { transform: translateY(0) } 50% { transform: translateY(-1%) } 100% { transform: translateY(0) } }
@keyframes hiv-cup { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes hiv-lamp { 0% { box-shadow: 0 0 20px 10px rgba(208,160,96,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 20px rgba(208,160,96,0.5); opacity: 1 } 100% { box-shadow: 0 0 30px 15px rgba(208,160,96,0.3); opacity: 0.85 } }

/* disease-names-asclepius – calm bright interior, healing sanctuary */
.scn-disease-names-asclepius {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b898 100%),
    radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 80%);
  animation: dna-bg 20s ease-in-out infinite alternate;
}
.scn-disease-names-asclepius .sky-calm {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e8f0f8 0%, #d0dde8 100%);
  opacity: 0.7;
}
.scn-disease-names-asclepius .pillar {
  position: absolute; bottom: 0; left: 35%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #e0d0c0 0%, #f0e0d0 30%, #d0c0b0 100%);
  border-radius: 4px;
  box-shadow: 2px 0 12px rgba(0,0,0,0.2);
}
.scn-disease-names-asclepius .staff {
  position: absolute; bottom: 10%; left: 42%; width: 2%; height: 60%;
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  transform: rotate(5deg);
}
.scn-disease-names-asclepius .snake {
  position: absolute; bottom: 30%; left: 38%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  animation: dna-snake 12s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.scn-disease-names-asclepius .bowl {
  position: absolute; bottom: 8%; left: 36%; width: 12%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #e0d0c0 0%, #c8b8a8 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-disease-names-asclepius .light {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  opacity: 0.5;
  animation: dna-light 6s ease-in-out infinite alternate;
}
.scn-disease-names-asclepius .petals {
  position: absolute; bottom: 5%; left: 20%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e0a080 0%, #c08060 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(192,128,96,0.5);
  animation: dna-petals 20s ease-in-out infinite;
}
@keyframes dna-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dna-snake { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-1%) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(1%) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes dna-light { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.05) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes dna-petals { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(15deg) } 50% { transform: translateX(0) rotate(30deg) } 75% { transform: translateX(-2%) rotate(15deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene 1: poets-lies-about-gods */
.scn-poets-lies-about-gods {
  background:
    linear-gradient(180deg, #2b1e14 0%, #1a130f 50%, #0d0b09 100%),
    radial-gradient(ellipse at 40% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-poets-lies-about-gods .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1f15 0%, #1e1610 50%, #2a1f15 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-poets-lies-about-gods .desk {
  position: absolute; bottom: 15%; left: 25%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-poets-lies-about-gods .lamp {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
}
.scn-poets-lies-about-gods .glow {
  position: absolute; bottom: 37%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0d090 0%, #c8a060 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 10%);
  box-shadow: 0 0 40px 20px #c8a060, 0 0 80px 40px rgba(200,160,96,0.3);
  animation: plg-flicker 3s ease-in-out infinite alternate;
}
.scn-poets-lies-about-gods .figure {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-2deg);
  animation: plg-breathe 5s ease-in-out infinite;
}
.scn-poets-lies-about-gods .dust {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(220,200,170,0.3), transparent);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-poets-lies-about-gods .particle-1 {
  top: 40%; left: 30%;
  animation: plg-drift-1 20s linear infinite;
}
.scn-poets-lies-about-gods .particle-2 {
  top: 50%; left: 60%;
  animation: plg-drift-2 25s linear infinite;
  animation-delay: -5s;
}
.scn-poets-lies-about-gods .particle-3 {
  top: 35%; left: 70%;
  animation: plg-drift-1 22s linear infinite reverse;
  animation-delay: -10s;
}

@keyframes plg-flicker {
  0% { opacity: 0.7; transform: translate(-50%, 10%) scale(0.95); }
  50% { opacity: 1; transform: translate(-50%, 10%) scale(1.05); }
  100% { opacity: 0.8; transform: translate(-50%, 10%) scale(1); }
}
@keyframes plg-breathe {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes plg-drift-1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.2; }
  100% { transform: translate(80px, -40px) scale(1.5); opacity: 0; }
}
@keyframes plg-drift-2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  25% { opacity: 0.4; }
  75% { opacity: 0.1; }
  100% { transform: translate(-60px, -30px) scale(1.3); opacity: 0; }
}

/* Scene 2: god-not-deceive */
.scn-god-not-deceive {
  background:
    linear-gradient(180deg, #1f1814 0%, #14100c 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e16 0%, transparent 50%);
}
.scn-god-not-deceive .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1c1611 0%, #16100b 50%, #1c1611 100%);
}
.scn-god-not-deceive .bookshelf {
  position: absolute; top: 10%; left: 10%; width: 55%; height: 55%;
  background: repeating-linear-gradient(
    0deg,
    #3a2a1a 0px, #3a2a1a 6px,
    #2a1e14 6px, #2a1e14 8px,
    transparent 8px, transparent 12px
  );
  border: 4px solid #2a1a0e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-god-not-deceive .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3628 0%, #2d2016 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
}
.scn-god-not-deceive .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #c8a88a 0%, #8a6a4a 70%, #5a3a22 100%);
  border-radius: 30% 30% 0 0;
  transform: translateX(-50%);
}
.scn-god-not-deceive .flame {
  position: absolute; bottom: 55%; left: 50%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #f0a050 50%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -100%);
  box-shadow: 0 0 30px 15px #f0a050, 0 0 60px 30px rgba(240,160,80,0.3);
  animation: gnd-fire 2s ease-in-out infinite alternate;
}
.scn-god-not-deceive .figure-seated {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2e2018 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: gnd-figure 6s ease-in-out infinite;
}
.scn-god-not-deceive .shadow {
  position: absolute; bottom: 16%; left: 30%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: gnd-shadow-osc 8s ease-in-out infinite;
}
@keyframes gnd-fire {
  0% { transform: translate(-50%, -100%) scale(0.9) rotate(-3deg); opacity: 0.8; }
  50% { transform: translate(-50%, -100%) scale(1.1) rotate(3deg); opacity: 1; }
  100% { transform: translate(-50%, -100%) scale(1) rotate(0); opacity: 0.9; }
}
@keyframes gnd-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes gnd-shadow-osc {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* Scene 3: true-lie */
.scn-true-lie {
  background:
    linear-gradient(180deg, #1c1814 0%, #120e0a 50%, #080604 100%),
    radial-gradient(ellipse at 30% 50%, #2a2218 0%, transparent 60%);
}
.scn-true-lie .bg-dark {
  position: absolute; inset: 0;
  background: #0a0806;
}
.scn-true-lie .wall-shadow {
  position: absolute; inset: 20% 10% 15% 5%;
  background: linear-gradient(135deg, #1c1610 0%, #0e0a06 60%);
  border-radius: 20px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-true-lie .hand {
  position: absolute; bottom: 30%; left: 40%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #b89878 0%, #8a6e52 100%);
  border-radius: 30% 50% 30% 40% / 40% 50% 30% 40%;
  transform: rotate(10deg);
  animation: trl-hand 4s ease-in-out infinite alternate;
}
.scn-true-lie .scroll {
  position: absolute; bottom: 34%; left: 48%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: trl-scroll 5s ease-in-out infinite;
}
.scn-true-lie .candle-long {
  position: absolute; bottom: 28%; left: 25%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #c8a888 0%, #8a6a4a 70%, #4a2a12 100%);
  border-radius: 20% 20% 0 0;
}
.scn-true-lie .flame-long {
  position: absolute; bottom: 62%; left: 25%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #ffd070 0%, #f09840 50%, transparent 60%);
  border-radius: 50%;
  transform: translate(-50%, -100%);
  box-shadow: 0 0 25px 12px #f09840, 0 0 50px 20px rgba(240,152,64,0.2);
  animation: trl-fire 2.5s ease-in-out infinite alternate;
}
.scn-true-lie .inkwell {
  position: absolute; bottom: 28%; left: 60%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-true-lie .particle-mote {
  position: absolute; top: 30%; left: 40%; width: 3px; height: 3px;
  background: rgba(220,200,160,0.3);
  border-radius: 50%;
  animation: trl-mote 15s linear infinite;
}
@keyframes trl-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-4px); }
  100% { transform: rotate(8deg) translateY(2px); }
}
@keyframes trl-scroll {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(-2deg) scaleX(1.03); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes trl-fire {
  0% { transform: translate(-50%, -100%) scale(0.95) rotate(-5deg); opacity: 0.8; }
  50% { transform: translate(-50%, -100%) scale(1.1) rotate(3deg); opacity: 1; }
  100% { transform: translate(-50%, -100%) scale(1) rotate(-2deg); opacity: 0.85; }
}
@keyframes trl-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.4; }
  80% { opacity: 0.1; }
  100% { transform: translate(40px, -30px) scale(1.5); opacity: 0; }
}

/* Scene 4: ignorance-in-soul */
.scn-ignorance-in-soul {
  background:
    linear-gradient(180deg, #0f0c0a 0%, #1a1410 30%, #2a221c 60%, #1a1410 100%),
    radial-gradient(ellipse at 50% 40%, #3a3228 0%, transparent 70%);
}
.scn-ignorance-in-soul .bg-chamber {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #0a0806 0%, transparent 50%);
}
.scn-ignorance-in-soul .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,230,180,0.12) 0%, rgba(255,230,180,0.05) 70%, transparent);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  animation: iis-shaft 12s ease-in-out infinite alternate;
}
.scn-ignorance-in-soul .motes {
  position: absolute; width: 3px; height: 3px;
  background: rgba(240,220,190,0.4);
  border-radius: 50%;
  filter: blur(0.5px);
}
.scn-ignorance-in-soul .mote-1 {
  top: 20%; left: 45%;
  animation: iis-mote-1 18s linear infinite;
}
.scn-ignorance-in-soul .mote-2 {
  top: 40%; left: 55%;
  animation: iis-mote-2 22s linear infinite;
  animation-delay: -6s;
}
.scn-ignorance-in-soul .mote-3 {
  top: 60%; left: 48%;
  animation: iis-mote-1 25s linear infinite reverse;
  animation-delay: -12s;
}
.scn-ignorance-in-soul .silhouette {
  position: absolute; bottom: 12%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0a0806 0%, #030202 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(1, 1.05);
  animation: iis-stand 7s ease-in-out infinite;
}
.scn-ignorance-in-soul .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}

@keyframes iis-shaft {
  0% { opacity: 0.6; clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); }
  50% { opacity: 1; clip-path: polygon(25% 0%, 75% 0%, 85% 100%, 15% 100%); }
  100% { opacity: 0.7; clip-path: polygon(35% 0%, 65% 0%, 92% 100%, 8% 100%); }
}
@keyframes iis-mote-1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.1; }
  100% { transform: translate(20px, -50px) scale(1.4); opacity: 0; }
}
@keyframes iis-mote-2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  25% { opacity: 0.4; }
  75% { opacity: 0.1; }
  100% { transform: translate(-15px, -40px) scale(1.2); opacity: 0; }
}
@keyframes iis-stand {
  0% { transform: scale(1, 1.05) translateY(0); }
  50% { transform: scale(1, 1.02) translateY(-3px); }
  100% { transform: scale(1, 1.05) translateY(0); }
}

.scn-words-conform { background: linear-gradient(180deg, #2b1e0e 0%, #1a1209 40%, #0d0802 100%), radial-gradient(ellipse at 50% 60%, #4a3220 0%, transparent 70%); }
.scn-words-conform .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); animation: wc-wall 12s ease-in-out infinite alternate; }
.scn-words-conform .desk { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #4d3624 0%, #362316 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-words-conform .scroll { position: absolute; bottom: 24%; left: 35%; width: 25%; height: 6%; background: linear-gradient(180deg, #e8d8b0 0%, #c4a878 100%); border-radius: 2px 2px 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wc-scroll 8s ease-in-out infinite; }
.scn-words-conform .hand { position: absolute; bottom: 26%; left: 38%; width: 12px; height: 20px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: wc-hand 4s ease-in-out infinite; }
.scn-words-conform .lamp { position: absolute; bottom: 30%; left: 60%; width: 20px; height: 28px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 8px 8px; }
.scn-words-conform .glow { position: absolute; bottom: 32%; left: 55%; width: 60px; height: 60px; background: radial-gradient(circle, #ffd080 0%, #c09050 30%, transparent 70%); border-radius: 50%; opacity: .5; animation: wc-glow 3s ease-in-out infinite alternate; }
.scn-words-conform .shadow { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: wc-shadow 12s ease-in-out infinite alternate; }
@keyframes wc-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes wc-scroll { 0%,100% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.02) scaleY(1.01) } }
@keyframes wc-hand { 0% { transform: translate(0,0) rotate(-5deg) scaleY(1) } 25% { transform: translate(2px,-1px) rotate(0deg) scaleY(1.01) } 50% { transform: translate(4px,-2px) rotate(3deg) scaleY(1) } 75% { transform: translate(2px,-1px) rotate(1deg) scaleY(.99) } 100% { transform: translate(0,0) rotate(-3deg) scaleY(1) } }
@keyframes wc-glow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.05) } 100% { opacity: .5; transform: scale(1) } }
@keyframes wc-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .35 } }

.scn-soft-harmonies { background: linear-gradient(180deg, #1e1812 0%, #2a1f14 40%, #0d0802 100%), radial-gradient(ellipse at 45% 50%, #4a3520 0%, transparent 70%); }
.scn-soft-harmonies .bg-wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2d2015 0%, transparent 100%); animation: sh-wall 10s ease-in-out infinite alternate; }
.scn-soft-harmonies .pedestal { position: absolute; bottom: 20%; left: 35%; right: 35%; height: 10%; background: linear-gradient(180deg, #4a3320 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,.5); }
.scn-soft-harmonies .lyre { position: absolute; bottom: 28%; left: 35%; right: 35%; top: 30%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 20px #b09060; animation: sh-lyre 6s ease-in-out infinite; }
.scn-soft-harmonies .strings { position: absolute; bottom: 32%; left: 38%; right: 38%; top: 34%; background: linear-gradient(180deg, #e0c898 0%, #b09860 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sh-strings 4s ease-in-out infinite alternate; }
.scn-soft-harmonies .light { position: absolute; bottom: 30%; left: 50%; width: 70px; height: 70px; background: radial-gradient(circle, #e8c080 0%, #c09850 30%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: sh-light 5s ease-in-out infinite alternate; }
.scn-soft-harmonies .listener { position: absolute; bottom: 18%; left: 20%; width: 16px; height: 28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-listener 8s ease-in-out infinite; }
.scn-soft-harmonies .soft-glow { position: absolute; bottom: 25%; left: 30%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(200,160,80,.2) 0%, transparent 60%); border-radius: 50%; filter: blur(10px); animation: sh-glow 12s linear infinite; }
@keyframes sh-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes sh-lyre { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } }
@keyframes sh-strings { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: .8; transform: scaleY(1) } }
@keyframes sh-light { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }
@keyframes sh-listener { 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 sh-glow { 0% { opacity: .2; transform: rotate(0deg) } 50% { opacity: .4; transform: rotate(5deg) } 100% { opacity: .2; transform: rotate(0deg) } }

.scn-two-harmonies-chosen { background: linear-gradient(180deg, #1a1410 0%, #2a1e12 40%, #0a0602 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-two-harmonies-chosen .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-two-harmonies-chosen .arch { position: absolute; bottom: 30%; left: 15%; right: 15%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: th-arch 20s ease-in-out infinite; }
.scn-two-harmonies-chosen .col-left { position: absolute; bottom: 20%; left: 18%; width: 10%; height: 50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: th-col 15s ease-in-out infinite alternate; }
.scn-two-harmonies-chosen .col-right { position: absolute; bottom: 20%; right: 18%; width: 10%; height: 50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: th-col 15s ease-in-out infinite alternate-reverse; }
.scn-two-harmonies-chosen .capital-left { position: absolute; bottom: 66%; left: 16%; width: 14%; height: 6%; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 6px 6px 2px 2px; animation: th-capital 10s ease-in-out infinite alternate; }
.scn-two-harmonies-chosen .capital-right { position: absolute; bottom: 66%; right: 16%; width: 14%; height: 6%; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 6px 6px 2px 2px; animation: th-capital 10s ease-in-out infinite alternate-reverse; }
.scn-two-harmonies-chosen .ray-left { position: absolute; bottom: 50%; left: 20%; width: 8px; height: 40%; background: linear-gradient(180deg, rgba(200,160,80,.2) 0%, transparent 100%); transform: rotate(-10deg); transform-origin: bottom center; filter: blur(3px); animation: th-ray 8s ease-in-out infinite alternate; }
.scn-two-harmonies-chosen .ray-right { position: absolute; bottom: 50%; right: 20%; width: 8px; height: 40%; background: linear-gradient(180deg, rgba(200,160,80,.2) 0%, transparent 100%); transform: rotate(10deg); transform-origin: bottom center; filter: blur(3px); animation: th-ray 8s ease-in-out infinite alternate-reverse; }
@keyframes th-arch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes th-col { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.98) } }
@keyframes th-capital { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.04) } 100% { transform: scaleX(.98) } }
@keyframes th-ray { 0% { opacity: .1; transform: rotate(-8deg) } 50% { opacity: .4; transform: rotate(-12deg) } 100% { opacity: .2; transform: rotate(-10deg) } }

.scn-flute-rejected { background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #0a0604 100%), radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%); }
.scn-flute-rejected .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-flute-rejected .flute-body { position: absolute; bottom: 12%; left: 30%; width: 30%; height: 4%; background: linear-gradient(90deg, #c8a878 0%, #a08050 50%, #c8a878 100%); border-radius: 20px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: fr-flute 4s ease-in-out infinite; }
.scn-flute-rejected .flute-end { position: absolute; bottom: 12%; left: 58%; width: 6%; height: 4%; background: linear-gradient(90deg, #8a7040 0%, #5a4a2a 100%); border-radius: 0 20px 20px 0; }
.scn-flute-rejected .hand { position: absolute; bottom: 18%; left: 50%; width: 14px; height: 22px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fr-hand 6s ease-in-out infinite; }
.scn-flute-rejected .shadow-hand { position: absolute; bottom: 16%; left: 48%; width: 16px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(3px); animation: fr-shadow-hand 6s ease-in-out infinite; }
.scn-flute-rejected .shadow-flute { position: absolute; bottom: 10%; left: 28%; width: 34%; height: 6%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(4px); animation: fr-shadow-flute 4s ease-in-out infinite; }
.scn-flute-rejected .glow { position: absolute; bottom: 20%; left: 45%; width: 50px; height: 50px; background: radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: fr-glow 5s ease-in-out infinite alternate; }
@keyframes fr-flute { 0%,100% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(-4px,2px) rotate(4deg) } 50% { transform: translate(-8px,0) rotate(0deg) } 75% { transform: translate(-4px,-2px) rotate(-3deg) } }
@keyframes fr-hand { 0% { transform: translate(0,0) rotate(-10deg) } 25% { transform: translate(-6px,2px) rotate(-5deg) } 50% { transform: translate(-12px,4px) rotate(0deg) } 75% { transform: translate(-6px,2px) rotate(-8deg) } 100% { transform: translate(0,0) rotate(-12deg) } }
@keyframes fr-shadow-hand { 0% { opacity: .3; transform: translate(0,0) } 25% { opacity: .5; transform: translate(-4px,2px) } 50% { opacity: .4; transform: translate(-8px,4px) } 75% { opacity: .5; transform: translate(-4px,2px) } 100% { opacity: .3; transform: translate(0,0) } }
@keyframes fr-shadow-flute { 0% { opacity: .2; transform: scaleX(1) } 25% { opacity: .3; transform: scaleX(1.05) } 50% { opacity: .2; transform: scaleX(.95) } 75% { opacity: .3; transform: scaleX(1.02) } 100% { opacity: .2; transform: scaleX(1) } }
@keyframes fr-glow { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .5; transform: scale(1.08) } 100% { opacity: .3; transform: scale(1) } }

/* god-has-no-reason-to-lie */
.scn-god-has-no-reason-to-lie {
  background:
    linear-gradient(180deg, #3c2a24 0%, #2a1e18 40%, #1f1410 100%),
    radial-gradient(ellipse at 60% 40%, #4d3a30 0%, transparent 70%);
}
.scn-god-has-no-reason-to-lie .wall-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 40%, #0f0a08 90%);
  animation: grl-wall 20s ease-in-out infinite alternate;
}
.scn-god-has-no-reason-to-lie .figure-seated {
  position: absolute; bottom: 15%; left: 35%;
  width: 70px; height: 110px;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grl-seated 6s ease-in-out infinite;
}
.scn-god-has-no-reason-to-lie .lamp-glow {
  position: absolute; bottom: 30%; right: 30%;
  width: 24px; height: 30px;
  background: radial-gradient(circle, #e0a060 0%, #b06030 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #c06030, 0 0 60px 20px rgba(192,96,48,0.3);
  animation: grl-lamp 4s ease-in-out infinite alternate;
}
.scn-god-has-no-reason-to-lie .scroll {
  position: absolute; bottom: 20%; left: 50%;
  width: 30px; height: 10px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 10% / 50%;
  transform: rotate(-15deg);
  animation: grl-scroll 8s ease-in-out infinite;
}
.scn-god-has-no-reason-to-lie .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0f0a08 0%, transparent 100%);
  animation: grl-pool 12s ease-in-out infinite alternate;
}
.scn-god-has-no-reason-to-lie .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(220,180,120,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: grl-dust 18s linear infinite;
}
.scn-god-has-no-reason-to-lie .motes-a { top: 20%; left: 10%; animation-delay: 0s; }
.scn-god-has-no-reason-to-lie .motes-b { top: 35%; right: 20%; animation-delay: 9s; }

@keyframes grl-wall { 0%{ opacity: 0.6 } 50%{ opacity: 0.9 } 100%{ opacity: 0.5 } }
@keyframes grl-seated { 0%{ transform: translateY(0) rotate(-1deg) } 50%{ transform: translateY(-3px) rotate(1deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes grl-lamp { 0%{ box-shadow: 0 0 20px 6px #c06030, 0 0 40px 12px rgba(192,96,48,0.2); opacity: 0.85 } 50%{ box-shadow: 0 0 40px 14px #e08040, 0 0 70px 20px rgba(224,128,64,0.4); opacity: 1 } 100%{ box-shadow: 0 0 24px 8px #c06030, 0 0 50px 16px rgba(192,96,48,0.25); opacity: 0.9 } }
@keyframes grl-scroll { 0%{ transform: rotate(-15deg) translateX(0) } 50%{ transform: rotate(-10deg) translateX(4px) } 100%{ transform: rotate(-18deg) translateX(-2px) } }
@keyframes grl-pool { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.1) } 100%{ transform: scaleY(0.95) } }
@keyframes grl-dust { 0%{ transform: translateY(0) scale(0.8); opacity:0.4 } 25%{ transform: translateY(-20px) scale(1.2); opacity:0.8 } 50%{ transform: translateY(-40px) scale(0.9); opacity:0.6 } 75%{ transform: translateY(-60px) scale(1.1); opacity:0.7 } 100%{ transform: translateY(-80px) scale(0.7); opacity:0.2 } }

/* god-truthful */
.scn-god-truthful {
  background:
    linear-gradient(180deg, #2a201c 0%, #1a1210 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a24 0%, transparent 70%);
}
.scn-god-truthful .bg-arch {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 30%;
  background: linear-gradient(180deg, #4a3a30 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(4px);
}
.scn-god-truthful .ray-down {
  position: absolute; top: 0; left: 45%; width: 10%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, rgba(255,240,200,0) 100%);
  transform: skewX(-5deg);
  animation: gtr-ray 8s ease-in-out infinite alternate;
}
.scn-god-truthful .figure-upright {
  position: absolute; bottom: 20%; left: 40%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1e18 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gtr-upright 5s ease-in-out infinite;
}
.scn-god-truthful .plinth {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 8px;
  background: linear-gradient(90deg, #4a3a30, #3a2a20, #4a3a30);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-god-truthful .halo-glow {
  position: absolute; bottom: 70%; left: 38%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,220,160,0.6) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gtr-halo 6s ease-in-out infinite alternate;
}
.scn-god-truthful .flame {
  position: absolute; bottom: 18%; right: 30%;
  width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffb060 0%, #e08030 50%, #a05020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: gtr-flame 3s ease-in-out infinite;
}
.scn-god-truthful .particle {
  position: absolute; width: 3px; height: 3px;
  background: rgba(255,200,120,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: gtr-particle 12s linear infinite;
}
.scn-god-truthful .particle-a { top: 30%; left: 20%; }
.scn-god-truthful .particle-b { top: 50%; right: 25%; animation-delay: 6s; }

@keyframes gtr-ray { 0%{ opacity: 0.4; transform: skewX(-5deg) scaleY(0.9) } 50%{ opacity: 0.9; transform: skewX(2deg) scaleY(1.1) } 100%{ opacity: 0.5; transform: skewX(-8deg) scaleY(0.95) } }
@keyframes gtr-upright { 0%{ transform: translateY(0) rotate(-1deg) } 50%{ transform: translateY(-2px) rotate(1deg) } 100%{ transform: translateY(0) rotate(-0.5deg) } }
@keyframes gtr-halo { 0%{ opacity: 0.5; transform: scale(0.9) } 50%{ opacity: 1; transform: scale(1.1) } 100%{ opacity: 0.6; transform: scale(0.95) } }
@keyframes gtr-flame { 0%{ transform: scaleY(0.8) rotate(-2deg) } 50%{ transform: scaleY(1.2) rotate(2deg) } 100%{ transform: scaleY(0.85) rotate(-1deg) } }
@keyframes gtr-particle { 0%{ transform: translateY(0) rotate(0) scale(0.8); opacity:0 } 25%{ transform: translateY(-30px) rotate(90deg) scale(1.2); opacity:0.6 } 50%{ transform: translateY(-60px) rotate(180deg) scale(0.9); opacity:0.3 } 75%{ transform: translateY(-90px) rotate(270deg) scale(1.1); opacity:0.7 } 100%{ transform: translateY(-120px) rotate(360deg) scale(0.7); opacity:0 } }

/* homers-lying-dream */
.scn-homers-lying-dream {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e18 30%, #1a1412 60%, #0e0a08 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a22 0%, transparent 70%);
}
.scn-homers-lying-dream .bed-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0604 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-homers-lying-dream .sleeping-figure {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: hld-sleep 8s ease-in-out infinite;
}
.scn-homers-lying-dream .pillow {
  position: absolute; bottom: 20%; left: 28%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  filter: blur(1px);
}
.scn-homers-lying-dream .dream-orb {
  position: absolute; top: 15%; right: 20%;
  width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #a07050 0%, #604030 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #806050, 0 0 60px 20px rgba(128,96,80,0.3);
  animation: hld-orb 6s ease-in-out infinite alternate;
}
.scn-homers-lying-dream .dream-whisper {
  position: absolute; top: 25%; left: 40%;
  width: 8px; height: 8px;
  background: rgba(200,160,120,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: hld-whisper 10s ease-in-out infinite;
}
.scn-homers-lying-dream .whisper-1 { top: 20%; left: 55%; }
.scn-homers-lying-dream .whisper-2 { top: 30%; left: 45%; animation-delay: 5s; }
.scn-homers-lying-dream .cloud-dream {
  position: absolute; top: 10%; left: 15%;
  width: 70px; height: 20px;
  background: rgba(180,150,120,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: hld-cloud 30s linear infinite;
}
.scn-homers-lying-dream .star {
  position: absolute; width: 4px; height: 4px;
  background: rgba(240,210,160,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,210,160,0.4);
  animation: hld-star 4s ease-in-out infinite alternate;
}
.scn-homers-lying-dream .small { top: 20%; right: 30%; }
.scn-homers-lying-dream .late { top: 35%; right: 40%; animation-delay: 2s; }

@keyframes hld-sleep { 0%{ transform: rotate(10deg) translateY(0) } 50%{ transform: rotate(8deg) translateY(2px) } 100%{ transform: rotate(12deg) translateY(0) } }
@keyframes hld-orb { 0%{ transform: scale(0.9); opacity:0.7 } 50%{ transform: scale(1.15); opacity:1 } 100%{ transform: scale(0.95); opacity:0.8 } }
@keyframes hld-whisper { 0%{ transform: translate(0,0) scale(0.5); opacity:0 } 25%{ transform: translate(-10px,-10px) scale(1); opacity:0.6 } 50%{ transform: translate(-20px,-20px) scale(0.8); opacity:0.3 } 75%{ transform: translate(-30px,-30px) scale(1.2); opacity:0.5 } 100%{ transform: translate(-40px,-40px) scale(0.6); opacity:0 } }
@keyframes hld-cloud { 0%{ transform: translateX(0) } 100%{ transform: translateX(100px) } }
@keyframes hld-star { 0%{ opacity:0.4; transform: scale(0.8) } 50%{ opacity:1; transform: scale(1.3) } 100%{ opacity:0.5; transform: scale(0.9) } }

/* anger-at-such-tales */
.scn-anger-at-such-tales {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a1210 40%, #0e0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a22 0%, transparent 60%);
}
.scn-anger-at-such-tales .wall-panels {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: repeating-linear-gradient(90deg, #3a2a22 0px, #3a2a22 4px, #2a1e18 4px, #2a1e18 8px);
  opacity: 0.3;
  animation: ast-panels 15s linear infinite;
}
.scn-anger-at-such-tales .figure-forbidding {
  position: absolute; bottom: 20%; left: 20%;
  width: 60px; height: 110px;
  background: linear-gradient(180deg, #2a1e18 0%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ast-figure 5s ease-in-out infinite;
}
.scn-anger-at-such-tales .arm-raised {
  position: absolute; bottom: 65%; left: 25%;
  width: 40px; height: 8px;
  background: linear-gradient(90deg, #1f1410 0%, #3a2a22 100%);
  border-radius: 60% 10% 40% 20%;
  transform: rotate(-40deg);
  transform-origin: right center;
  animation: ast-arm 3s ease-in-out infinite alternate;
}
.scn-anger-at-such-tales .scroll-torn {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 10% 20% 30% 10% / 30% 40% 20% 30%;
  clip-path: polygon(0% 0%, 70% 10%, 100% 0%, 80% 50%, 100% 100%, 20% 90%, 0% 100%);
  animation: ast-scroll 7s ease-in-out infinite;
}
.scn-anger-at-such-tales .fury-shadow {
  position: absolute; bottom: 0; left: 10%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 30% 100%, #0a0604 0%, transparent 70%);
  animation: ast-shadow 10s ease-in-out infinite alternate;
}
.scn-anger-at-such-tales .dust {
  position: absolute; width: 3px; height: 3px;
  background: rgba(180,140,100,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: ast-dust 14s linear infinite;
}
.scn-anger-at-such-tales .motes-c { top: 25%; left: 15%; }
.scn-anger-at-such-tales .motes-d { top: 40%; right: 10%; animation-delay: 7s; }

@keyframes ast-panels { 0%{ background-position: 0 0 } 100%{ background-position: 8px 0 } }
@keyframes ast-figure { 0%{ transform: translateY(0) rotate(-2deg) } 50%{ transform: translateY(-4px) rotate(2deg) } 100%{ transform: translateY(0) rotate(-1deg) } }
@keyframes ast-arm { 0%{ transform: rotate(-40deg) } 50%{ transform: rotate(-20deg) } 100%{ transform: rotate(-45deg) } }
@keyframes ast-scroll { 0%{ transform: translateX(0) rotate(0) } 50%{ transform: translateX(5px) rotate(3deg) } 100%{ transform: translateX(-3px) rotate(-2deg) } }
@keyframes ast-shadow { 0%{ opacity:0.5; transform: scaleY(0.9) } 50%{ opacity:0.9; transform: scaleY(1.1) } 100%{ opacity:0.6; transform: scaleY(0.95) } }
@keyframes ast-dust { 0%{ transform: translateY(0) scale(0.8); opacity:0.3 } 25%{ transform: translateY(-25px) scale(1.2); opacity:0.7 } 50%{ transform: translateY(-50px) scale(0.9); opacity:0.4 } 75%{ transform: translateY(-75px) scale(1.1); opacity:0.6 } 100%{ transform: translateY(-100px) scale(0.6); opacity:0 } }

.scn-myth-of-er-soul-transformations {
  background:
    radial-gradient(ellipse at 30% 60%, #3a2e2a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #2a2218 0%, transparent 50%),
    linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #1a1210 100%);
  position: relative;
  overflow: hidden;
}
.scn-myth-of-er-soul-transformations .room-depth { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(60,50,40,.3) 0%, transparent 70%); animation: er1-pulse 12s ease-in-out infinite alternate; }
.scn-myth-of-er-soul-transformations .wall-glow { position:absolute; bottom:20%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(80,60,40,.15) 0%, transparent 70%); border-radius: 40% 40% 0 0; }
.scn-myth-of-er-soul-transformations .soul-figure { position:absolute; bottom:10%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, rgba(200,180,150,.6) 0%, rgba(160,140,120,.3) 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er1-transform 10s ease-in-out infinite; }
.scn-myth-of-er-soul-transformations .soul-orpheus { left:42%; width:24px; height:55px; animation-delay:-2s; background: linear-gradient(180deg, rgba(210,190,160,.7) 0%, rgba(170,150,130,.4) 60%, transparent 100%); }
.scn-myth-of-er-soul-transformations .soul-bird { position:absolute; bottom:35%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(220,200,170,.8) 0%, rgba(200,180,150,.4) 70%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: er1-bird 15s ease-in-out infinite; }
.scn-myth-of-er-soul-transformations .bird-swan { left:55%; width:50px; height:28px; animation-duration:18s; animation-delay:-4s; background: radial-gradient(ellipse at 30% 50%, rgba(240,230,210,.9) 0%, rgba(210,190,170,.4) 80%, transparent 100%); }
.scn-myth-of-er-soul-transformations .bird-nightingale { left:20%; width:30px; height:14px; animation-duration:14s; animation-delay:-8s; background: radial-gradient(ellipse at 50% 50%, rgba(160,140,120,.8) 0%, rgba(130,110,90,.3) 80%, transparent 100%); }
.scn-myth-of-er-soul-transformations .soul-light { position:absolute; top:30%; left:35%; width:100px; height:100px; background: radial-gradient(circle, rgba(180,150,120,.2) 0%, transparent 70%); border-radius:50%; animation: er1-light 8s ease-in-out infinite alternate; }
.scn-myth-of-er-soul-transformations .shadow { position:absolute; bottom:0; width:20%; height:80%; background: linear-gradient(180deg, transparent 30%, rgba(10,8,6,.6) 100%); }
.scn-myth-of-er-soul-transformations .depth-left { left:0; border-radius:0 60% 0 0 / 0 40% 0 0; }
.scn-myth-of-er-soul-transformations .depth-right { right:0; border-radius:60% 0 0 0 / 40% 0 0 0; }
@keyframes er1-pulse { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes er1-transform { 0% { transform: translateY(0) scaleY(1) rotate(0) } 30% { transform: translateY(-8px) scaleY(.85) rotate(-3deg) } 60% { transform: translateY(-14px) scaleY(.7) rotate(2deg) } 100% { transform: translateY(0) scaleY(1) rotate(0) } }
@keyframes er1-bird { 0%,100% { transform: translate(0,0) rotate(0) scaleX(1) } 25% { transform: translate(10px,-6px) rotate(-5deg) scaleX(1.1) } 50% { transform: translate(20px,-12px) rotate(3deg) scaleX(.95) } 75% { transform: translate(10px,-6px) rotate(-2deg) scaleX(1.05) } }
@keyframes er1-light { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(.9) } }

.scn-myth-of-er-odysseus-choice {
  background:
    radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 60%, #2a1e12 0%, transparent 40%),
    linear-gradient(180deg, #1a1210 0%, #2a1e16 40%, #1e1612 100%);
  position: relative;
  overflow: hidden;
}
.scn-myth-of-er-odysseus-choice .chamber-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(50,35,25,.4) 0%, transparent 70%); }
.scn-myth-of-er-odysseus-choice .chamber-glow { position:absolute; bottom:15%; left:25%; right:25%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(120,80,50,.12) 0%, transparent 70%); border-radius:50%; animation: er2-glow 6s ease-in-out infinite alternate; }
.scn-myth-of-er-odysseus-choice .odysseus-soul { position:absolute; bottom:12%; left:35%; width:26px; height:58px; background: linear-gradient(180deg, rgba(200,170,140,.7) 0%, rgba(160,130,100,.5) 50%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er2-choose 8s ease-in-out infinite; }
.scn-myth-of-er-odysseus-choice .soul-shadow { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(160,130,100,.2) 0%, transparent 70%); filter: blur(4px); animation: er2-shadow 8s ease-in-out infinite; }
.scn-myth-of-er-odysseus-choice .lot-object { position:absolute; bottom:25%; width:18px; height:22px; border-radius: 20% 20% 10% 10%; opacity:.7; animation: er2-lot 10s ease-in-out infinite; }
.scn-myth-of-er-odysseus-choice .lot-athlete { left:50%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); box-shadow: 0 0 12px 2px rgba(138,106,58,.3); animation-delay:-3s; transform-origin: bottom center; }
.scn-myth-of-er-odysseus-choice .lot-private { left:58%; width:14px; height:16px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); box-shadow: 0 0 10px 2px rgba(106,90,58,.2); animation-delay:-7s; transform-origin: bottom center; }
.scn-myth-of-er-odysseus-choice .monkey-form { position:absolute; bottom:10%; right:18%; width:14px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: er2-monkey 12s ease-in-out infinite; opacity:.6; }
@keyframes er2-glow { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes er2-choose { 0%,100% { transform: translateY(0) rotate(0) } 20% { transform: translateY(-3px) rotate(-2deg) } 40% { transform: translateY(0) rotate(1deg) } 60% { transform: translateY(-4px) rotate(-1deg) } 80% { transform: translateY(-1px) rotate(2deg) } }
@keyframes er2-shadow { 0%,100% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.3) } }
@keyframes er2-lot { 0%,100% { transform: translateY(0) rotate(0) scale(1) } 25% { transform: translateY(-5px) rotate(8deg) scale(1.1) } 50% { transform: translateY(-2px) rotate(-4deg) scale(.95) } 75% { transform: translateY(-6px) rotate(5deg) scale(1.05) } }
@keyframes er2-monkey { 0%,100% { transform: translateY(0) scaleY(1) rotate(0) } 30% { transform: translateY(-4px) scaleY(.85) rotate(-4deg) } 60% { transform: translateY(2px) scaleY(1.1) rotate(3deg) } 90% { transform: translateY(-2px) scaleY(.95) rotate(-2deg) } }

.scn-myth-of-er-fateful-journey {
  background:
    radial-gradient(ellipse at 50% 30%, #2a2218 0%, transparent 50%),
    radial-gradient(ellipse at 50% 80%, #1e1612 0%, transparent 40%),
    linear-gradient(180deg, #121010 0%, #1e1814 40%, #161210 100%);
  position: relative;
  overflow: hidden;
}
.scn-myth-of-er-fateful-journey .void-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(40,35,30,.3) 0%, transparent 70%); }
.scn-myth-of-er-fateful-journey .spindle-body { position:absolute; top:10%; left:50%; width:12px; height:75%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #4a3a2a 60%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px rgba(80,60,40,.3); animation: er3-spindle 30s linear infinite; }
.scn-myth-of-er-fateful-journey .spindle-thread { position:absolute; top:15%; left:50%; width:2px; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(180,150,120,.6) 0%, rgba(140,110,80,.3) 50%, transparent 100%); animation: er3-thread 20s linear infinite; }
.scn-myth-of-er-fateful-journey .soul-lachesis { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, rgba(180,160,130,.6) 0%, rgba(140,120,90,.4) 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: er3-lachesis 12s ease-in-out infinite alternate; }
.scn-myth-of-er-fateful-journey .soul-clotho { position:absolute; bottom:15%; right:28%; width:20px; height:45px; background: linear-gradient(180deg, rgba(160,140,110,.6) 0%, rgba(120,100,70,.4) 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: er3-clotho 14s ease-in-out infinite alternate; animation-delay:-5s; }
.scn-myth-of-er-fateful-journey .soul-drawn { position:absolute; width:14px; height:30px; background: radial-gradient(ellipse at 50% 40%, rgba(200,170,140,.7) 0%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); animation: er3-drawn 20s ease-in-out infinite; }
.scn-myth-of-er-fateful-journey .drawn-1 { left:42%; top:60%; animation-delay:-4s; }
.scn-myth-of-er-fateful-journey .drawn-2 { left:52%; top:70%; animation-delay:-12s; width:10px; height:24px; }
.scn-myth-of-er-fateful-journey .light-beam { position:absolute; top:0; left:40%; right:40%; height:100%; background: linear-gradient(180deg, rgba(180,160,120,.08) 0%, transparent 60%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: er3-beam 8s ease-in-out infinite alternate; }
@keyframes er3-spindle { 0% { transform: translateX(-50%) rotate(0) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes er3-thread { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes er3-lachesis { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-6px) rotate(3deg) } }
@keyframes er3-clotho { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(-4deg) } }
@keyframes er3-drawn { 0%,100% { transform: translateY(0) scaleY(1) opacity:.3 } 30% { transform: translateY(-20px) scaleY(.7) opacity:.6 } 60% { transform: translateY(-40px) scaleY(.5) opacity:.8 } 100% { transform: translateY(-60px) scaleY(.3) opacity:0 } }
@keyframes er3-beam { 0%,100% { opacity:.3 } 50% { opacity:.7 } }

.scn-myth-of-er-river-forgetfulness {
  background:
    radial-gradient(ellipse at 50% 90%, #0a0a0c 0%, #121214 40%, #1a1a1e 80%, #0e0e10 100%),
    linear-gradient(180deg, #08080a 0%, #101014 30%, #18181c 60%, #0c0c0e 100%);
  position: relative;
  overflow: hidden;
}
.scn-myth-of-er-river-forgetfulness .dark-plane { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(20,18,25,.3) 0%, transparent 70%); }
.scn-myth-of-er-river-forgetfulness .river-water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, rgba(10,8,12,.9) 0%, rgba(15,12,18,.8) 40%, rgba(8,6,10,.95) 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: er4-river 20s ease-in-out infinite alternate; }
.scn-myth-of-er-river-forgetfulness .river-bank { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(20,16,22,.4) 0%, transparent 100%); }
.scn-myth-of-er-river-forgetfulness .bank-fore { bottom:38%; height:18%; background: linear-gradient(180deg, rgba(25,20,28,.5) 0%, transparent 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: er4-bank 30s ease-in-out infinite; }
.scn-myth-of-er-river-forgetfulness .bank-rear { bottom:45%; height:12%; background: linear-gradient(180deg, rgba(15,12,18,.3) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation-delay:-15s; }
.scn-myth-of-er-river-forgetfulness .soul-resting { position:absolute; bottom:38%; height:25px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, rgba(30,25,35,.5) 0%, rgba(15,12,18,.7) 100%); filter: blur(2px); animation: er4-rest 15s ease-in-out infinite alternate; }
.scn-myth-of-er-river-forgetfulness .rest-1 { left:25%; width:18px; animation-delay:-3s; }
.scn-myth-of-er-river-forgetfulness .rest-2 { right:30%; width:14px; height:20px; animation-delay:-10s; }
.scn-myth-of-er-river-forgetfulness .vessel-empty { position:absolute; bottom:42%; left:45%; width:12px; height:8px; background: rgba(40,35,45,.4); border-radius: 10% 10% 50% 50% / 10% 10% 30% 30%; box-shadow: 0 0 6px 1px rgba(50,40,60,.2); animation: er4-vessel 12s ease-in-out infinite; }
.scn-myth-of-er-river-forgetfulness .heat-haze { position:absolute; top:5%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, rgba(20,18,25,.05) 0%, rgba(25,20,30,.08) 50%, transparent 100%); filter: blur(10px); animation: er4-haze 25s ease-in-out infinite alternate; }
@keyframes er4-river { 0%,100% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(2px); opacity:1 } }
@keyframes er4-bank { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes er4-rest { 0%,100% { transform: translateY(0) rotate(0); opacity:.6 } 50% { transform: translateY(-3px) rotate(2deg); opacity:.8 } }
@keyframes er4-vessel { 0%,100% { transform: translateY(0) rotate(0); opacity:.4 } 50% { transform: translateY(-4px) rotate(8deg); opacity:.6 } }
@keyframes er4-haze { 0%,100% { opacity:.4; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-8px) } }

/* homer-example – dim interior, speaker at lectern */
.scn-homer-example {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a6a3a24 0%, transparent 70%);
}
.scn-homer-example .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); }
.scn-homer-example .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; }
.scn-homer-example .column { position: absolute; bottom: 20%; width: 24px; height: 80%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 8px; }
.scn-homer-example .column.left { left: 12%; }
.scn-homer-example .column.right { right: 12%; }
.scn-homer-example .lectern { position: absolute; bottom: 25%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 12px #00000055; animation: he-lectern 10s ease-in-out infinite; }
.scn-homer-example .scroll { position: absolute; bottom: 35%; left: 50%; width: 30px; height: 18px; transform: translateX(-50%); background: linear-gradient(180deg, #d4c4a0 0%, #b4a480 100%); border-radius: 50% / 30%; box-shadow: 0 2px 6px #00000033; animation: he-scroll 8s ease-in-out infinite alternate; }
.scn-homer-example .speaker { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: he-speaker 4s ease-in-out infinite; }
.scn-homer-example .lantern { position: absolute; bottom: 40%; left: 45%; width: 10px; height: 14px; background: radial-gradient(circle, #e0b060 0%, #a08030 100%); border-radius: 30%; box-shadow: 0 0 20px 6px #e0b06088, 0 0 40px 12px #e0b06044; animation: he-lantern 3s ease-in-out infinite alternate; }
@keyframes he-lectern { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes he-scroll { 0% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes he-speaker { 0% { transform: translateX(-50%) translateY(0) 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(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes he-lantern { 0% { opacity: 0.85; box-shadow: 0 0 15px 4px #e0b06088, 0 0 30px 8px #e0b06044; } 100% { opacity: 1; box-shadow: 0 0 25px 8px #e0b060aa, 0 0 50px 16px #e0b06066; } }

/* imitation-in-homer – priest at altar */
.scn-imitation-in-homer {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a1a44 0%, transparent 70%);
}
.scn-imitation-in-homer .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); }
.scn-imitation-in-homer .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 0 0 / 15% 15% 0 0; }
.scn-imitation-in-homer .altar { position: absolute; bottom: 30%; left: 50%; width: 80px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 20px #00000055; animation: ii-altar 12s ease-in-out infinite; }
.scn-imitation-in-homer .brazier { position: absolute; bottom: 38%; left: 50%; width: 24px; height: 24px; transform: translateX(-50%); background: radial-gradient(circle, #c08030 0%, #a06010 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c0803066; animation: ii-brazier 4s ease-in-out infinite alternate; }
.scn-imitation-in-homer .glow { position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #c0803044 0%, transparent 70%); border-radius: 50%; animation: ii-glow 5s ease-in-out infinite alternate; }
.scn-imitation-in-homer .priest { position: absolute; bottom: 28%; left: 40%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ii-priest 6s ease-in-out infinite; }
.scn-imitation-in-homer .statue { position: absolute; bottom: 32%; right: 20%; width: 18px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); animation: ii-statue 15s ease-in-out infinite alternate; }
@keyframes ii-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ii-brazier { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } 100% { transform: translateX(-50%) scale(1.05); opacity: 1; } }
@keyframes ii-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.9); } 100% { opacity: 1; transform: translateX(-50%) scale(1.1); } }
@keyframes ii-priest { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ii-statue { 0% { transform: rotate(3deg); } 100% { transform: rotate(7deg); } }

/* simple-narration – narrator in armchair by window */
.scn-simple-narration {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 80% 30%, #4a5a8a22 0%, transparent 60%);
}
.scn-simple-narration .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-simple-narration .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 80% 0 0 / 10% 40% 0 0; }
.scn-simple-narration .window { position: absolute; top: 15%; right: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #3a4a6a 0%, #5a6a8a 100%); border: 4px solid #4a4a5a; border-radius: 8px; box-shadow: inset 0 0 20px #00000033; animation: sn-window 20s ease-in-out infinite alternate; }
.scn-simple-narration .moonbeam { position: absolute; top: 15%; right: 10%; width: 80px; height: 100px; background: linear-gradient(135deg, #aabbdd22 0%, transparent 50%); border-radius: 8px; animation: sn-moonbeam 15s ease-in-out infinite alternate; }
.scn-simple-narration .armchair { position: absolute; bottom: 15%; left: 20%; width: 70px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 12px #00000066; animation: sn-chair 8s ease-in-out infinite; }
.scn-simple-narration .narrator { position: absolute; bottom: 22%; left: 25%; width: 32px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: sn-narrator 5s ease-in-out infinite; }
.scn-simple-narration .book { position: absolute; bottom: 18%; left: 28%; width: 20px; height: 14px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 2px; transform: rotate(-5deg); animation: sn-book 9s ease-in-out infinite alternate; }
.scn-simple-narration .candle { position: absolute; bottom: 30%; left: 15%; width: 6px; height: 18px; background: linear-gradient(180deg, #e0c080 0%, #a08030 50%, #604010 100%); border-radius: 30%; }
.scn-simple-narration .candle-glow { position: absolute; bottom: 30%; left: 15%; width: 30px; height: 30px; transform: translate(-8px, -5px); background: radial-gradient(circle, #e0c08044 0%, transparent 70%); border-radius: 50%; animation: sn-candle 3s ease-in-out infinite alternate; }
@keyframes sn-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sn-moonbeam { 0% { opacity: 0.3; transform: translateX(0); } 100% { opacity: 0.6; transform: translateX(5px); } }
@keyframes sn-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sn-narrator { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sn-book { 0% { transform: rotate(-5deg) scale(1); } 100% { transform: rotate(-3deg) scale(1.02); } }
@keyframes sn-candle { 0% { opacity: 0.8; } 100% { opacity: 1; } }

/* rewritten-passage – writer’s desk */
.scn-rewritten-passage {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1a18 50%, #0a0705 100%),
    radial-gradient(ellipse at 50% 50%, #4a2a1a33 0%, transparent 70%);
}
.scn-rewritten-passage .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); }
.scn-rewritten-passage .desk { position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 6px 18px #00000066; animation: rw-desk 12s ease-in-out infinite; }
.scn-rewritten-passage .parchment { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #c4b098 0%, #a09078 100%); border-radius: 2px; animation: rw-parchment 9s ease-in-out infinite alternate; }
.scn-rewritten-passage .quill { position: absolute; bottom: 25%; left: 48%; width: 4px; height: 20px; background: linear-gradient(180deg, #d4c8b0 0%, #a09880 100%); transform: rotate(-20deg); transform-origin: bottom center; animation: rw-quill 4s ease-in-out infinite; }
.scn-rewritten-passage .inkwell { position: absolute; bottom: 22%; left: 55%; width: 12px; height: 16px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000044; animation: rw-inkwell 14s ease-in-out infinite alternate; }
.scn-rewritten-passage .lamp { position: absolute; bottom: 30%; left: 40%; width: 10px; height: 20px; background: linear-gradient(180deg, #c0a060 0%, #806020 100%); border-radius: 30% 30% 20% 20%; }
.scn-rewritten-passage .lamp-glow { position: absolute; bottom: 30%; left: 40%; width: 40px; height: 40px; transform: translate(-12px, -10px); background: radial-gradient(circle, #c0a06055 0%, transparent 70%); border-radius: 50%; animation: rw-glow 3s ease-in-out infinite alternate; }
.scn-rewritten-passage .chair { position: absolute; bottom: 12%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; animation: rw-chair 10s ease-in-out infinite; }
.scn-rewritten-passage .shadow-figure { position: absolute; bottom: 15%; left: 35%; width: 24px; height: 40px; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; opacity: 0.3; animation: rw-figure 5s ease-in-out infinite; }
@keyframes rw-desk { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes rw-parchment { 0% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes rw-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rw-inkwell { 0% { transform: scale(1); } 100% { transform: scale(1.05); } }
@keyframes rw-glow { 0% { opacity: 0.7; transform: translate(-12px, -10px) scale(0.9); } 100% { opacity: 1; transform: translate(-12px, -10px) scale(1.1); } }
@keyframes rw-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rw-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* Scene: degrading-elevating-citizens */
.scn-degrading-elevating-citizens {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 50%, #d4c4a8 100%), radial-gradient(ellipse at 50% 30%, #fffae6 0%, transparent 60%);
}
.scn-degrading-elevating-citizens .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,250,230,0.3) 0%, transparent 100%);
  animation: deg-bg 12s ease-in-out infinite alternate;
}
.scn-degrading-elevating-citizens .bg-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(0deg, #d4c4a8 0%, #e8dcc8 50%, #f5f0e8 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: deg-mid 18s ease-in-out infinite alternate;
}
.scn-degrading-elevating-citizens .column-left {
  position: absolute; bottom: 20%; left: 18%; width: 8px; height: 55%;
  background: linear-gradient(90deg, #d2c0a8, #f0e8d0 40%, #c8b898 80%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.1);
  animation: deg-column 20s ease-in-out infinite;
}
.scn-degrading-elevating-citizens .column-right {
  position: absolute; bottom: 20%; right: 18%; width: 8px; height: 55%;
  background: linear-gradient(90deg, #d2c0a8, #f0e8d0 40%, #c8b898 80%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.1);
  animation: deg-column 20s ease-in-out infinite reverse;
}
.scn-degrading-elevating-citizens .plinth {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b898, #b8a888);
  border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,0.15);
}
.scn-degrading-elevating-citizens .guardian {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 70%, #a08868 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: deg-figure 6s ease-in-out infinite;
}
.scn-degrading-elevating-citizens .lamp-glow {
  position: absolute; top: 18%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0c0 0%, #f0d070 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,240,192,0.4);
  animation: deg-glow 3s ease-in-out infinite alternate;
}
.scn-degrading-elevating-citizens .light-ray {
  position: absolute; top: 22%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(255,250,230,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: deg-ray 10s ease-in-out infinite alternate;
}
@keyframes deg-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes deg-mid { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes deg-column { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes deg-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes deg-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(255,240,192,0.3); } 100% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,240,192,0.6); } }
@keyframes deg-ray { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* Scene: education-the-great-thing */
.scn-education-the-great-thing {
  background: linear-gradient(180deg, #f5ecd6 0%, #e3d2b0 50%, #c8b088 100%), radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 60%);
}
.scn-education-the-great-thing .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5ecd6 0%, #e3d2b0 100%);
  animation: edu-bg 14s ease-in-out infinite alternate;
}
.scn-education-the-great-thing .desk {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080, #a08868);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: edu-desk 8s ease-in-out infinite;
}
.scn-education-the-great-thing .book {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 22px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c088, #c8b078);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  animation: edu-book 10s ease-in-out infinite alternate;
}
.scn-education-the-great-thing .scholar {
  position: absolute; bottom: 26%; left: 42%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #f0e0c8 0%, #c8b898 70%, #a08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: edu-scholar 6s ease-in-out infinite;
}
.scn-education-the-great-thing .lamp {
  position: absolute; top: 24%; left: 58%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d0b888, #b8a070);
  border-radius: 4px 4px 0 0;
  animation: edu-lamp 4s ease-in-out infinite alternate;
}
.scn-education-the-great-thing .window {
  position: absolute; top: 10%; right: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a0c8e0, #e0f0ff);
  border: 3px solid #c8b898;
  border-radius: 4px;
  animation: edu-window 20s linear infinite;
}
.scn-education-the-great-thing .scroll {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #e8d4a0, #d0bc88);
  border-radius: 2px; transform: rotate(-15deg);
  animation: edu-scroll 12s ease-in-out infinite;
}
@keyframes edu-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes edu-desk { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes edu-book { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes edu-scholar { 0% { transform: rotate(-2deg); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes edu-lamp { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes edu-window { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes edu-scroll { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }

/* Scene: music-innovation-danger */
.scn-music-innovation-danger {
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a898 50%, #8a7a6a 100%), radial-gradient(ellipse at 70% 40%, #fff0e0 0%, transparent 50%);
}
.scn-music-innovation-danger .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d4c0 0%, #b8a898 100%);
  animation: mus-bg 8s ease-in-out infinite alternate;
}
.scn-music-innovation-danger .lyre {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c8a878, #a08050);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: mus-lyre 4s ease-in-out infinite;
}
.scn-music-innovation-danger .musician {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #705848 0%, #483830 70%, #302018 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: mus-figure 5s ease-in-out infinite;
}
.scn-music-innovation-danger .guard {
  position: absolute; bottom: 32%; right: 35%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #807060, #605040);
  border-radius: 20% 20% 15% 15% / 40% 40% 30% 30%;
  animation: mus-guard 5s ease-in-out infinite reverse;
}
.scn-music-innovation-danger .chain {
  position: absolute; bottom: 36%; left: 42%; width: 20px; height: 4px;
  background: repeating-linear-gradient(90deg, #706050 0px, #908070 4px, #706050 8px);
  border-radius: 2px;
  animation: mus-chain 2s ease-in-out infinite alternate;
}
.scn-music-innovation-danger .shadow-stripe {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.3) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mus-stripe 6s ease-in-out infinite;
}
.scn-music-innovation-danger .broken-string {
  position: absolute; bottom: 42%; left: 48%; width: 6px; height: 20px;
  background: #d0c0b0;
  border-radius: 2px; transform: rotate(30deg);
  animation: mus-string 1.5s ease-in-out infinite;
}
@keyframes mus-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mus-lyre { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); } }
@keyframes mus-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mus-guard { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-3px); } }
@keyframes mus-chain { 0% { transform: translateX(0); } 100% { transform: translateX(6px); } }
@keyframes mus-stripe { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes mus-string { 0%, 100% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.2); } }

/* Scene: stricter-training-youth */
.scn-stricter-training-youth {
  background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 50%, #a09888 100%), radial-gradient(ellipse at 30% 60%, #e8e0d0 0%, transparent 60%);
}
.scn-stricter-training-youth .bg-gym {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 100%);
  animation: str-bg 10s ease-in-out infinite alternate;
}
.scn-stricter-training-youth .trainer {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #605040 0%, #403020 70%, #201810 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: str-trainer 6s ease-in-out infinite;
}
.scn-stricter-training-youth .youth {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #a08868 0%, #806850 70%, #605040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: str-youth 6s ease-in-out infinite reverse;
}
.scn-stricter-training-youth .staff {
  position: absolute; bottom: 28%; left: 42%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 2px; transform: rotate(-10deg);
  animation: str-staff 4s ease-in-out infinite;
}
.scn-stricter-training-youth .pillar-left {
  position: absolute; bottom: 0; left: 8%; width: 10px; height: 70%;
  background: linear-gradient(90deg, #b8a898, #d8d0c0 40%, #a89888 80%);
  border-radius: 3px;
  animation: str-pillar 20s ease-in-out infinite;
}
.scn-stricter-training-youth .pillar-right {
  position: absolute; bottom: 0; right: 8%; width: 10px; height: 70%;
  background: linear-gradient(90deg, #b8a898, #d8d0c0 40%, #a89888 80%);
  border-radius: 3px;
  animation: str-pillar 20s ease-in-out infinite reverse;
}
.scn-stricter-training-youth .floor-stripe {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 4px;
  background: repeating-linear-gradient(90deg, #a89888 0px, #c8b8a8 8px, #a89888 16px);
  animation: str-floor 8s linear infinite;
}
@keyframes str-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes str-trainer { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-7deg) translateY(2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes str-youth { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes str-staff { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.05); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes str-pillar { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes str-floor { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }

.scn-tyrant-purge-state { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%); }
.scn-tyrant-purge-state .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2a4a 0%, #1a1a2a 50%, #0a0a1a 100%); }
.scn-tyrant-purge-state .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-tyrant-purge-state .lamp { position:absolute; top:20%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #c08040 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(192,128,64,0.3); animation: tp-glow 3s ease-in-out infinite alternate; }
.scn-tyrant-purge-state .tyrant-sword { position:absolute; bottom:35%; left:45%; width:14px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom center; animation: tp-strike 6s ease-in-out infinite; }
.scn-tyrant-purge-state .victim { position:absolute; bottom:28%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-fall 6s ease-in-out infinite; }
.scn-tyrant-purge-state .shadow-victim { position:absolute; bottom:27%; left:54%; width:20px; height:8px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(3px); animation: tp-shadow 6s ease-in-out infinite; }
.scn-tyrant-purge-state .particle { position:absolute; width:4px; height:4px; background: rgba(200,160,100,0.6); border-radius: 50%; filter: blur(1px); animation: tp-dust 8s ease-in-out infinite; }
.scn-tyrant-purge-state .particle-a { top:40%; left:30%; animation-delay: -2s; }
.scn-tyrant-purge-state .particle-b { top:50%; left:70%; animation-delay: -5s; }
@keyframes tp-glow { 0% { box-shadow: 0 0 18px 6px rgba(192,128,64,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 32px 12px rgba(192,128,64,0.5); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(192,128,64,0.3); opacity: 0.85; } }
@keyframes tp-strike { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes tp-fall { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.3); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes tp-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-20px) translateX(-10px) scale(1.5); opacity: 0.8; } 100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; } }

.scn-tyrant-bodyguard-drones { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 20% 100%, #2a1a3a 0%, transparent 70%); }
.scn-tyrant-bodyguard-drones .corridor-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a4a 0%, #1a1a2a 30%, #0a0a1a 70%, #2a2a4a 100%); }
.scn-tyrant-bodyguard-drones .corridor-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-tyrant-bodyguard-drones .guard { position:absolute; bottom:28%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-tyrant-bodyguard-drones .guard-1 { left:15%; animation: bd-guard-idle 8s ease-in-out infinite; }
.scn-tyrant-bodyguard-drones .guard-2 { left:45%; animation: bd-guard-idle 8s ease-in-out infinite -2s; }
.scn-tyrant-bodyguard-drones .guard-3 { left:75%; animation: bd-guard-idle 8s ease-in-out infinite -5s; }
.scn-tyrant-bodyguard-drones .tyrant-overlord { position:absolute; bottom:30%; left:90%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-overlord 8s ease-in-out infinite; }
.scn-tyrant-bodyguard-drones .torch { position:absolute; top:15%; left:50%; width:6px; height:25px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); animation: bd-torch 3s ease-in-out infinite alternate; }
.scn-tyrant-bodyguard-drones .torch-glow { position:absolute; top:12%; left:50%; width:40px; height:40px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(192,128,64,0.4) 0%, transparent 70%); border-radius: 50%; animation: bd-torch-glow 3s ease-in-out infinite alternate; }
@keyframes bd-guard-idle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bd-overlord { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bd-torch { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.15); } 100% { opacity: 0.8; transform: translateX(-50%) scaleY(1); } }
@keyframes bd-torch-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.6; transform: translate(-50%, -50%) scale(0.9); } }

.scn-tyrant-maintenance { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 80% 100%, #3a2a4a 0%, transparent 70%); }
.scn-tyrant-maintenance .vault-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #2a2a4a 0%, #1a1a2a 50%, #0a0a1a 100%); }
.scn-tyrant-maintenance .vault-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-tyrant-maintenance .treasure-chest { position:absolute; bottom:30%; left:50%; width:30px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: tm-chest 6s ease-in-out infinite; }
.scn-tyrant-maintenance .coin { position:absolute; bottom:33%; width:8px; height:8px; background: radial-gradient(circle at 30% 30%, #d4a040 0%, #a07020 70%); border-radius: 50%; box-shadow: 0 0 4px rgba(200,160,80,0.3); }
.scn-tyrant-maintenance .coin-a { left:45%; animation: tm-coin 8s ease-in-out infinite -1s; }
.scn-tyrant-maintenance .coin-b { left:53%; animation: tm-coin 8s ease-in-out infinite -4s; }
.scn-tyrant-maintenance .figure-guard { position:absolute; bottom:28%; left:65%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tm-guard 10s ease-in-out infinite; }
.scn-tyrant-maintenance .lantern { position:absolute; top:20%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #c08040 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 4px rgba(192,128,64,0.3); animation: tm-lantern 4s ease-in-out infinite alternate; }
.scn-tyrant-maintenance .lantern-halo { position:absolute; top:16%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(192,128,64,0.25) 0%, transparent 70%); border-radius: 50%; animation: tm-halo 4s ease-in-out infinite alternate; }
@keyframes tm-chest { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95) translateY(1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes tm-coin { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-5px) rotate(360deg); opacity: 1; } 100% { transform: translateY(0) rotate(720deg); opacity: 0.6; } }
@keyframes tm-guard { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tm-lantern { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scaleY(1); } }
@keyframes tm-halo { 0% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); } }

.scn-tyrant-parricide-analogy { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 60%); }
.scn-tyrant-parricide-analogy .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #2a2a4a 0%, #1a1a2a 50%, #0a0a1a 100%); }
.scn-tyrant-parricide-analogy .floor-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-tyrant-parricide-analogy .tyrant-weapon { position:absolute; bottom:30%; left:40%; width:10px; height:45px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom center; animation: pa-stab 5s ease-in-out infinite; }
.scn-tyrant-parricide-analogy .old-figure { position:absolute; bottom:25%; left:55%; width:20px; height:35px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-fall 5s ease-in-out infinite; }
.scn-tyrant-parricide-analogy .shadow-old { position:absolute; bottom:22%; left:53%; width:30px; height:12px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: pa-shadow 5s ease-in-out infinite; }
.scn-tyrant-parricide-analogy .light-shaft { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(200,160,100,0.15) 0%, transparent 100%); filter: blur(10px); animation: pa-shaft 10s ease-in-out infinite; }
.scn-tyrant-parricide-analogy .drip { position:absolute; width:4px; height:8px; background: linear-gradient(180deg, transparent 0%, rgba(100,60,40,0.4) 100%); border-radius: 50%; animation: pa-drip 4s ease-in-out infinite; }
.scn-tyrant-parricide-analogy .drip-a { top:20%; left:35%; animation-delay: -1s; }
.scn-tyrant-parricide-analogy .drip-b { top:40%; left:65%; animation-delay: -3s; }
@keyframes pa-stab { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes pa-fall { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(8px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes pa-shaft { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.05); } 100% { opacity: 0.2; transform: scaleX(1); } }
@keyframes pa-drip { 0% { transform: translateY(0) scaleY(1); opacity: 0.6; } 50% { transform: translateY(10px) scaleY(1.2); opacity: 1; } 100% { transform: translateY(20px) scaleY(0.8); opacity: 0.2; } }

/* Scene: justice-own-business */
.scn-justice-own-business {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 50%, #fdf8f0 0%, transparent 80%);
}
.scn-justice-own-business .room { position:absolute; inset:0; background:linear-gradient(135deg, #faf3e4 0%, #ede2cf 100%); animation: jb-room 20s ease-in-out infinite alternate; }
.scn-justice-own-business .column-left { position:absolute; left:20%; bottom:0; width:16px; height:60%; background:linear-gradient(90deg, #b8a88a 0%, #d4c4a8 50%, #b8a88a 100%); border-radius:4px; box-shadow:0 0 20px rgba(180,160,120,.3); animation: jb-column 12s ease-in-out infinite; }
.scn-justice-own-business .column-right { position:absolute; right:20%; bottom:0; width:16px; height:60%; background:linear-gradient(90deg, #b8a88a 0%, #d4c4a8 50%, #b8a88a 100%); border-radius:4px; box-shadow:0 0 20px rgba(180,160,120,.3); animation: jb-column 12s ease-in-out infinite 6s; }
.scn-justice-own-business .scale-base { position:absolute; bottom:30%; left:50%; width:60px; height:10px; transform:translateX(-50%); background:linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.15); }
.scn-justice-own-business .scale-pan-left { position:absolute; bottom:25%; left:50%; width:24px; height:8px; transform:translateX(-30px); background:linear-gradient(180deg, #d4b890 0%, #b89870 100%); border-radius:0 0 50% 50%; box-shadow:0 2px 6px rgba(0,0,0,.1); animation: jb-pan 8s ease-in-out infinite alternate; }
.scn-justice-own-business .scale-pan-right { position:absolute; bottom:25%; left:50%; width:24px; height:8px; transform:translateX(6px); background:linear-gradient(180deg, #d4b890 0%, #b89870 100%); border-radius:0 0 50% 50%; box-shadow:0 2px 6px rgba(0,0,0,.1); animation: jb-pan 8s ease-in-out infinite alternate-reverse; }
.scn-justice-own-business .light-beam { position:absolute; top:10%; left:35%; width:30%; height:50%; background:linear-gradient(180deg, rgba(255,245,200,.6) 0%, rgba(255,245,200,.1) 100%); transform:skewX(-6deg); filter:blur(8px); animation: jb-beam 18s ease-in-out infinite; }
@keyframes jb-room { 0% { opacity:.92 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes jb-column { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes jb-pan { 0% { transform:translateX(-30px) rotate(0deg) } 50% { transform:translateX(-30px) rotate(2deg) } 100% { transform:translateX(-30px) rotate(-2deg) } }
@keyframes jb-beam { 0% { opacity:.5; transform:skewX(-6deg) translateX(0) } 50% { opacity:.8; transform:skewX(-4deg) translateX(5px) } 100% { opacity:.6; transform:skewX(-8deg) translateX(-3px) } }

/* Scene: meddling-injustice */
.scn-meddling-injustice {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5040 50%, #8a7050 100%),
              radial-gradient(ellipse at 50% 30%, #b09070 0%, transparent 60%);
}
.scn-meddling-injustice .bg-room { position:absolute; inset:0; background:linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); animation: mi-room 2s ease-in-out infinite alternate; }
.scn-meddling-injustice .figure-one { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background:linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: mi-figure 0.8s ease-in-out infinite; }
.scn-meddling-injustice .figure-two { position:absolute; bottom:15%; left:45%; width:28px; height:72px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: mi-figure 0.6s ease-in-out infinite 0.2s; }
.scn-meddling-injustice .figure-three { position:absolute; bottom:25%; left:70%; width:26px; height:68px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: mi-figure 0.9s ease-in-out infinite 0.4s; }
.scn-meddling-injustice .chain { position:absolute; bottom:40%; left:35%; width:30%; height:2px; background:linear-gradient(90deg, #c0a070 0%, #a08850 50%, #c0a070 100%); border-radius:2px; box-shadow:0 0 4px #a08850; animation: mi-chain 1.5s ease-in-out infinite; }
.scn-meddling-injustice .shadow-deep { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.7) 0%, transparent 70%); animation: mi-shadow 3s ease-in-out infinite alternate; }
.scn-meddling-injustice .flicker { position:absolute; top:10%; left:40%; width:20%; height:30%; background:radial-gradient(circle, #d0b080 0%, transparent 70%); filter:blur(20px); animation: mi-flicker 0.2s step-end infinite; }
@keyframes mi-room { 0% { opacity:.85; filter:brightness(1) } 100% { opacity:.9; filter:brightness(1.1) } }
@keyframes mi-figure { 0% { transform:translateX(0) rotate(1deg) } 50% { transform:translateX(2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes mi-chain { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(0) } }
@keyframes mi-shadow { 0% { opacity:.6 } 100% { opacity:.8 } }
@keyframes mi-flicker { 0%,100% { opacity:.7 } 50% { opacity:1 } }

/* Scene: analogy-state-and-individual */
.scn-analogy-state-and-individual {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 50%, #fff8f0 0%, transparent 70%);
}
.scn-analogy-state-and-individual .bg-hall { position:absolute; inset:0; background:linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%); animation: si-hall 24s ease-in-out infinite alternate; }
.scn-analogy-state-and-individual .figure-state { position:absolute; bottom:20%; left:25%; width:36px; height:80px; background:linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: si-figure 10s ease-in-out infinite; }
.scn-analogy-state-and-individual .figure-individual { position:absolute; bottom:20%; left:65%; width:24px; height:60px; background:linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: si-figure 10s ease-in-out infinite 0.5s; }
.scn-analogy-state-and-individual .mirror-frame { position:absolute; top:15%; left:43%; width:14%; height:40%; border:6px solid #b09878; border-radius:8px; box-shadow:inset 0 0 20px rgba(180,160,120,.4); background:linear-gradient(135deg, rgba(255,245,220,.3) 0%, transparent 100%); animation: si-mirror 20s ease-in-out infinite; }
.scn-analogy-state-and-individual .light-ray { position:absolute; top:10%; left:44%; width:2%; height:20%; background:linear-gradient(180deg, rgba(255,245,200,.5) 0%, transparent 100%); transform:rotate(10deg); filter:blur(3px); animation: si-ray 15s ease-in-out infinite; }
.scn-analogy-state-and-individual .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background:linear-gradient(0deg, #b8a88a 0%, #c8b898 100%); border-radius:10% 10% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.1); animation: si-floor 30s ease-in-out infinite alternate; }
@keyframes si-hall { 0% { opacity:.95 } 100% { opacity:1 } }
@keyframes si-figure { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes si-mirror { 0% { box-shadow:inset 0 0 20px rgba(180,160,120,.4) } 100% { box-shadow:inset 0 0 30px rgba(200,180,140,.6) } }
@keyframes si-ray { 0% { opacity:.3; transform:rotate(10deg) } 50% { opacity:.6; transform:rotate(12deg) } 100% { opacity:.4; transform:rotate(8deg) } }
@keyframes si-floor { 0% { opacity:.9 } 100% { opacity:1 } }

/* Scene: three-principles-in-soul */
.scn-three-principles-in-soul {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a88a 100%),
              radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 70%);
}
.scn-three-principles-in-soul .bg-temple { position:absolute; inset:0; background:linear-gradient(180deg, #d4c4a8 0%, #c0b898 100%); animation: ts-temple 30s ease-in-out infinite alternate; }
.scn-three-principles-in-soul .section-reason { position:absolute; top:5%; left:20%; width:60%; height:20%; background:linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 100%); border-radius:12% 12% 4% 4%; box-shadow:0 4px 12px rgba(0,0,0,.1); animation: ts-section 14s ease-in-out infinite; }
.scn-three-principles-in-soul .section-spirit { position:absolute; top:28%; left:18%; width:64%; height:20%; background:linear-gradient(180deg, #d0c0a0 0%, #c0b090 100%); border-radius:4%; box-shadow:0 4px 12px rgba(0,0,0,.1); animation: ts-section 14s ease-in-out infinite 4s; }
.scn-three-principles-in-soul .section-appetite { position:absolute; bottom:20%; left:16%; width:68%; height:20%; background:linear-gradient(180deg, #b0a080 0%, #a09070 100%); border-radius:4% 4% 12% 12%; box-shadow:0 4px 12px rgba(0,0,0,.1); animation: ts-section 14s ease-in-out infinite 8s; }
.scn-three-principles-in-soul .central-column { position:absolute; top:0; left:50%; width:10px; height:100%; transform:translateX(-50%); background:linear-gradient(180deg, #c8b898 0%, #a09070 50%, #8a7a5a 100%); border-radius:4px; box-shadow:0 0 20px rgba(180,160,120,.3); animation: ts-column 22s ease-in-out infinite; }
.scn-three-principles-in-soul .glow { position:absolute; top:5%; left:35%; width:30%; height:40%; background:radial-gradient(ellipse at 50% 30%, rgba(255,245,200,.3) 0%, transparent 70%); filter:blur(30px); animation: ts-glow 12s ease-in-out infinite alternate; }
.scn-three-principles-in-soul .pillar-left { position:absolute; left:12%; bottom:0; width:12px; height:80%; background:linear-gradient(90deg, #b09878 0%, #c8b898 50%, #b09878 100%); border-radius:4px; animation: ts-pillar 20s ease-in-out infinite; }
.scn-three-principles-in-soul .pillar-right { position:absolute; right:12%; bottom:0; width:12px; height:80%; background:linear-gradient(90deg, #b09878 0%, #c8b898 50%, #b09878 100%); border-radius:4px; animation: ts-pillar 20s ease-in-out infinite 10s; }
@keyframes ts-temple { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes ts-section { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ts-column { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes ts-glow { 0% { opacity:.4; transform:scale(1) } 100% { opacity:.7; transform:scale(1.05) } }
@keyframes ts-pillar { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }

/* scene: principles-of-theology */
.scn-principles-of-theology {
  background:
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1c1814 0%, #2a221c 50%, #1e1814 100%);
}
.scn-principles-of-theology .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a241c 0%, #1e1814 100%);
  animation: pt-wall 20s ease-in-out infinite alternate;
}
.scn-principles-of-theology .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6), 0 8px 16px rgba(0,0,0,.5);
  animation: pt-desk 6s ease-in-out infinite;
}
.scn-principles-of-theology .book {
  position:absolute; bottom:22%; left:38%; width:60px; height:40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 2% 2%;
  transform: rotate(-2deg) skewX(3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: pt-book 8s ease-in-out infinite alternate;
}
.scn-principles-of-theology .hand {
  position:absolute; bottom:30%; left:45%; width:20px; height:28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pt-hand 3s ease-in-out infinite;
}
.scn-principles-of-theology .candle {
  position:absolute; bottom:26%; left:58%; width:8px; height:40px;
  background: linear-gradient(180deg, #e8d8b0 0%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: pt-candle 5s ease-in-out infinite;
}
.scn-principles-of-theology .flame {
  position:absolute; bottom:60%; left:58.5%; width:6px; height:12px;
  background: radial-gradient(circle, #ffd080 0%, #e08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,.6), 0 0 40px 16px rgba(224,128,48,.3);
  animation: pt-flame 2s ease-in-out infinite alternate;
}
.scn-principles-of-theology .shadow-fig {
  position:absolute; bottom:38%; left:12%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  opacity:0.3;
  filter: blur(4px);
  animation: pt-shadow 12s ease-in-out infinite alternate;
}

@keyframes pt-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pt-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pt-book { 0% { transform: rotate(-2deg) skewX(3deg) translateX(0) } 50% { transform: rotate(-1deg) skewX(2deg) translateX(2px) } 100% { transform: rotate(-4deg) skewX(4deg) translateX(-1px) } }
@keyframes pt-hand { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes pt-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes pt-flame { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.1) rotate(3deg) } 100% { transform: scaleY(0.95) rotate(-5deg) } }
@keyframes pt-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(0.9) } 100% { transform: translateX(-2px) scaleX(1.05) } }

/* scene: fear-of-death */
.scn-fear-of-death {
  background:
    radial-gradient(ellipse at 60% 30%, #1a1c2a 0%, transparent 60%),
    linear-gradient(180deg, #121418 0%, #1a1e24 40%, #14161a 100%);
}
.scn-fear-of-death .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1e2028 0%, #0e1014 100%);
  border-radius: 20% 10% 0 0;
  animation: fd-floor 15s ease-in-out infinite alternate;
}
.scn-fear-of-death .wall-back {
  position:absolute; inset:10% 0 20% 0;
  background: linear-gradient(180deg, #1a1c22 0%, #121416 100%);
  border-radius: 0 0 20% 20%;
  animation: fd-wall 20s ease-in-out infinite;
}
.scn-fear-of-death .window {
  position:absolute; top:18%; left:30%; width:80px; height:100px;
  background: linear-gradient(180deg, #2a3040 0%, #1a1e2a 100%);
  border: 6px solid #1e222e;
  border-radius: 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
  animation: fd-window 10s ease-in-out infinite alternate;
}
.scn-fear-of-death .figure {
  position:absolute; bottom:18%; left:38%; width:24px; height:60px;
  background: linear-gradient(180deg, #0e1014 0%, #080a0c 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fd-figure 6s ease-in-out infinite;
}
.scn-fear-of-death .lamp {
  position:absolute; bottom:22%; right:22%; width:10px; height:14px;
  background: radial-gradient(circle, #d8b880 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(216,184,128,.4), 0 0 60px 20px rgba(160,128,64,.2);
  animation: fd-lamp 3s ease-in-out infinite alternate;
}
.scn-fear-of-death .pool {
  position:absolute; bottom:2%; left:40%; width:80px; height:20px;
  background: linear-gradient(90deg, transparent 0%, #1a1c28 30%, #2a3040 50%, #1a1c28 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fd-pool 12s ease-in-out infinite;
}
.scn-fear-of-death .dust {
  position:absolute; top:30%; left:10%; width:60px; height:2px;
  background: rgba(200,200,220,0.1);
  border-radius: 50%;
  filter: blur(8px);
  animation: fd-dust 40s linear infinite;
}

@keyframes fd-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fd-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fd-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes fd-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 fd-lamp { 0% { transform: scale(1) opacity:.7 } 50% { transform: scale(1.2) opacity:1 } 100% { transform: scale(1.1) opacity:.8 } }
@keyframes fd-pool { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(0.8) } }
@keyframes fd-dust { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* scene: obnoxious-passages */
.scn-obnoxious-passages {
  background:
    radial-gradient(ellipse at 50% 90%, #2a2218 0%, transparent 60%),
    linear-gradient(180deg, #1e1a16 0%, #2a2420 50%, #1a1612 100%);
}
.scn-obnoxious-passages .shelf {
  position:absolute; top:12%; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4);
  animation: op-shelf 12s ease-in-out infinite alternate;
}
.scn-obnoxious-passages .scroll {
  position:absolute; top:18%; left:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: op-scroll 8s ease-in-out infinite;
}
.scn-obnoxious-passages .table {
  position:absolute; bottom:12%; left:15%; right:15%; height:22%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-obnoxious-passages .inkwell {
  position:absolute; bottom:26%; left:48%; width:16px; height:20px;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.5);
  animation: op-ink 5s ease-in-out infinite alternate;
}
.scn-obnoxious-passages .quill {
  position:absolute; bottom:42%; left:50%; width:4px; height:40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-15deg) translateX(-10px);
  transform-origin: bottom center;
  animation: op-quill 3s ease-in-out infinite;
}
.scn-obnoxious-passages .hand {
  position:absolute; bottom:32%; left:44%; width:22px; height:30px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: op-hand 4s ease-in-out infinite;
}
.scn-obnoxious-passages .light-spot {
  position:absolute; bottom:34%; left:46%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(240,200,120,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: op-light 6s ease-in-out infinite alternate;
}

@keyframes op-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes op-scroll { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(7deg) translateY(0) } }
@keyframes op-ink { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.98) } }
@keyframes op-quill { 0% { transform: rotate(-15deg) translateX(-10px) } 50% { transform: rotate(-10deg) translateX(-8px) } 100% { transform: rotate(-20deg) translateX(-12px) } }
@keyframes op-hand { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes op-light { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* scene: more-passages */
.scn-more-passages {
  background:
    radial-gradient(ellipse at 30% 60%, #2a221c 0%, transparent 50%),
    linear-gradient(180deg, #141210 0%, #1c1a16 40%, #120e0c 100%);
}
.scn-more-passages .doorway {
  position:absolute; top:5%; left:35%; width:100px; height:120%;
  background: linear-gradient(180deg, #0e0c08 0%, #1a1410 100%);
  border-radius: 10% 10% 0 0;
  clip-path: inset(0 0 20% 0);
  animation: mp-doorway 15s ease-in-out infinite alternate;
}
.scn-more-passages .lintel {
  position:absolute; top:5%; left:33%; right:33%; height:8px;
  background: linear-gradient(90deg, #2a221a, #3a2e22, #2a221a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-more-passages .gate {
  position:absolute; top:16%; left:35%; width:100px; height:80px;
  background: linear-gradient(180deg, #1e1a14 0%, #0e0a08 100%);
  border: 4px solid #2a221a;
  border-radius: 6%;
  transform: perspective(400px) rotateY(8deg);
  transform-origin: left center;
  animation: mp-gate 10s ease-in-out infinite;
}
.scn-more-passages .torch {
  position:absolute; top:40%; left:28%; width:12px; height:24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 30% 30% 10% 10%;
  animation: mp-torch 6s ease-in-out infinite;
}
.scn-more-passages .glow {
  position:absolute; top:38%; left:26%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(240,200,120,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(16px);
  animation: mp-glow 4s ease-in-out infinite alternate;
}
.scn-more-passages .shadow {
  position:absolute; top:20%; left:30%; width:60px; height:160px;
  background: linear-gradient(180deg, #0e0c08 0%, #060504 100%);
  transform: skewX(10deg);
  opacity:0.4;
  filter: blur(8px);
  animation: mp-shadow 8s ease-in-out infinite alternate;
}
.scn-more-passages .figure {
  position:absolute; bottom:18%; left:42%; width:22px; height:55px;
  background: linear-gradient(180deg, #1a1612 0%, #0c0a08 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 7s ease-in-out infinite;
}
.scn-more-passages .drapery {
  position:absolute; top:3%; left:25%; width:180px; height:30px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(3px);
  animation: mp-drape 18s ease-in-out infinite alternate;
}

@keyframes mp-doorway { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes mp-gate { 0% { transform: perspective(400px) rotateY(8deg) } 50% { transform: perspective(400px) rotateY(10deg) } 100% { transform: perspective(400px) rotateY(6deg) } }
@keyframes mp-torch { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } }
@keyframes mp-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes mp-shadow { 0% { transform: skewX(10deg) translateX(0) } 50% { transform: skewX(12deg) translateX(5px) } 100% { transform: skewX(8deg) translateX(-3px) } }
@keyframes mp-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 mp-drape { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.05) } 100% { transform: translateY(2px) scaleX(0.95) } }

.scn-natural-gifts-vary { background: linear-gradient(180deg, #f5edd6 0%, #e8dcc8 60%, #d4c4a8 100%), radial-gradient(ellipse at 30% 20%, #fef9e6 0%, transparent 60%); }
.scn-natural-gifts-vary .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #dad0b8, #c6b89a); border-radius:0 0 20% 20%; box-shadow: inset 0 4px 20px rgba(0,0,0,.1); animation: ngv-wall 20s ease-in-out infinite alternate; }
.scn-natural-gifts-vary .window { position:absolute; top:10%; left:15%; width:25%; height:40%; background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 80%); border: 6px solid #8a6e4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: ngv-window 12s ease-in-out infinite; }
.scn-natural-gifts-vary .desk { position:absolute; bottom:25%; left:50%; width:45%; height:10%; background: linear-gradient(180deg, #a08060, #7a5c3e); border-radius:4px; transform:translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-natural-gifts-vary .book { position:absolute; bottom:30%; left:55%; width:12%; height:8%; background: linear-gradient(135deg, #6a4a3a, #8a6040); border-radius:2px; transform:rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: ngv-book 6s ease-in-out infinite; }
.scn-natural-gifts-vary .lamp { position:absolute; bottom:30%; left:42%; width:4%; height:20%; background: linear-gradient(180deg, #c08040, #8a5a20); border-radius:2px; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.3); animation: ngv-lamp-glow 4s ease-in-out infinite alternate; }
.scn-natural-gifts-vary .figure-teacher { position:absolute; bottom:20%; left:38%; width:8%; height:25%; background: linear-gradient(180deg, #c8a878, #a08060); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 10px rgba(0,0,0,.2); animation: ngv-teacher 8s ease-in-out infinite; }
.scn-natural-gifts-vary .figure-pupil { position:absolute; bottom:20%; right:38%; width:7%; height:22%; background: linear-gradient(180deg, #b8a48c, #8a7060); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 10px rgba(0,0,0,.2); animation: ngv-pupil 9s ease-in-out infinite; }
@keyframes ngv-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ngv-window { 0% { background-position:0 0; } 50% { background-position:0 10%; } 100% { background-position:0 0; } }
@keyframes ngv-book { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes ngv-lamp-glow { 0% { box-shadow: 0 0 20px 5px #e8b860; } 50% { box-shadow: 0 0 40px 15px #ffd080; } 100% { box-shadow: 0 0 25px 8px #e8b860; } }
@keyframes ngv-teacher { 0% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ngv-pupil { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(-2px) translateY(-1px); } 100% { transform:translateX(0) translateY(0); } }

.scn-natural-education-equal { background: linear-gradient(180deg, #f2ead8 0%, #e0d4b8 50%, #cabb9a 100%), radial-gradient(ellipse at 80% 60%, #fcf5e0 0%, transparent 50%); }
.scn-natural-education-equal .colonnade-back { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #c8b898, #b0a080); border-radius:0; box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-natural-education-equal .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #caba9a, #b0a080); border-radius:0; box-shadow: inset 0 10px 20px rgba(0,0,0,.15); }
.scn-natural-education-equal .figure-gymnast { position:absolute; bottom:20%; left:25%; width:8%; height:30%; background: linear-gradient(180deg, #d4b898, #b89878); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nee-gymnast 5s ease-in-out infinite; }
.scn-natural-education-equal .figure-lyre { position:absolute; bottom:20%; right:30%; width:7%; height:28%; background: linear-gradient(180deg, #c8a888, #a88868); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nee-lyre-player 7s ease-in-out infinite; }
.scn-natural-education-equal .lyre { position:absolute; bottom:35%; right:33%; width:6%; height:15%; background: linear-gradient(180deg, #d09848, #b07828); border-radius:40% 40% 10% 10%; box-shadow: 0 0 10px rgba(0,0,0,.2); transform:rotate(10deg); animation: nee-lyre-instr 7s ease-in-out infinite; }
.scn-natural-education-equal .pillar-left { position:absolute; bottom:0; left:15%; width:4%; height:70%; background: linear-gradient(180deg, #c8b8a0, #a89880); border-radius:4px; box-shadow: 2px 0 10px rgba(0,0,0,.15); animation: nee-pillar 30s ease-in-out infinite alternate; }
.scn-natural-education-equal .pillar-right { position:absolute; bottom:0; right:15%; width:4%; height:70%; background: linear-gradient(180deg, #c8b8a0, #a89880); border-radius:4px; box-shadow: -2px 0 10px rgba(0,0,0,.15); animation: nee-pillar 30s ease-in-out infinite alternate-reverse; }
@keyframes nee-gymnast { 0% { transform:translateY(0) rotate(-5deg); } 25% { transform:translateY(-8px) rotate(0); } 50% { transform:translateY(0) rotate(5deg); } 75% { transform:translateY(-6px) rotate(0); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes nee-lyre-player { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes nee-lyre-instr { 0% { transform:rotate(10deg) scale(1); } 50% { transform:rotate(12deg) scale(1.03); } 100% { transform:rotate(10deg) scale(1); } }
@keyframes nee-pillar { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }

.scn-laughter-unwise { background: linear-gradient(180deg, #f7e8c8 0%, #e8d4a0 50%, #d0b880 100%), radial-gradient(ellipse at 20% 80%, #ffeecc 0%, transparent 60%); }
.scn-laughter-unwise .courtyard-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #d0b890, #c8a878, #d0b890); border-radius:0; box-shadow: inset 0 0 20px rgba(0,0,0,.1); }
.scn-laughter-unwise .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8b080, #b09868); border-radius:0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-laughter-unwise .figure-woman1 { position:absolute; bottom:25%; left:20%; width:7%; height:28%; background: linear-gradient(180deg, #d4b898, #b89878); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: luw-woman1 6s ease-in-out infinite; }
.scn-laughter-unwise .figure-woman2 { position:absolute; bottom:28%; left:35%; width:7%; height:25%; background: linear-gradient(180deg, #c8a888, #a88868); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: luw-woman2 7s ease-in-out infinite; }
.scn-laughter-unwise .figure-woman3 { position:absolute; bottom:26%; right:30%; width:7%; height:27%; background: linear-gradient(180deg, #d0b090, #b09878); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: luw-woman3 5.5s ease-in-out infinite; }
.scn-laughter-unwise .figure-laugher { position:absolute; bottom:20%; left:55%; width:8%; height:30%; background: linear-gradient(180deg, #a09070, #807050); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 12px rgba(0,0,0,.25); animation: luw-laugher 8s ease-in-out infinite; }
.scn-laughter-unwise .column { position:absolute; bottom:0; left:50%; width:4%; height:60%; background: linear-gradient(180deg, #c8b8a0, #a89880); border-radius:4px; transform:translateX(-50%); box-shadow: 0 0 20px rgba(0,0,0,.1); animation: luw-column 25s ease-in-out infinite alternate; }
@keyframes luw-woman1 { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes luw-woman2 { 0% { transform:translateX(0); } 50% { transform:translateX(5px); } 100% { transform:translateX(0); } }
@keyframes luw-woman3 { 0% { transform:rotate(0); } 50% { transform:rotate(3deg); } 100% { transform:rotate(0); } }
@keyframes luw-laugher { 0% { transform:translateY(0) rotate(-3deg) scale(1); } 50% { transform:translateY(-6px) rotate(3deg) scale(1.04); } 100% { transform:translateY(0) rotate(-3deg) scale(1); } }
@keyframes luw-column { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }

.scn-willing-obedience-command { background: linear-gradient(180deg, #e8dbc4 0%, #d4c4a8 40%, #b8a888 100%), radial-gradient(ellipse at 50% 30%, #f7edd8 0%, transparent 70%); }
.scn-willing-obedience-command .hall-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b898, #b0a080); border-radius:0; box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-willing-obedience-command .throne { position:absolute; bottom:20%; left:50%; width:20%; height:30%; background: linear-gradient(180deg, #a08060, #7a5c3e); border-radius: 10% 10% 4% 4%; transform:translateX(-50%); box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.scn-willing-obedience-command .figure-ruler { position:absolute; bottom:20%; left:50%; width:8%; height:28%; background: linear-gradient(180deg, #c8a878, #a08060); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,.2); animation: woc-ruler 8s ease-in-out infinite; }
.scn-willing-obedience-command .figure-auxiliary1 { position:absolute; bottom:20%; left:30%; width:6%; height:22%; background: linear-gradient(180deg, #b0a090, #908070); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: woc-aux1 9s ease-in-out infinite; }
.scn-willing-obedience-command .figure-auxiliary2 { position:absolute; bottom:20%; right:30%; width:6%; height:22%; background: linear-gradient(180deg, #b0a090, #908070); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: woc-aux2 9s ease-in-out infinite; }
.scn-willing-obedience-command .staff { position:absolute; bottom:30%; left:50%; width:2%; height:20%; background: linear-gradient(180deg, #c08040, #8a5a20); border-radius:2px; transform:translateX(40px); box-shadow: 0 0 10px rgba(0,0,0,.2); animation: woc-staff 6s ease-in-out infinite; }
@keyframes woc-ruler { 0% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes woc-aux1 { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes woc-aux2 { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes woc-staff { 0% { transform:translateX(40px) rotate(-2deg); } 50% { transform:translateX(40px) rotate(2deg); } 100% { transform:translateX(40px) rotate(-2deg); } }

.scn-democracy-origin {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #cbb894 40%, #8a7050 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-democracy-origin .hall {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #b8a080 100%);
  animation: do-hall 12s ease-in-out infinite alternate;
}
.scn-democracy-origin .pillar-l,
.scn-democracy-origin .pillar-r {
  position:absolute; width:20px; height:80%; bottom:0;
  background: linear-gradient(90deg, #a0896a 0%, #c0a880 50%, #a0896a 100%);
  border-radius:4px 4px 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.3);
}
.scn-democracy-origin .pillar-l { left:12%; }
.scn-democracy-origin .pillar-r { right:12%; }
.scn-democracy-origin .speaker {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%);
  width:30px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: do-speaker 5s ease-in-out infinite alternate;
}
.scn-democracy-origin .citizen {
  position:absolute; bottom:22%; width:20px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
}
.scn-democracy-origin .cit-1 { left:25%; animation: do-cit1 6s ease-in-out infinite; }
.scn-democracy-origin .cit-2 { right:25%; animation: do-cit2 7s ease-in-out infinite; }
.scn-democracy-origin .light-beam {
  position:absolute; top:0; left:50%; width:60px; height:100%;
  background: linear-gradient(180deg, rgba(255,248,230,0.6) 0%, transparent 100%);
  transform:translateX(-50%) skewX(-5deg);
  animation: do-beam 8s ease-in-out infinite alternate;
}
@keyframes do-hall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes do-speaker { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes do-cit1 { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes do-cit2 { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes do-beam { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-democracy-established {
  background:
    linear-gradient(180deg, #e8dbc4 0%, #cbb894 50%, #8a7050 100%),
    radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 70%);
}
.scn-democracy-established .chamber {
  position:absolute; inset:0; background: linear-gradient(180deg, #dccbb0 0%, #b8a080 100%);
  animation: de-chamber 15s ease-in-out infinite alternate;
}
.scn-democracy-established .arch {
  position:absolute; top:5%; left:20%; right:20%; height:40%;
  background: radial-gradient(ellipse at 50% 0%, #c0a880 0%, transparent 100%);
  border-radius: 50% 50% 0 0; opacity:.4;
  animation: de-arch 10s ease-in-out infinite alternate;
}
.scn-democracy-established .urn {
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%);
  width:28px; height:35px;
  background: radial-gradient(ellipse at 50% 30%, #a0896a 0%, #5a4a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: de-urn 7s ease-in-out infinite alternate;
}
.scn-democracy-established .tablet {
  position:absolute; bottom:25%; left:44%; width:25px; height:18px;
  background: linear-gradient(180deg, #c8b898 0%, #a08a6a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: de-tablet 9s ease-in-out infinite;
}
.scn-democracy-established .figure {
  position:absolute; bottom:22%; width:20px; height:48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a120c 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
}
.scn-democracy-established .fig-vote { left:30%; animation: de-fig1 5s ease-in-out infinite; }
.scn-democracy-established .fig-observe { right:30%; animation: de-fig2 6s ease-in-out infinite; }
.scn-democracy-established .shadow-line {
  position:absolute; bottom:20%; left:0; right:0; height:2px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.3) 70%, transparent 100%);
  animation: de-shadow 8s ease-in-out infinite alternate;
}
@keyframes de-chamber { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes de-arch { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(.95) } }
@keyframes de-urn { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes de-tablet { 0% { transform:rotate(-2deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-1deg) } }
@keyframes de-fig1 { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes de-fig2 { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes de-shadow { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-democratic-man-life {
  background:
    linear-gradient(180deg, #f0e6d2 0%, #d4bfa0 40%, #a08a6a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-democratic-man-life .room {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #c0a880 100%);
  animation: dm-room 14s ease-in-out infinite alternate;
}
.scn-democratic-man-life .couch {
  position:absolute; bottom:20%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a30 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3);
  animation: dm-couch 8s ease-in-out infinite alternate;
}
.scn-democratic-man-life .lyre {
  position:absolute; bottom:30%; left:28%; width:10px; height:20px;
  background: linear-gradient(180deg, #b89868 0%, #8a6a40 100%);
  border-radius: 40% 40% 20% 20%;
  animation: dm-lyre 6s ease-in-out infinite;
}
.scn-democratic-man-life .cup {
  position:absolute; bottom:30%; right:30%; width:12px; height:16px;
  background: radial-gradient(ellipse at 50% 30%, #c8a880 0%, #8a6a40 100%);
  border-radius: 40% 40% 30% 30%;
  animation: dm-cup 7s ease-in-out infinite alternate;
}
.scn-democratic-man-life .man {
  position:absolute; bottom:22%; left:50%; transform:translateX(-50%);
  width:24px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dm-man 5s ease-in-out infinite alternate;
}
.scn-democratic-man-life .shadow-man {
  position:absolute; bottom:18%; left:50%; transform:translateX(-50%);
  width:30px; height:20px;
  background: rgba(0,0,0,.25); border-radius: 50%;
  filter: blur(4px); animation: dm-shadow 5s ease-in-out infinite alternate;
}
.scn-democratic-man-life .dice {
  position:absolute; bottom:30%; width:8px; height:8px;
  background: #c8b898; border-radius: 4px;
  box-shadow: 0 0 2px rgba(0,0,0,.3);
}
.scn-democratic-man-life .dice-1 { left:45%; animation: dm-dice1 4s ease-in-out infinite; }
.scn-democratic-man-life .dice-2 { left:52%; animation: dm-dice2 4.5s ease-in-out infinite; }
@keyframes dm-room { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dm-couch { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes dm-lyre { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-3deg) } }
@keyframes dm-cup { 0% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-1px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes dm-man { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes dm-shadow { 0% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.1) } 100% { transform:translateX(-50%) scaleX(.95) } }
@keyframes dm-dice1 { 0% { transform:translate(0,0) rotate(0deg) } 25% { transform:translate(3px,-2px) rotate(90deg) } 50% { transform:translate(-2px,1px) rotate(180deg) } 75% { transform:translate(1px,-1px) rotate(270deg) } 100% { transform:translate(0,0) rotate(360deg) } }
@keyframes dm-dice2 { 0% { transform:translate(0,0) rotate(0deg) } 25% { transform:translate(-2px,-3px) rotate(90deg) } 50% { transform:translate(3px,0px) rotate(180deg) } 75% { transform:translate(-1px,2px) rotate(270deg) } 100% { transform:translate(0,0) rotate(360deg) } }

.scn-excess-of-freedom {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #c0a880 40%, #8a7050 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-excess-of-freedom .forum {
  position:absolute; inset:0; background: linear-gradient(180deg, #dccbb0 0%, #b8a080 100%);
  animation: ef-forum 12s ease-in-out infinite alternate;
}
.scn-excess-of-freedom .column {
  position:absolute; width:16px; height:70%; bottom:10%;
  background: linear-gradient(90deg, #a0896a 0%, #c0a880 50%, #a0896a 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,.3);
}
.scn-excess-of-freedom .col-fall {
  left:40%; transform-origin: bottom left;
  animation: ef-column 6s ease-in-out infinite alternate;
}
.scn-excess-of-freedom .crowd {
  position:absolute; bottom:18%; width:40px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-excess-of-freedom .crowd-1 { left:15%; animation: ef-crowd1 8s ease-in-out infinite; }
.scn-excess-of-freedom .crowd-2 { right:15%; animation: ef-crowd2 9s ease-in-out infinite; }
.scn-excess-of-freedom .torch {
  position:absolute; bottom:30%; width:6px; height:18px;
  background: linear-gradient(180deg, #c06820 0%, #7a3a10 100%);
  border-radius: 2px;
}
.scn-excess-of-freedom .torch-1 { left:30%; animation: ef-torch1 4s ease-in-out infinite alternate; }
.scn-excess-of-freedom .torch-2 { right:30%; animation: ef-torch2 4.5s ease-in-out infinite alternate; }
.scn-excess-of-freedom .dust {
  position:absolute; top:20%; left:20%; right:20%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,0.4) 0%, transparent 100%);
  filter: blur(8px); animation: ef-dust 20s ease-in-out infinite alternate;
}
@keyframes ef-forum { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ef-column { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(10px) rotate(8deg) } 100% { transform:translateX(-5px) rotate(-3deg) } }
@keyframes ef-crowd1 { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(5px) scale(1.1) } 100% { transform:translateX(-3px) scale(.9) } }
@keyframes ef-crowd2 { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(-4px) scale(1.05) } 100% { transform:translateX(2px) scale(.95) } }
@keyframes ef-torch1 { 0% { transform:translateY(0) rotate(-5deg); box-shadow: 0 0 12px 4px #c06820; } 50% { transform:translateY(-2px) rotate(5deg); box-shadow: 0 0 18px 6px #e08030; } 100% { transform:translateY(0) rotate(-3deg); box-shadow: 0 0 14px 5px #c06820; } }
@keyframes ef-torch2 { 0% { transform:translateY(0) rotate(5deg); box-shadow: 0 0 10px 3px #c06820; } 50% { transform:translateY(-1px) rotate(-5deg); box-shadow: 0 0 16px 7px #e08030; } 100% { transform:translateY(0) rotate(4deg); box-shadow: 0 0 12px 4px #c06820; } }
@keyframes ef-dust { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.5; transform:scale(1.05) } 100% { opacity:.3; transform:scale(.95) } }

.scn-gymnastics-raw-physical {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b88a 40%, #8a6e4a 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-gymnastics-raw-physical .gym-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8956a 0%, #7a5e3e 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
}
.scn-gymnastics-raw-physical .gym-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d4c4a8 0%, #e8dcc8 50%, #d4c4a8 100%);
}
.scn-gymnastics-raw-physical .gym-spotlight {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.4) 0%, transparent 70%);
  animation: grp-spot 6s ease-in-out infinite alternate;
}
.scn-gymnastics-raw-physical .gym-apparatus {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 8px;
  background: linear-gradient(90deg, #4a4a4a 0%, #6a6a6a 50%, #4a4a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-gymnastics-raw-physical .gym-figure {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: grp-move 2s ease-in-out infinite;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
}
.scn-gymnastics-raw-physical .gym-shadow {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: grp-shadow 2s ease-in-out infinite;
}
.scn-gymnastics-raw-physical .gym-sweat {
  position: absolute; top: 30%; left: 48%; width: 4px; height: 4px;
  background: radial-gradient(circle, #b0d0f0 0%, transparent 70%);
  border-radius: 50%;
  animation: grp-sweat 1.5s ease-in infinite;
}
@keyframes grp-spot {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: .7; transform: scaleX(.95); }
}
@keyframes grp-move {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-20px) rotate(10deg); }
  50% { transform: translateY(-35px) rotate(-15deg); }
  75% { transform: translateY(-20px) rotate(20deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes grp-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(.6); opacity: .3; }
  100% { transform: scaleX(1); opacity: .5; }
}
@keyframes grp-sweat {
  0% { transform: translateY(0) scale(1); opacity: .8; }
  100% { transform: translateY(30px) scale(0); opacity: 0; }
}

.scn-two-principles-harmony {
  background:
    linear-gradient(135deg, #faf3e0 0%, #e8dcc0 50%, #d4c8aa 100%),
    radial-gradient(ellipse at 50% 80%, #ffffff 0%, transparent 60%);
}
.scn-two-principles-harmony .harm-bg {
  position: absolute; inset: 0; opacity: .3;
  background: radial-gradient(circle at 30% 40%, rgba(180,160,120,.1) 0%, transparent 50%);
  animation: hrn-ambient 12s ease-in-out infinite alternate;
}
.scn-two-principles-harmony .harm-lyre {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 50%, #806040 100%);
  border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.2);
}
.scn-two-principles-harmony .harm-string-a {
  position: absolute; bottom: 30%; left: 44%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #b09060 0%, #d4b880 50%, #b09060 100%);
  transform-origin: top center;
  animation: hrn-string-a 4s ease-in-out infinite alternate;
}
.scn-two-principles-harmony .harm-string-b {
  position: absolute; bottom: 30%; left: 54%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #b09060 0%, #d4b880 50%, #b09060 100%);
  transform-origin: top center;
  animation: hrn-string-b 4s ease-in-out infinite alternate;
  animation-delay: -.8s;
}
.scn-two-principles-harmony .harm-ribbon-left {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #c8a080 0%, #e0c8a8 100%);
  border-radius: 4px; opacity: .6;
  animation: hrn-ribbon-l 8s ease-in-out infinite alternate;
}
.scn-two-principles-harmony .harm-ribbon-right {
  position: absolute; bottom: 35%; right: 20%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #e0c8a8 0%, #c8a080 100%);
  border-radius: 4px; opacity: .6;
  animation: hrn-ribbon-r 8s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-two-principles-harmony .harm-glow {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,230,180,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: hrn-glow 6s ease-in-out infinite alternate;
}
.scn-two-principles-harmony .harm-dust {
  position: absolute; top: 10%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,180,140,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: hrn-dust 20s linear infinite;
}
@keyframes hrn-ambient {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .2; }
}
@keyframes hrn-string-a {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes hrn-string-b {
  0% { transform: rotate(1deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(2deg); }
}
@keyframes hrn-ribbon-l {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(10px) translateY(-5px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes hrn-ribbon-r {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-10px) translateY(-5px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes hrn-glow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.2); }
  100% { opacity: .5; transform: scale(1); }
}
@keyframes hrn-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  10% { opacity: .6; }
  50% { transform: translateY(30px) translateX(20px) scale(1.5); opacity: .2; }
  100% { transform: translateY(60px) translateX(40px) scale(0); opacity: 0; }
}

.scn-education-rulers-selection {
  background:
    linear-gradient(180deg, #e8ddc8 0%, #d0c0a0 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-education-rulers-selection .educ-bg {
  position: absolute; inset: 0; opacity: .2;
  background: linear-gradient(180deg, rgba(255,240,200,.1) 0%, transparent 80%);
}
.scn-education-rulers-selection .educ-column {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 70%;
  background: linear-gradient(90deg, #a89070 0%, #c8b898 30%, #b8a888 70%, #a89070 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
}
.scn-education-rulers-selection .educ-step-1 {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 8px;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c8b898 100%);
  border-radius: 2px;
  animation: eds-step 20s ease-in-out infinite;
}
.scn-education-rulers-selection .educ-step-2 {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 8px;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c8b898 100%);
  border-radius: 2px;
  animation: eds-step 20s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-education-rulers-selection .educ-step-3 {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 8px;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c8b898 100%);
  border-radius: 2px;
  animation: eds-step 20s ease-in-out infinite;
  animation-delay: -8s;
}
.scn-education-rulers-selection .educ-figure-1 {
  position: absolute; bottom: 38%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: eds-climb 15s ease-in-out infinite;
}
.scn-education-rulers-selection .educ-figure-2 {
  position: absolute; bottom: 28%; left: 70%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: eds-climb 15s ease-in-out infinite;
  animation-delay: -5s;
}
.scn-education-rulers-selection .educ-figure-3 {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: eds-climb 15s ease-in-out infinite;
  animation-delay: -10s;
}
.scn-education-rulers-selection .educ-light-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: eds-ray 10s ease-in-out infinite alternate;
}
@keyframes eds-step {
  0% { opacity: .6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); }
  100% { opacity: .6; transform: translateX(-50%) scaleX(1); }
}
@keyframes eds-climb {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes eds-ray {
  0% { opacity: .3; transform: rotate(-3deg); }
  50% { opacity: .6; transform: rotate(0); }
  100% { opacity: .3; transform: rotate(3deg); }
}

.scn-guardians-love-state {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 40%, #c0b090 100%),
    radial-gradient(ellipse at 50% 0%, #fdf6e8 0%, transparent 60%);
}
.scn-guardians-love-state .guard-bg {
  position: absolute; inset: 0; opacity: .15;
  background: radial-gradient(circle at 30% 60%, rgba(200,170,130,.1) 0%, transparent 50%);
  animation: gls-ambient 15s ease-in-out infinite alternate;
}
.scn-guardians-love-state .guard-column {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 75%;
  background: linear-gradient(90deg, #a08860 0%, #c0a080 30%, #b09878 70%, #a08860 100%);
  border-radius: 6px;
  box-shadow: 0 0 25px rgba(0,0,0,.12);
}
.scn-guardians-love-state .guard-figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gls-lean-left 5s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-guardians-love-state .guard-figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gls-lean-right 5s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-guardians-love-state .guard-shield {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #b09868 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(180,150,100,.3);
  animation: gls-shield 8s ease-in-out infinite alternate;
}
.scn-guardians-love-state .guard-heart {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(160,70,26,.4);
  animation: gls-heart 4s ease-in-out infinite alternate;
}
.scn-guardians-love-state .guard-glow {
  position: absolute; bottom: 26%; left: 47%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,190,140,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: gls-glow 6s ease-in-out infinite alternate;
}
.scn-guardians-love-state .guard-lotus {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 20px;
  background: linear-gradient(180deg, rgba(200,170,130,.4) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: gls-lotus 8s ease-in-out infinite alternate;
}
@keyframes gls-ambient {
  0% { opacity: .1; }
  50% { opacity: .2; }
  100% { opacity: .1; }
}
@keyframes gls-lean-left {
  0% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(3deg); }
}
@keyframes gls-lean-right {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes gls-shield {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes gls-heart {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: .8; }
}
@keyframes gls-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(1); }
}
@keyframes gls-lotus {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.1); }
  100% { transform: translateX(-50%) scaleY(1); }
}

.scn-three-parts-soul { background: linear-gradient(180deg, #f5e6c8 0%, #eddcc0 50%, #dac8a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%); }
.scn-three-parts-soul .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e3c4 0%, #e8d8b0 100%); }
.scn-three-parts-soul .window { position:absolute; top:8%; left:50%; width:30%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #fff9e6 0%, #e8dcc0 50%, #c8b88a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 40px rgba(255,255,200,.6); }
.scn-three-parts-soul .light-beam { position:absolute; top:15%; left:38%; width:24%; height:70%; background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0.1) 100%); filter: blur(12px); animation: tps-beam 12s ease-in-out infinite alternate; }
.scn-three-parts-soul .figure-reason { position:absolute; bottom:30%; left:50%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(90,74,58,0.4); animation: tps-reason 8s ease-in-out infinite; }
.scn-three-parts-soul .figure-spirit { position:absolute; bottom:30%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tps-spirit 6s ease-in-out infinite alternate; }
.scn-three-parts-soul .figure-appetite { position:absolute; bottom:30%; right:30%; width:24px; height:42px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tps-appetite 7s ease-in-out infinite alternate; }
.scn-three-parts-soul .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b88a 0%, #a89878 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; }
@keyframes tps-beam { 0% { opacity:0.6; transform: translateX(-5px) } 50% { opacity:1; transform: translateX(5px) } 100% { opacity:0.7; transform: translateX(-2px) } }
@keyframes tps-reason { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes tps-spirit { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tps-appetite { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-reason-rules-spirit { background: linear-gradient(180deg, #f0e6d0 0%, #e0d4b8 50%, #d0c4a0 100%), radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 60%); }
.scn-reason-rules-spirit .bg-walls { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #f0e6d0 0%, #e0d4b8 100%); }
.scn-reason-rules-spirit .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% 20% 0 0; }
.scn-reason-rules-spirit .figure-reason { 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%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: rrs-reason 10s ease-in-out infinite; }
.scn-reason-rules-spirit .figure-spirit { position:absolute; bottom:25%; left:50%; width:24px; height:35px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9); animation: rrs-spirit 7s ease-in-out infinite alternate; }
.scn-reason-rules-spirit .shadow-reason { position:absolute; bottom:25%; left:32%; width:36px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(4px); animation: rrs-shadow 10s ease-in-out infinite; }
.scn-reason-rules-spirit .light-ray { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0) 100%); filter: blur(20px); animation: rrs-light 15s ease-in-out infinite alternate; }
.scn-reason-rules-spirit .scroll { position:absolute; bottom:30%; right:25%; width:20px; height:15px; background: linear-gradient(180deg, #dcc8a8 0%, #b8a888 100%); border-radius:4px; transform: rotate(10deg); animation: rrs-scroll 6s ease-in-out infinite; }
@keyframes rrs-reason { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rrs-spirit { 0% { transform: scale(0.9) rotate(0) } 50% { transform: scale(0.95) rotate(-2deg) translateY(2px) } 100% { transform: scale(0.9) rotate(0) } }
@keyframes rrs-shadow { 0% { opacity:0.5; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(5px) } 100% { opacity:0.5; transform: translateX(0) } }
@keyframes rrs-light { 0% { opacity:0.6; transform: translateY(0) scaleY(1) } 50% { opacity:0.9; transform: translateY(-5px) scaleY(1.05) } 100% { opacity:0.6; transform: translateY(0) scaleY(1) } }
@keyframes rrs-scroll { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(10deg) } }

.scn-justice-in-individual { background: linear-gradient(180deg, #f2e8d0 0%, #e4d8bc 50%, #d4c8a8 100%), radial-gradient(ellipse at 50% 30%, #fffcf0 0%, transparent 70%); }
.scn-justice-in-individual .bg-interior { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f2e8d0 0%, #e4d8bc 100%); }
.scn-justice-in-individual .mirror-frame { position:absolute; top:15%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #b8a888 0%, #9a8a7a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.scn-justice-in-individual .mirror-glass { position:absolute; top:17%; left:52%; width:36%; height:46%; transform:translateX(-50%); background: linear-gradient(180deg, #e8e0d0 40%, #a09080 100%); border-radius:2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: jii-reflection 8s ease-in-out infinite alternate; }
.scn-justice-in-individual .figure-self { position:absolute; bottom:22%; left:30%; width:26px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: jii-self 7s ease-in-out infinite; }
.scn-justice-in-individual .scale-left { position:absolute; bottom:28%; left:20%; width:12px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:50% 50% 20% 20%; transform: rotate(15deg); animation: jii-scale-left 6s ease-in-out infinite; }
.scn-justice-in-individual .scale-right { position:absolute; bottom:28%; right:20%; width:12px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:50% 50% 20% 20%; transform: rotate(-15deg); animation: jii-scale-right 6s ease-in-out infinite; }
.scn-justice-in-individual .ground-just { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:40% 60% 0 0 / 20% 30% 0 0; }
.scn-justice-in-individual .light-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,255,240,0.3) 0%, transparent 60%); animation: jii-ambient 12s ease-in-out infinite alternate; }
@keyframes jii-reflection { 0% { opacity:0.6; transform: translateX(-50%) scaleY(0.95) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.02) } 100% { opacity:0.7; transform: translateX(-50%) scaleY(0.98) } }
@keyframes jii-self { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jii-scale-left { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) translateY(1px) } 100% { transform: rotate(15deg) } }
@keyframes jii-scale-right { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) translateY(1px) } 100% { transform: rotate(-15deg) } }
@keyframes jii-ambient { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-shadow-of-justice { background: linear-gradient(180deg, #e8dcc0 0%, #d8ccb0 50%, #c8b8a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%); }
.scn-shadow-of-justice .bg-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d8ccb0 100%); }
.scn-shadow-of-justice .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b8a0 0%, #a89878 100%); border-radius:30% 70% 0 0 / 15% 25% 0 0; }
.scn-shadow-of-justice .workbench { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #b8a888 0%, #9a8a7a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-shadow-of-justice .carpenter-tool { position:absolute; bottom:22%; left:25%; width:14px; height:24px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:2px 2px 50% 50%; transform: rotate(30deg); animation: soj-carpenter 8s ease-in-out infinite; }
.scn-shadow-of-justice .shoemaker-tool { position:absolute; bottom:22%; right:30%; width:10px; height:26px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; transform: rotate(-20deg); animation: soj-shoemaker 9s ease-in-out infinite; }
.scn-shadow-of-justice .shadow-carpenter { position:absolute; bottom:32%; left:15%; width:30px; height:40px; background: rgba(0,0,0,0.2); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(3px); animation: soj-shadow-carp 15s ease-in-out infinite alternate; }
.scn-shadow-of-justice .shadow-shoemaker { position:absolute; bottom:30%; right:20%; width:26px; height:36px; background: rgba(0,0,0,0.15); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(4px); animation: soj-shadow-shoe 18s ease-in-out infinite alternate-reverse; }
.scn-shadow-of-justice .sunlight-beam { position:absolute; top:5%; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0) 100%); filter: blur(18px); animation: soj-sunlight 20s ease-in-out infinite; }
@keyframes soj-carpenter { 0% { transform: rotate(30deg) translateX(0) } 50% { transform: rotate(25deg) translateX(2px) } 100% { transform: rotate(30deg) translateX(0) } }
@keyframes soj-shoemaker { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(-2px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes soj-shadow-carp { 0% { opacity:0.5; transform: translateX(0) scale(1) } 50% { opacity:0.8; transform: translateX(5px) scale(1.05) } 100% { opacity:0.5; transform: translateX(0) scale(1) } }
@keyframes soj-shadow-shoe { 0% { opacity:0.4; transform: translateX(0) scale(0.95) } 50% { opacity:0.7; transform: translateX(-4px) scale(1.02) } 100% { opacity:0.4; transform: translateX(0) scale(0.95) } }
@keyframes soj-sunlight { 0% { opacity:0.4; transform: translateY(0) scaleY(1) } 50% { opacity:0.7; transform: translateY(-10px) scaleY(1.1) } 100% { opacity:0.4; transform: translateY(0) scaleY(1) } }

/* soldier-dwellings-modest - calm dim interior */
.scn-soldier-dwellings-modest {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a28 0%, transparent 70%);
}
.scn-soldier-dwellings-modest .bg-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #2a2218 0%, #3a2a1a 50%, #1a1410 100%);
  animation: sdm-ambient 12s ease-in-out infinite alternate;
}
.scn-soldier-dwellings-modest .window {
  position:absolute; top:12%; left:10%; width:30%; height:40%;
  background: radial-gradient(ellipse at 30% 50%, #4a5a6a 0%, #1a2a3a 70%);
  border-radius: 4px; box-shadow: inset 0 0 0 3px #2a1a0a, 0 0 20px rgba(74,90,106,0.3);
  animation: sdm-wind 20s ease-in-out infinite;
}
.scn-soldier-dwellings-modest .table {
  position:absolute; bottom:28%; left:35%; width:40%; height:6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sdm-table 18s ease-in-out infinite alternate;
}
.scn-soldier-dwellings-modest .lamp {
  position:absolute; bottom:34%; left:50%; width:8%; height:10%;
  background: radial-gradient(circle at 50% 30%, #e0a030 0%, #804020 70%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #e0a030, 0 0 60px 16px rgba(224,160,48,0.4);
  animation: sdm-lamp 4s ease-in-out infinite alternate;
}
.scn-soldier-dwellings-modest .figure {
  position:absolute; bottom:32%; left:25%; width:12%; height:22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdm-figure 6s ease-in-out infinite;
}
.scn-soldier-dwellings-modest .floor {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: sdm-floor 24s ease-in-out infinite alternate;
}
@keyframes sdm-ambient { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sdm-wind { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sdm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sdm-lamp { 0% { box-shadow: 0 0 20px 4px #c08020, 0 0 40px 8px rgba(192,128,32,0.3); opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #e0a030, 0 0 80px 20px rgba(224,160,48,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #c08020, 0 0 50px 12px rgba(192,128,32,0.35); opacity:0.9 } }
@keyframes sdm-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(1deg) scale(1.01) } 50% { transform: translateX(0) rotate(0deg) scale(1) } 75% { transform: translateX(-3px) rotate(-1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sdm-floor { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }

/* education-and-habitats - calm bright interior */
.scn-education-and-habitats {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a89880 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-education-and-habitats .bg-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 50%, #b0a090 100%);
  animation: eh-ambient 15s ease-in-out infinite alternate;
}
.scn-education-and-habitats .window {
  position:absolute; top:10%; right:12%; width:35%; height:45%;
  background: linear-gradient(135deg, #b0d0e8 0%, #d0e8f0 60%);
  border-radius: 4px; box-shadow: inset 0 0 0 4px #6a5a4a, 0 0 30px rgba(176,208,232,0.5);
  animation: eh-sun 25s linear infinite alternate;
}
.scn-education-and-habitats .desk {
  position:absolute; bottom:30%; left:15%; width:45%; height:8%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: eh-desk 18s ease-in-out infinite alternate;
}
.scn-education-and-habitats .books {
  position:absolute; bottom:38%; left:20%; width:20%; height:12%;
  background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 0 0 0 #6a3a2a, 4px 0 0 0 #4a2a1a;
  animation: eh-books 12s ease-in-out infinite alternate;
}
.scn-education-and-habitats .figure {
  position:absolute; bottom:32%; left:40%; width:14%; height:24%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eh-figure 7s ease-in-out infinite;
}
.scn-education-and-habitats .scroll {
  position:absolute; bottom:37%; left:55%; width:10%; height:6%;
  background: linear-gradient(180deg, #e8d8a8 0%, #c8b880 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: eh-scroll 9s ease-in-out infinite alternate;
}
@keyframes eh-ambient { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes eh-sun { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes eh-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eh-books { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes eh-figure { 0% { transform: translateX(0) rotate(0deg) scale(1) } 50% { transform: translateX(5px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes eh-scroll { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

/* gold-within-not-without - calm bright interior golden glow */
.scn-gold-within-not-without {
  background:
    linear-gradient(180deg, #f0e8c0 0%, #d0c090 40%, #b0a070 100%),
    radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 70%);
}
.scn-gold-within-not-without .bg-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #f0e8c0 0%, #d8c898 50%, #c0b080 100%);
  animation: gwn-ambient 14s ease-in-out infinite alternate;
}
.scn-gold-within-not-without .pedestal {
  position:absolute; bottom:20%; left:50%; width:10%; height:30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: gwn-pedestal 20s ease-in-out infinite alternate;
}
.scn-gold-within-not-without .figure {
  position:absolute; bottom:35%; left:50%; width:16%; height:30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gwn-figure 8s ease-in-out infinite;
}
.scn-gold-within-not-without .glow {
  position:absolute; bottom:40%; left:50%; width:20%; height:30%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #d0a030 40%, transparent 70%);
  border-radius: 50%;
  animation: gwn-glow 6s ease-in-out infinite alternate;
}
.scn-gold-within-not-without .halo {
  position:absolute; top:18%; left:50%; width:35%; height:20%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(255,224,128,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: gwn-halo 10s ease-in-out infinite alternate;
}
.scn-gold-within-not-without .light-rays {
  position:absolute; top:10%; left:40%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(255,224,128,0.2) 0%, transparent 100%);
  transform: rotate(-15deg);
  animation: gwn-rays 8s ease-in-out infinite alternate;
}
@keyframes gwn-ambient { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes gwn-pedestal { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes gwn-figure { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes gwn-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.15) } 100% { opacity:0.8; transform: translateX(-50%) scale(1) } }
@keyframes gwn-halo { 0% { opacity:0.3; transform: translateX(-50%) scaleY(1) } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.3; transform: translateX(-50%) scaleY(1) } }
@keyframes gwn-rays { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(-15deg) scaleX(1) } }

/* guardians-misery-objection - tense bright interior */
.scn-guardians-misery-objection {
  background:
    linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 30%, #9098a0 100%),
    radial-gradient(ellipse at 50% 10%, #e0e8f0 0%, transparent 70%);
}
.scn-guardians-misery-objection .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #c8d0d8 0%, #a0a8b0 100%);
  animation: gmo-ambient 10s ease-in-out infinite alternate;
}
.scn-guardians-misery-objection .column-left {
  position:absolute; bottom:0; left:10%; width:6%; height:70%;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: gmo-col 15s ease-in-out infinite alternate;
}
.scn-guardians-misery-objection .column-right {
  position:absolute; bottom:0; right:10%; width:6%; height:70%;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 2px; box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: gmo-col 15s ease-in-out infinite alternate-reverse;
}
.scn-guardians-misery-objection .speaker {
  position:absolute; bottom:30%; left:50%; width:14%; height:40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gmo-speaker 3s ease-in-out infinite;
}
.scn-guardians-misery-objection .shadow-figures {
  position:absolute; bottom:30%; left:20%; width:12%; height:30%;
  background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: gmo-shadow 4s ease-in-out infinite alternate;
}
.scn-guardians-misery-objection .light-beam {
  position:absolute; top:5%; left:30%; width:40%; height:15%;
  background: linear-gradient(135deg, rgba(224,232,240,0.6) 0%, transparent 100%);
  transform: rotate(20deg);
  animation: gmo-beam 5s ease-in-out infinite alternate;
}
@keyframes gmo-ambient { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gmo-col { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes gmo-speaker { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 25% { transform: translateX(-50%) rotate(3deg) scale(1.02) } 50% { transform: translateX(-50%) rotate(-2deg) scale(1) } 75% { transform: translateX(-50%) rotate(4deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(0deg) scale(1) } }
@keyframes gmo-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes gmo-beam { 0% { opacity:0.5; transform: rotate(20deg) scaleX(1) } 50% { opacity:1; transform: rotate(25deg) scaleX(1.2) } 100% { opacity:0.5; transform: rotate(20deg) scaleX(1) } }

.scn-simplicity-of-mind { background: linear-gradient(180deg, #2a1e14 0%, #1f1410 100%), radial-gradient(ellipse at 50% 30%, rgba(200,160,100,0.15) 0%, transparent 70%); }
.scn-simplicity-of-mind .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1e14 50%, #1f1410 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.6); }
.scn-simplicity-of-mind .window { position:absolute; top:10%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, rgba(120,100,80,0.1) 100%); border:2px solid #4a3a2a; border-radius:4px; box-shadow: 0 0 30px rgba(200,180,140,0.1); animation: sm-window 10s ease-in-out infinite alternate; }
.scn-simplicity-of-mind .desk { position:absolute; bottom:22%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-simplicity-of-mind .book-left { position:absolute; bottom:30%; left:25%; width:24px; height:30px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(-8deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: sm-book 12s ease-in-out infinite; }
.scn-simplicity-of-mind .book-right { position:absolute; bottom:30%; left:40%; width:20px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:2px; transform: rotate(5deg); box-shadow: -2px 2px 6px rgba(0,0,0,0.4); animation: sm-book 14s ease-in-out infinite reverse; }
.scn-simplicity-of-mind .candle { position:absolute; bottom:33%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #c8a87a 0%, #a08060 60%, #6a5040 100%); border-radius:2px; }
.scn-simplicity-of-mind .flame { position:absolute; bottom:63%; left:55%; width:6px; height:12px; background: radial-gradient(ellipse 50% 60%, #ffd080 0%, #b06020 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 6px rgba(255,200,100,0.6); animation: sm-candle 3s ease-in-out infinite alternate; }
.scn-simplicity-of-mind .figure { position:absolute; bottom:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sm-figure 8s ease-in-out infinite; }
@keyframes sm-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sm-book { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes sm-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.9 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.85 } }
@keyframes sm-figure { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }

.scn-ugliness-allied-to-ill { background: linear-gradient(180deg, #1a1418 0%, #2a1e24 50%, #1f1418 100%), radial-gradient(ellipse at 60% 50%, rgba(120,80,60,0.2) 0%, transparent 70%); }
.scn-ugliness-allied-to-ill .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e24 0%, #1a1418 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.5); }
.scn-ugliness-allied-to-ill .pillar { position:absolute; left:30%; bottom:0; width:16px; height:70%; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius:2px 2px 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.4); }
.scn-ugliness-allied-to-ill .figure-noble { position:absolute; bottom:10%; left:15%; width:28px; height:60px; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ua-figure 10s ease-in-out infinite; }
.scn-ugliness-allied-to-ill .shadow-ugly { position:absolute; bottom:10%; right:20%; width:40px; height:70px; background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%; opacity:0.6; transform: scaleX(-1); animation: ua-shadow 12s ease-in-out infinite; }
.scn-ugliness-allied-to-ill .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #3a2a2a 0%, #1f1414 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-ugliness-allied-to-ill .lamp { position:absolute; top:20%; left:55%; width:10px; height:20px; background: linear-gradient(180deg, #a08060 0%, #6a5040 100%); border-radius:4px 4px 0 0; }
.scn-ugliness-allied-to-ill .lamp-glow { position:absolute; top:18%; left:55%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,160,100,0.5) 0%, rgba(200,160,100,0.1) 70%, transparent 100%); border-radius:50%; transform:translate(-30%,-30%); animation: ua-glow 4s ease-in-out infinite alternate; }
@keyframes ua-figure { 0% { transform: translateY(0) rotate(-0.5deg) scale(1) } 50% { transform: translateY(-3px) rotate(0.5deg) scale(1.02) } 100% { transform: translateY(0) rotate(-0.5deg) scale(1) } }
@keyframes ua-shadow { 0% { transform: scaleX(-1) translateY(0) skewX(0deg) } 50% { transform: scaleX(-1) translateY(2px) skewX(2deg) } 100% { transform: scaleX(-1) translateY(0) skewX(0deg) } }
@keyframes ua-glow { 0% { opacity:0.6; transform: translate(-30%,-30%) scale(0.9) } 50% { opacity:0.9; transform: translate(-30%,-30%) scale(1.1) } 100% { opacity:0.7; transform: translate(-30%,-30%) scale(1) } }

.scn-noxious-pasture { background: linear-gradient(180deg, #1e1a14 0%, #2a221c 50%, #1a1410 100%), radial-gradient(ellipse at 50% 40%, rgba(80,100,60,0.2) 0%, transparent 70%); }
.scn-noxious-pasture .wall-texture { position:absolute; inset:0; background: repeating-linear-gradient(45deg, #2a221c 0px, #2a221c 4px, #1e1a14 4px, #1e1a14 8px); opacity:0.3; }
.scn-noxious-pasture .window-frame { position:absolute; top:8%; left:12%; width:90px; height:110px; border:3px solid #3a2a1a; background: rgba(20,30,20,0.6); border-radius:6px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 10px rgba(60,80,40,0.2); animation: np-frame 15s ease-in-out infinite alternate; }
.scn-noxious-pasture .pot { position:absolute; bottom:18%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-noxious-pasture .stem-a { position:absolute; bottom:38%; left:42%; width:3px; height:40px; background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom; animation: np-stem 20s ease-in-out infinite; }
.scn-noxious-pasture .stem-b { position:absolute; bottom:38%; left:55%; width:3px; height:45px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom; animation: np-stem 22s ease-in-out infinite reverse; }
.scn-noxious-pasture .leaf-wilted { position:absolute; bottom:50%; left:50%; width:12px; height:8px; background: radial-gradient(ellipse, #5a6a4a 0%, #3a4a2a 70%, #2a3a1a 100%); border-radius:50% 30% 50% 30%; transform: rotate(-20deg); animation: np-leaf 14s ease-in-out infinite; }
.scn-noxious-pasture .drip { position:absolute; bottom:42%; left:58%; width:4px; height:10px; background: linear-gradient(180deg, #4a6a4a 0%, transparent 100%); border-radius:50%; animation: np-drip 6s ease-in-out infinite; }
.scn-noxious-pasture .ground-line { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
@keyframes np-frame { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes np-stem { 0% { transform: rotate(-5deg) translateY(0) scaleY(1) } 50% { transform: rotate(5deg) translateY(-2px) scaleY(1.05) } 100% { transform: rotate(-5deg) translateY(0) scaleY(1) } }
@keyframes np-leaf { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.1) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes np-drip { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(8px); opacity:0.4 } 100% { transform: translateY(0); opacity:0.8 } }

.scn-musical-training-potent { background: linear-gradient(180deg, #1a161a 0%, #2a2228 50%, #1f1a1f 100%), radial-gradient(ellipse at 50% 35%, rgba(160,120,80,0.2) 0%, transparent 70%); }
.scn-musical-training-potent .room-deep { position:absolute; inset:0; background: linear-gradient(135deg, #2a2228 0%, #1a161a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.6); }
.scn-musical-training-potent .lyre-stand { position:absolute; bottom:20%; left:30%; width:8px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius:2px; box-shadow: 2px 0 6px rgba(0,0,0,0.3); }
.scn-musical-training-potent .lyre-body { position:absolute; bottom:45%; left:25%; width:40px; height:30px; background: radial-gradient(ellipse, #6a5040 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-musical-training-potent .string-low { position:absolute; bottom:47%; left:30%; width:2px; height:35px; background: linear-gradient(180deg, #c8b080 0%, #907060 100%); border-radius:1px; animation: mt-string 8s ease-in-out infinite; }
.scn-musical-training-potent .string-high { position:absolute; bottom:47%; left:35%; width:2px; height:35px; background: linear-gradient(180deg, #e0c8a0 0%, #a08080 100%); border-radius:1px; animation: mt-string 6s ease-in-out infinite reverse; }
.scn-musical-training-potent .figure-sitting { position:absolute; bottom:10%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1f1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mt-figure 12s ease-in-out infinite; }
.scn-musical-training-potent .scroll { position:absolute; bottom:32%; left:10%; width:40px; height:8px; background: linear-gradient(180deg, #c8b880 0%, #a08860 100%); border-radius:2px; transform: rotate(-15deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: mt-scroll 15s ease-in-out infinite alternate; }
.scn-musical-training-potent .candle-stick { position:absolute; bottom:35%; left:75%; width:8px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:2px; }
@keyframes mt-string { 0% { transform: scaleX(1) translateY(0) skewX(0deg) } 50% { transform: scaleX(0.8) translateY(-2px) skewX(2deg) } 100% { transform: scaleX(1) translateY(0) skewX(0deg) } }
@keyframes mt-figure { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes mt-scroll { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(3px) } 100% { transform: rotate(-15deg) translateX(0) } }

.scn-memory-and-proportion {
  background: linear-gradient(180deg, #f9f3e0 0%, #e8dcc8 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 100%, #f0e6d0 0%, transparent 70%);
}
.scn-memory-and-proportion .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #faf5e6 0%, #eae0cc 100%); }
.scn-memory-and-proportion .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b8a88a 0%, #9c8c70 100%); border-radius: 20% 20% 0 0; }
.scn-memory-and-proportion .desk { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%); border-radius: 4px; }
.scn-memory-and-proportion .book-left { position: absolute; bottom: 30%; left: 30%; width: 8%; height: 12%; background: linear-gradient(135deg, #a0522d 0%, #7a3b1e 100%); border-radius: 2px; transform: rotate(-5deg); animation: s1-book 8s ease-in-out infinite alternate; }
.scn-memory-and-proportion .book-right { position: absolute; bottom: 29%; left: 42%; width: 9%; height: 13%; background: linear-gradient(135deg, #8b4513 0%, #5e2c0e 100%); border-radius: 2px; transform: rotate(3deg); animation: s1-book 8s ease-in-out infinite alternate-reverse; }
.scn-memory-and-proportion .lamp { position: absolute; bottom: 32%; left: 55%; width: 6px; height: 20px; background: #d4a055; border-radius: 2px; box-shadow: 0 0 30px 15px rgba(232,200,120,0.4); animation: s1-lamp 12s ease-in-out infinite alternate; }
.scn-memory-and-proportion .figure-reading { position: absolute; bottom: 15%; left: 38%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-figure 4s ease-in-out infinite; }
.scn-memory-and-proportion .window-light { position: absolute; top: 5%; left: 10%; width: 30%; height: 35%; background: radial-gradient(ellipse at center, rgba(255,255,230,0.3) 0%, transparent 80%); border-radius: 50%; animation: s1-window 10s ease-in-out infinite alternate; }
.scn-memory-and-proportion .curtain-a { position: absolute; top: 0; left: 8%; width: 12%; height: 40%; background: linear-gradient(90deg, #b8a88a 0%, #8a7a64 100%); border-radius: 0 0 40% 40%; filter: blur(2px); animation: s1-curtain 20s ease-in-out infinite alternate; }
.scn-memory-and-proportion .curtain-b { position: absolute; top: 0; left: 30%; width: 12%; height: 40%; background: linear-gradient(90deg, #8a7a64 0%, #b8a88a 100%); border-radius: 0 0 40% 40%; filter: blur(2px); animation: s1-curtain 20s ease-in-out infinite alternate-reverse; }
@keyframes s1-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes s1-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(232,200,120,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(232,200,120,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 25px 12px rgba(232,200,120,0.35); } }
@keyframes s1-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s1-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes s1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }

.scn-adeimantus-objects {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a88a 100%),
              radial-gradient(ellipse at 70% 40%, #f4e8d0 0%, transparent 60%);
}
.scn-adeimantus-objects .bg-pillar { position: absolute; left: 0; top: 0; bottom: 0; width: 15%; background: linear-gradient(90deg, #c0b090 0%, #a09070 100%); border-radius: 0 10% 10% 0; box-shadow: inset -6px 0 12px rgba(0,0,0,0.1); }
.scn-adeimantus-objects .bg-floor { position: absolute; bottom: 0; left: 15%; right: 0; height: 30%; background: linear-gradient(180deg, #a09070 0%, #8a7a64 100%); border-radius: 20% 0 0 0; }
.scn-adeimantus-objects .socrates-silhouette { position: absolute; bottom: 30%; left: 25%; width: 30px; height: 50px; background: #2a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-socrates 1.5s ease-in-out infinite alternate; }
.scn-adeimantus-objects .adeimantus-arm { position: absolute; bottom: 38%; left: 55%; width: 40px; height: 8px; background: #2a2a1a; border-radius: 4px; transform-origin: left center; animation: s2-arm 0.8s linear infinite alternate; }
.scn-adeimantus-objects .table { position: absolute; bottom: 22%; left: 20%; width: 60%; height: 6%; background: linear-gradient(180deg, #6B5B45 0%, #4a3a28 100%); border-radius: 4px; }
.scn-adeimantus-objects .lamp-tense { position: absolute; bottom: 45%; left: 70%; width: 5px; height: 20px; background: #c08040; border-radius: 2px; box-shadow: 0 0 20px 8px rgba(192,128,64,0.6); animation: s2-lamp 0.5s ease-in-out infinite alternate; }
.scn-adeimantus-objects .shadow-stripe { position: absolute; left: 40%; bottom: 0; top: 40%; width: 2px; background: rgba(0,0,0,0.15); animation: s2-shadow 2s ease-in-out infinite; }
.scn-adeimantus-objects .dust-motes { position: absolute; inset: 0; background: radial-gradient(circle at 30% 50%, rgba(255,255,200,0.1) 0%, transparent 50%); animation: s2-dust 3s ease-in-out infinite; }
@keyframes s2-socrates { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes s2-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes s2-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(192,128,64,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(192,128,64,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 18px 6px rgba(192,128,64,0.45); } }
@keyframes s2-shadow { 0% { transform: scaleY(0.8); opacity: 0.3; } 50% { transform: scaleY(1.2); opacity: 0.6; } 100% { transform: scaleY(0.8); opacity: 0.3; } }
@keyframes s2-dust { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-ship-of-state-parable {
  background: linear-gradient(180deg, #2c3e50 0%, #1A252F 30%, #0F1A24 60%, #2C3E50 100%),
              radial-gradient(ellipse at 50% 70%, #3A536B 0%, transparent 70%);
}
.scn-ship-of-state-parable .hull { position: absolute; bottom: 25%; left: 5%; width: 90%; height: 30%; background: linear-gradient(180deg, #5C3A1E 0%, #3A220E 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-ship-of-state-parable .deck { position: absolute; bottom: 50%; left: 10%; width: 80%; height: 5%; background: linear-gradient(90deg, #6B4226 0%, #4A2E18 100%); border-radius: 4px; }
.scn-ship-of-state-parable .mast { position: absolute; bottom: 55%; left: 50%; width: 4px; height: 40%; background: #3A220E; transform-origin: bottom center; animation: s3-mast 2s ease-in-out infinite alternate; }
.scn-ship-of-state-parable .sail-storm { position: absolute; bottom: 55%; left: 48%; width: 20%; height: 30%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%); border-radius: 0 40% 40% 0; transform-origin: left center; animation: s3-sail 1.2s ease-in-out infinite alternate; }
.scn-ship-of-state-parable .helmsman { position: absolute; bottom: 50%; left: 55%; width: 18px; height: 30px; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s3-helmsman 0.6s linear infinite alternate; }
.scn-ship-of-state-parable .wave-wave-1 { position: absolute; bottom: 15%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3A536B 0%, #2C3E50 100%); border-radius: 40% 60% 0 0; animation: s3-wave1 4s ease-in-out infinite; }
.scn-ship-of-state-parable .wave-wave-2 { position: absolute; bottom: 10%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2C3E50 0%, #1A252F 100%); border-radius: 60% 40% 0 0; animation: s3-wave2 3.5s ease-in-out infinite; }
.scn-ship-of-state-parable .lantern-swing { position: absolute; bottom: 55%; left: 30%; width: 6px; height: 10px; background: #d4a055; border-radius: 50%; box-shadow: 0 0 15px 5px rgba(212,160,85,0.5); animation: s3-lantern 0.7s ease-in-out infinite alternate; }
.scn-ship-of-state-parable .rain-streak { position: absolute; top: 0; left: 10%; width: 2px; height: 20%; background: rgba(255,255,255,0.2); filter: blur(1px); animation: s3-rain 0.3s linear infinite; }
@keyframes s3-mast { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes s3-sail { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(5deg); } 100% { transform: scaleX(0.9) rotate(-5deg); } }
@keyframes s3-helmsman { 0% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes s3-wave1 { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(3px); } }
@keyframes s3-wave2 { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-5px); } }
@keyframes s3-lantern { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes s3-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(1000%); } }

.scn-philosopher-criticized {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 30%, #a09070 60%, #8a7a64 100%),
              radial-gradient(ellipse at 50% 30%, #f0e6d0 0%, transparent 60%);
}
.scn-philosopher-criticized .bg-wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c0b090 100%); }
.scn-philosopher-criticized .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a7a64 0%, #6B5B45 100%); border-radius: 30% 30% 0 0; }
.scn-philosopher-criticized .philosopher-figure { position: absolute; bottom: 30%; left: 35%; width: 24px; height: 50px; background: #2a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-philosopher 2s ease-in-out infinite alternate; }
.scn-philosopher-criticized .accuser-arm { position: absolute; bottom: 40%; left: 60%; width: 35px; height: 7px; background: #2a2a1a; border-radius: 3px; transform-origin: left center; animation: s4-arm 1.1s linear infinite alternate; }
.scn-philosopher-criticized .shadow-crowd { position: absolute; bottom: 25%; left: 5%; width: 28%; height: 45%; background: rgba(0,0,0,0.15); border-radius: 40% 40% 0 0; animation: s4-crowd 5s ease-in-out infinite; }
.scn-philosopher-criticized .light-burst { position: absolute; top: 10%; left: 45%; width: 20%; height: 30%; background: radial-gradient(circle, rgba(255,255,240,0.3) 0%, transparent 70%); border-radius: 50%; animation: s4-light 3s ease-in-out infinite alternate; }
.scn-philosopher-criticized .scroll { position: absolute; bottom: 25%; left: 30%; width: 5%; height: 12%; background: linear-gradient(180deg, #e8dcc8 0%, #c0b090 100%); border-radius: 2px; transform: rotate(-10deg); animation: s4-scroll 6s ease-in-out infinite alternate; }
@keyframes s4-philosopher { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s4-arm { 0% { transform: rotate(-15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(-15deg); } }
@keyframes s4-crowd { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.2); opacity: 0.9; } 100% { transform: scaleY(1); opacity: 0.6; } }
@keyframes s4-light { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes s4-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* physicians-experience-disease (calm bright-interior) */
.scn-physicians-experience-disease {
  background: linear-gradient(180deg, #fef9e7 0%, #e8f0f2 70%), radial-gradient(ellipse at 70% 30%, rgba(255,255,230,0.5) 0%, transparent 60%);
}
.scn-physicians-experience-disease .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5f0e1 0%, #dce3e6 100%);
}
.scn-physicians-experience-disease .window {
  position: absolute; top: 10%; right: 20%; width: 120px; height: 160px; background: radial-gradient(ellipse at 50% 50%, #fff5d6 0%, #b0c4de 70%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.8), 0 0 30px rgba(255,255,200,0.3); animation: ped-window 8s ease-in-out infinite alternate;
}
.scn-physicians-experience-disease .desk {
  position: absolute; bottom: 8%; left: 15%; right: 25%; height: 30%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); animation: ped-desk 12s ease-in-out infinite;
}
.scn-physicians-experience-disease .physician {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 120px; background: linear-gradient(180deg, #3a4a5a 0%, #2c3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ped-physician 4s ease-in-out infinite;
}
.scn-physicians-experience-disease .patient {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 40px; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: center bottom; animation: ped-patient 6s ease-in-out infinite;
}
.scn-physicians-experience-disease .book {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 20px; background: linear-gradient(135deg, #a0522d 0%, #8a3a1a 100%); border-radius: 2px; transform: rotate(-10deg); animation: ped-book 10s ease-in-out infinite;
}
.scn-physicians-experience-disease .lamp {
  position: absolute; top: 30%; right: 15%; width: 12px; height: 30px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 4px; box-shadow: 0 0 20px 8px rgba(255,220,160,0.6); animation: ped-lamp 3s ease-in-out infinite alternate;
}
@keyframes ped-window {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.2); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes ped-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ped-physician {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ped-patient {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes ped-book {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes ped-lamp {
  0% { box-shadow: 0 0 15px 5px rgba(255,220,160,0.4); }
  100% { box-shadow: 0 0 30px 12px rgba(255,220,160,0.8); }
}

/* judge-virtue-innocence (tense bright-interior) */
.scn-judge-virtue-innocence {
  background: linear-gradient(180deg, #f5f0e6 0%, #d0d0d0 50%, #b8b8b8 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,230,0.2) 0%, transparent 70%);
}
.scn-judge-virtue-innocence .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%);
}
.scn-judge-virtue-innocence .bench {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%; background: linear-gradient(180deg, #705a3a 0%, #4a3a2a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3); border-top: 2px solid #8a7040;
}
.scn-judge-virtue-innocence .judge {
  position: absolute; bottom: 28%; left: 20%; width: 50px; height: 130px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: jvi-judge 2s ease-in-out infinite;
}
.scn-judge-virtue-innocence .accused {
  position: absolute; bottom: 8%; right: 25%; width: 40px; height: 90px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: jvi-accused 1.5s ease-in-out infinite;
}
.scn-judge-virtue-innocence .gavel {
  position: absolute; bottom: 25%; left: 35%; width: 10px; height: 25px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: jvi-gavel 3s ease-in-out infinite;
}
.scn-judge-virtue-innocence .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: jvi-shadow 4s ease-in-out infinite alternate;
}
@keyframes jvi-judge {
  0% { transform: rotate(0deg); }
  20% { transform: rotate(3deg); }
  40% { transform: rotate(-2deg); }
  60% { transform: rotate(2deg); }
  80% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes jvi-accused {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes jvi-gavel {
  0% { transform: rotate(0deg); }
  5% { transform: rotate(15deg); }
  10% { transform: rotate(-10deg); }
  15% { transform: rotate(5deg); }
  20% { transform: rotate(0deg); }
  100% { transform: rotate(0deg); }
}
@keyframes jvi-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}

/* judge-experience-not-self (calm bright-interior) */
.scn-judge-experience-not-self {
  background: linear-gradient(180deg, #f8f4e8 0%, #e0e8ec 70%), radial-gradient(ellipse at 30% 40%, rgba(255,255,220,0.3) 0%, transparent 60%);
}
.scn-judge-experience-not-self .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #efe8d8 0%, #ccd8de 100%);
}
.scn-judge-experience-not-self .window {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 140px; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #b0c4de 70%); border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,200,0.6); animation: jen-window 12s ease-in-out infinite alternate;
}
.scn-judge-experience-not-self .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #8a7455 0%, #6b5b45 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -3px 8px rgba(0,0,0,0.15);
}
.scn-judge-experience-not-self .judge {
  position: absolute; bottom: 25%; left: 30%; width: 45px; height: 110px; background: linear-gradient(180deg, #3a4a5a 0%, #2c3a4a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jen-judge 5s ease-in-out infinite;
}
.scn-judge-experience-not-self .book {
  position: absolute; bottom: 20%; left: 40%; width: 25px; height: 18px; background: linear-gradient(135deg, #9a6a3a 0%, #7a4a2a 100%); border-radius: 2px; transform: rotate(-5deg); animation: jen-book 8s ease-in-out infinite;
}
.scn-judge-experience-not-self .candle {
  position: absolute; bottom: 22%; left: 50%; width: 8px; height: 30px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5); animation: jen-candle 4s ease-in-out infinite alternate;
}
@keyframes jen-window {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes jen-judge {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(-1deg); }
  60% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes jen-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes jen-candle {
  0% { transform: translateY(0); box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); }
  50% { transform: translateY(-2px); box-shadow: 0 0 25px 8px rgba(255,200,100,0.6); }
  100% { transform: translateY(0); box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); }
}

/* virtue-knows-vice (warm bright-interior) */
.scn-virtue-knows-vice {
  background: linear-gradient(180deg, #fde8d0 0%, #e8d4b8 50%, #d4c0a8 100%), radial-gradient(ellipse at 60% 30%, rgba(255,200,100,0.4) 0%, transparent 60%);
}
.scn-virtue-knows-vice .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5e0c8 0%, #d8c8b8 100%);
}
.scn-virtue-knows-vice .figure-virtue {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 140px; background: linear-gradient(180deg, #705040 0%, #503830 100%); border-radius: 50% 50% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: vkv-figure 6s ease-in-out infinite;
}
.scn-virtue-knows-vice .lamp {
  position: absolute; top: 15%; left: 40%; width: 14px; height: 35px; background: linear-gradient(180deg, #f0c070 0%, #c09050 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,200,100,0.7); animation: vkv-lamp 3s ease-in-out infinite alternate;
}
.scn-virtue-knows-vice .shadow-vice {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(8px); animation: vkv-shadow 8s ease-in-out infinite alternate;
}
.scn-virtue-knows-vice .book {
  position: absolute; bottom: 18%; left: 45%; width: 28px; height: 20px; background: linear-gradient(135deg, #8a6030 0%, #6a4020 100%); border-radius: 2px; transform: rotate(8deg); animation: vkv-book 10s ease-in-out infinite;
}
.scn-virtue-knows-vice .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #c8b098 0%, #a88c78 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
@keyframes vkv-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  50% { transform: rotate(1deg) translateY(0); }
  75% { transform: rotate(-0.5deg) translateY(-1px); }
  100% { transform: rotate(0deg); }
}
@keyframes vkv-lamp {
  0% { transform: scale(1); box-shadow: 0 0 20px 6px rgba(255,200,100,0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 35px 12px rgba(255,200,100,0.8); }
  100% { transform: scale(1); box-shadow: 0 0 25px 8px rgba(255,200,100,0.6); }
}
@keyframes vkv-shadow {
  0% { transform: scale(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 0.7; }
  100% { transform: scale(0.95) rotate(-5deg); opacity: 0.4; }
}
@keyframes vkv-book {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(8deg) translateX(0); }
}

/* Scene: not-hear-that (tense, dim interior) */
.scn-not-hear-that {
  background: 
    radial-gradient(ellipse at 50% 70%, #6b3a2a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0500 100%);
}
.scn-not-hear-that .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); }
.scn-not-hear-that .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0500 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-not-hear-that .figure-speaker { position:absolute; bottom:25%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nht-speak 2s ease-in-out infinite; }
.scn-not-hear-that .figure-listener { position:absolute; bottom:25%; right:30%; width:55px; height:85px; background: linear-gradient(180deg, #3a2515 0%, #0d0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nht-listen 4s ease-in-out infinite; }
.scn-not-hear-that .hand-over-ear { position:absolute; bottom:55%; right:32%; width:18px; height:25px; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-20deg); animation: nht-hand 0.8s ease-in-out infinite alternate; }
.scn-not-hear-that .lamp { position:absolute; bottom:40%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-not-hear-that .lamp-glow { position:absolute; bottom:35%; left:17%; width:40px; height:40px; background: radial-gradient(circle, #e0a060 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: nht-glow 1.5s ease-in-out infinite alternate; }
.scn-not-hear-that .shadow-arch { position:absolute; top:0; left:10%; right:10%; bottom:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 70%); animation: nht-arch 6s ease-in-out infinite; }
@keyframes nht-speak { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-2px) translateY(-3px) rotate(-2deg); } 60% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes nht-listen { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1); } }
@keyframes nht-hand { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes nht-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes nht-arch { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene: phoenix-and-achilles (calm, dim interior) */
.scn-phoenix-and-achilles {
  background:
    radial-gradient(ellipse at 30% 60%, #8a6a4a 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 50%, #0d0500 100%);
}
.scn-phoenix-and-achilles .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%); }
.scn-phoenix-and-achilles .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0500 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-phoenix-and-achilles .table { position:absolute; bottom:20%; left:25%; right:25%; height:8%; background: linear-gradient(90deg, #6a4a3a 0%, #4a2a1a 50%, #3a2010 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-phoenix-and-achilles .gift-pile { position:absolute; bottom:28%; left:35%; width:30%; height:4%; background: radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, #4a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: paa-gift 8s ease-in-out infinite alternate; }
.scn-phoenix-and-achilles .figure-phoenix { position:absolute; bottom:25%; left:20%; width:45px; height:80px; background: linear-gradient(180deg, #5a4030 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: paa-phoenix 12s ease-in-out infinite; }
.scn-phoenix-and-achilles .figure-achilles { position:absolute; bottom:25%; right:20%; width:50px; height:85px; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: paa-achilles 10s ease-in-out infinite; }
.scn-phoenix-and-achilles .candle { position:absolute; bottom:30%; left:50%; width:4px; height:15px; background: linear-gradient(180deg, #e0c080 0%, #8a6a4a 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-phoenix-and-achilles .candle-glow { position:absolute; bottom:27%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #e0b060 0%, transparent 70%); border-radius: 50%; transform: translateX(-50%); filter: blur(10px); animation: paa-glow 3s ease-in-out infinite alternate; }
@keyframes paa-gift { 0% { opacity: 0.8; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.05) scaleX(0.95); } }
@keyframes paa-phoenix { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes paa-achilles { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes paa-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }

/* Scene: homer-on-achilles-impiety (calm, dim interior) */
.scn-homer-on-achilles-impiety {
  background:
    radial-gradient(ellipse at 70% 40%, #3a5a4a 0%, transparent 60%),
    linear-gradient(180deg, #1a2a1a 0%, #0a120a 50%, #000500 100%);
}
.scn-homer-on-achilles-impiety .bg-shadows { position:absolute; inset:0; background: linear-gradient(135deg, #2a3a2a 0%, #121a12 100%); }
.scn-homer-on-achilles-impiety .statue-base { position:absolute; bottom:20%; left:20%; right:60%; height:30%; background: linear-gradient(90deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-homer-on-achilles-impiety .statue-river-god { position:absolute; bottom:40%; left:22%; width:25%; height:25%; background: radial-gradient(ellipse at 50% 40%, #5a7a5a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: hai-statue 15s ease-in-out infinite alternate; }
.scn-homer-on-achilles-impiety .figure-achilles-kneel { position:absolute; bottom:10%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hai-kneel 8s ease-in-out infinite; }
.scn-homer-on-achilles-impiety .offering-bowl { position:absolute; bottom:15%; left:48%; width:20px; height:10px; background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: hai-bowl 5s ease-in-out infinite alternate; }
.scn-homer-on-achilles-impiety .river-symbol { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #3a5a4a 0px, #3a5a4a 10px, transparent 10px, transparent 20px); opacity: 0.4; animation: hai-river 20s linear infinite; }
.scn-homer-on-achilles-impiety .lantern { position:absolute; bottom:50%; right:20%; width:12px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-homer-on-achilles-impiety .lantern-glow { position:absolute; bottom:45%; right:16%; width:40px; height:40px; background: radial-gradient(circle, #c0b080 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hai-glow 4s ease-in-out infinite alternate; }
@keyframes hai-statue { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes hai-kneel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hai-bowl { 0% { opacity: 0.8; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes hai-river { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes hai-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* Scene: theseus-and-peirithous (calm, dim interior) */
.scn-theseus-and-peirithous {
  background:
    radial-gradient(ellipse at 20% 60%, #6a4a3a 0%, transparent 50%),
    linear-gradient(180deg, #1a0e05 0%, #0a0500 50%, #000000 100%);
}
.scn-theseus-and-peirithous .bg-tunnel { position:absolute; inset:0; background: linear-gradient(90deg, #0d0500 0%, #1a1008 30%, #2a1a0e 50%, #1a1008 70%, #0d0500 100%); }
.scn-theseus-and-peirithous .floor-path { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0500 100%); }
.scn-theseus-and-peirithous .wall-left { position:absolute; top:0; left:0; width:25%; bottom:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-right: 2px solid #4a3a2a; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); }
.scn-theseus-and-peirithous .wall-right { position:absolute; top:0; right:0; width:25%; bottom:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-left: 2px solid #4a3a2a; box-shadow: inset 10px 0 20px rgba(0,0,0,0.5); }
.scn-theseus-and-peirithous .figure-theseus { position:absolute; bottom:20%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tsp-theseus 8s ease-in-out infinite; }
.scn-theseus-and-peirithous .figure-peirithous { position:absolute; bottom:20%; left:48%; width:40px; height:75px; background: linear-gradient(180deg, #3a2515 0%, #0d0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tsp-peirithous 10s ease-in-out infinite; }
.scn-theseus-and-peirithous .doorway-light { position:absolute; bottom:20%; left:60%; width:15%; height:40%; background: radial-gradient(ellipse at 50% 50%, #e0c080 0%, transparent 70%); opacity: 0.4; animation: tsp-light 6s ease-in-out infinite alternate; }
.scn-theseus-and-peirithous .torch { position:absolute; bottom:50%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #c0a060 0%, #8a6a4a 100%); border-radius: 2px; }
.scn-theseus-and-peirithous .torch-glow { position:absolute; bottom:45%; left:27%; width:50px; height:50px; background: radial-gradient(circle, #e0a060 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: tsp-glow 2s ease-in-out infinite alternate; }
@keyframes tsp-theseus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsp-peirithous { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsp-light { 0% { opacity: 0.2; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.2); } }
@keyframes tsp-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.6; transform: scale(1); } }

/* thirst-bidding-and-forbidding */
.scn-thirst-bidding-and-forbidding {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e0d6c8 40%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 0%, #f5f0e8 0%, transparent 60%);
}
.scn-thirst-bidding-and-forbidding .tb-wall { position:absolute; inset:0; background: linear-gradient(180deg, #fff8f0 0%, #e8ddd0 100%); }
.scn-thirst-bidding-and-forbidding .tb-table { position:absolute; bottom:18%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #b8a48c 0%, #8a7a66 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-thirst-bidding-and-forbidding .tb-cup { position:absolute; bottom:30%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #f0e6d8 0%, #d0c0b0 100%); border-radius: 4px 4px 12px 12px; box-shadow: 0 6px 12px rgba(0,0,0,.3), inset 0 -6px 8px rgba(0,0,0,.1); animation: tb-cup 2s ease-in-out infinite alternate; }
.scn-thirst-bidding-and-forbidding .tb-water { position:absolute; bottom:34%; left:46%; width:32px; height:8px; background: radial-gradient(ellipse, #7ab8d4 0%, #4a8eb0 60%, transparent 80%); border-radius: 50%; animation: tb-water 1.5s ease-in-out infinite; }
.scn-thirst-bidding-and-forbidding .tb-hand { position:absolute; bottom:32%; left:38%; width:22px; height:36px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%); border-radius: 60% 40% 30% 50% / 50% 30% 60% 40%; transform-origin: 50% 100%; animation: tb-hand 3s ease-in-out infinite; }
.scn-thirst-bidding-and-forbidding .tb-shadow { position:absolute; bottom:18%; left:38%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: tb-shadow 3s ease-in-out infinite; }
@keyframes tb-cup { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tb-water { 0% { transform: scaleX(1) scaleY(1); opacity:.8; } 50% { transform: scaleX(1.2) scaleY(0.6); opacity:1; } 100% { transform: scaleX(1) scaleY(1); opacity:.8; } }
@keyframes tb-hand { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(10px) translateY(2px) rotate(10deg); } 60% { transform: translateX(18px) translateY(0) rotate(5deg); } 100% { transform: translateX(32px) translateY(-4px) rotate(15deg); } }
@keyframes tb-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.3; } 50% { transform: translateX(18px) scaleX(0.8); opacity:.2; } 100% { transform: translateX(32px) scaleX(0.6); opacity:.15; } }

/* rational-and-irrational */
.scn-rational-and-irrational {
  background:
    linear-gradient(180deg, #fdfcf8 0%, #eae5de 40%, #d4ccc4 100%),
    radial-gradient(ellipse at 50% 30%, #fdfcf8 0%, transparent 60%);
}
.scn-rational-and-irrational .ri-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dfd8 0%, #c8bfb8 100%); }
.scn-rational-and-irrational .ri-window { position:absolute; top:8%; left:15%; right:15%; height:40%; background: #9ab8d4; border-radius: 4px; border: 8px solid #b0a090; box-shadow: inset 0 0 40px rgba(255,255,255,.3), 0 4px 12px rgba(0,0,0,.2); }
.scn-rational-and-irrational .ri-desk { position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #b8a894 0%, #8a7a66 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.15); }
.scn-rational-and-irrational .ri-lamp { position:absolute; bottom:22%; left:25%; width:16px; height:28px; background: linear-gradient(180deg, #d8c8b8 0%, #b8a090 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 0 20px 6px rgba(240,220,180,.6); animation: ri-lamp 4s ease-in-out infinite alternate; }
.scn-rational-and-irrational .ri-book { position:absolute; bottom:18%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #d8c8b0 0%, #b0a080 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ri-book 12s ease-in-out infinite; }
.scn-rational-and-irrational .ri-figure { position:absolute; bottom:20%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-figure 8s ease-in-out infinite; }
.scn-rational-and-irrational .ri-dust-a { position:absolute; top:30%; left:10%; width:4px; height:4px; background: rgba(200,190,180,.6); border-radius: 50%; filter: blur(1px); animation: ri-dust 18s linear infinite; }
.scn-rational-and-irrational .ri-dust-b { position:absolute; top:40%; left:60%; width:3px; height:3px; background: rgba(200,190,180,.4); border-radius: 50%; filter: blur(1px); animation: ri-dust 25s linear infinite reverse; }
@keyframes ri-lamp { 0% { box-shadow: 0 0 20px 6px rgba(240,220,180,.6); opacity:.9; } 50% { box-shadow: 0 0 30px 10px rgba(240,220,180,.8); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(240,220,180,.6); opacity:.9; } }
@keyframes ri-book { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } }
@keyframes ri-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ri-dust { 0% { transform: translateY(0) translateX(0); opacity:0; } 10% { opacity:.6; } 90% { opacity:.6; } 100% { transform: translateY(-120px) translateX(80px); opacity:0; } }

/* leontius-story */
.scn-leontius-story {
  background:
    linear-gradient(180deg, #1a1428 0%, #2a1e38 30%, #1a1020 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a2a 0%, transparent 60%);
}
.scn-leontius-story .ls-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1020 0%, #0e0a18 100%); }
.scn-leontius-story .ls-fire { position:absolute; bottom:10%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, #c83010 70%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: ls-fire 1.2s ease-in-out infinite alternate; }
.scn-leontius-story .ls-torso { position:absolute; bottom:20%; left:48%; width:30px; height:44px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ls-torso 0.6s ease-in-out infinite; }
.scn-leontius-story .ls-arm-l { position:absolute; bottom:28%; left:40%; width:14px; height:30px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%); border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%; transform-origin: 50% 100%; animation: ls-arm 1.5s ease-in-out infinite; }
.scn-leontius-story .ls-arm-r { position:absolute; bottom:28%; right:40%; width:14px; height:30px; background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%); border-radius: 60% 40% 50% 50% / 40% 30% 70% 60%; transform-origin: 50% 100%; animation: ls-arm 1.8s ease-in-out infinite reverse; }
.scn-leontius-story .ls-chain { position:absolute; bottom:18%; left:35%; right:35%; height:6px; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 6px, transparent 6px, transparent 10px); border-radius: 2px; animation: ls-chain 2s ease-in-out infinite; }
@keyframes ls-fire { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.3) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.9) translateY(2px); opacity:.7; } }
@keyframes ls-torso { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(1px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ls-arm { 0% { transform: rotate(0) translateX(0); } 30% { transform: rotate(30deg) translateX(6px); } 60% { transform: rotate(-10deg) translateX(-4px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ls-chain { 0% { transform: translateX(0) scaleY(1); opacity:.6; } 50% { transform: translateX(4px) scaleY(0.8); opacity:1; } 100% { transform: translateX(0) scaleY(1); opacity:.6; } }

/* spirit-auxiliary-of-reason */
.scn-spirit-auxiliary-of-reason {
  background:
    linear-gradient(180deg, #fdfaf5 0%, #eae2d4 40%, #d4caba 100%),
    radial-gradient(ellipse at 50% 20%, #fdfaf5 0%, transparent 60%);
}
.scn-spirit-auxiliary-of-reason .sa-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8dc 0%, #d8d0c4 100%); }
.scn-spirit-auxiliary-of-reason .sa-column { position:absolute; left:20%; top:5%; width:12px; height:70%; background: linear-gradient(180deg, #d8ccbc 0%, #b8a898 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.1); }
.scn-spirit-auxiliary-of-reason .sa-horse { position:absolute; bottom:18%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 60% 30% 40% 40% / 60% 40% 40% 40%; animation: sa-horse 6s ease-in-out infinite; }
.scn-spirit-auxiliary-of-reason .sa-figure { position:absolute; bottom:22%; left:42%; width:20px; height:48px; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-figure 8s ease-in-out infinite; }
.scn-spirit-auxiliary-of-reason .sa-lantern { position:absolute; bottom:32%; left:38%; width:8px; height:10px; background: radial-gradient(circle, #ffe8a0 0%, #d8b060 70%); border-radius: 20%; box-shadow: 0 0 20px 6px rgba(255,232,160,.6); animation: sa-lantern 4s ease-in-out infinite alternate; }
.scn-spirit-auxiliary-of-reason .sa-ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #c8bca8 0%, #a89888 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); }
@keyframes sa-horse { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sa-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sa-lantern { 0% { box-shadow: 0 0 20px 6px rgba(255,232,160,.6); opacity:.8; } 50% { box-shadow: 0 0 30px 10px rgba(255,232,160,.9); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(255,232,160,.6); opacity:.8; } }

.scn-youth-education-simplicity { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d9c4a0 100%), radial-gradient(ellipse at 60% 30%, #fff5e6 0%, transparent 70%); }
.scn-youth-education-simplicity .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #faf3e8 0%, #efe0cc 100%); }
.scn-youth-education-simplicity .window-light { position:absolute; top:10%; left:25%; width:30%; height:40%; background: linear-gradient(135deg, #fff9ee 0%, transparent 70%); border-radius:4% 4% 30% 30%; box-shadow: inset 0 0 60px rgba(255,250,230,0.3); animation: ye-light 6s ease-in-out infinite alternate; }
.scn-youth-education-simplicity .desk { position:absolute; bottom:18%; left:30%; right:30%; height:16%; background: linear-gradient(180deg, #c4a87a 0%, #b0905e 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.15); }
.scn-youth-education-simplicity .book-a { position:absolute; bottom:22%; left:36%; width:12%; height:8%; background: linear-gradient(180deg, #6b8e6b 0%, #4a6a4a 100%); border-radius: 10% 10% 4% 4%; transform: rotate(-5deg); animation: ye-book 10s ease-in-out infinite; }
.scn-youth-education-simplicity .book-b { position:absolute; bottom:21%; left:50%; width:10%; height:7%; background: linear-gradient(180deg, #8b6b4a 0%, #6a4a2a 100%); border-radius: 10% 10% 4% 4%; transform: rotate(3deg); animation: ye-book 12s ease-in-out infinite reverse; }
.scn-youth-education-simplicity .lyre { position:absolute; bottom:17%; left:43%; width:8%; height:15%; background: linear-gradient(180deg, #d4a85e 0%, #b0803a 60%, #9a6a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ye-lyre 8s ease-in-out infinite; }
.scn-youth-education-simplicity .student { position:absolute; bottom:14%; left:55%; width:10%; height:25%; background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ye-student 5s ease-in-out infinite; }
.scn-youth-education-simplicity .dust-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background:#fff; border-radius:50%; opacity:0.4; filter: blur(2px); animation: ye-dust 15s linear infinite; }
.scn-youth-education-simplicity .dust-b { position:absolute; top:50%; left:70%; width:6px; height:6px; background:#fff; border-radius:50%; opacity:0.3; filter: blur(3px); animation: ye-dust 20s linear infinite reverse; }
@keyframes ye-light { 0% { opacity:0.6; transform:scale(0.95) } 50% { opacity:0.9; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(1) } }
@keyframes ye-book { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes ye-lyre { 0% { transform:rotate(0) } 50% { transform:rotate(-2deg) } 100% { transform:rotate(0) } }
@keyframes ye-student { 0% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(1deg) } 60% { transform:translateY(1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes ye-dust { 0% { transform:translate(0,0) scale(0.5); opacity:0.2 } 25% { transform:translate(20px,-30px) scale(1); opacity:0.5 } 50% { transform:translate(40px,10px) scale(0.8); opacity:0.3 } 75% { transform:translate(60px,-20px) scale(1.2); opacity:0.6 } 100% { transform:translate(80px,0) scale(0.5); opacity:0.2 } }

.scn-music-gymnastic-soul { background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #c0a890 100%); }
.scn-music-gymnastic-soul .gym-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(240,232,216,0.8) 0%, transparent 100%); }
.scn-music-gymnastic-soul .column-l { position:absolute; bottom:10%; left:15%; width:4%; height:70%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius:8% 8% 4% 4%; box-shadow: 8px 0 16px rgba(0,0,0,0.1); animation: mg-column 12s ease-in-out infinite; }
.scn-music-gymnastic-soul .column-r { position:absolute; bottom:10%; right:15%; width:4%; height:70%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius:8% 8% 4% 4%; box-shadow: -8px 0 16px rgba(0,0,0,0.1); animation: mg-column 14s ease-in-out infinite reverse; }
.scn-music-gymnastic-soul .floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #b0a080 0%, #8a7a60 100%); border-radius:0 0 6% 6%; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-music-gymnastic-soul .discus { position:absolute; bottom:30%; left:28%; width:14%; height:14%; background: radial-gradient(circle, #c0a080 0%, #9a7a5a 70%); border-radius:50%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: mg-discus 4s ease-in-out infinite; }
.scn-music-gymnastic-soul .gymnast { position:absolute; bottom:8%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #d4b898 0%, #b09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-gymnast 2s ease-in-out infinite; }
.scn-music-gymnastic-soul .lyre-player { position:absolute; bottom:8%; right:30%; width:10%; height:28%; background: linear-gradient(180deg, #d0b090 0%, #a88868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mg-player 3s ease-in-out infinite; }
.scn-music-gymnastic-soul .ray-a { position:absolute; top:5%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, rgba(255,250,230,0.3) 0%, transparent 100%); filter: blur(4px); animation: mg-ray 8s ease-in-out infinite alternate; }
.scn-music-gymnastic-soul .ray-b { position:absolute; top:8%; right:20%; width:25%; height:5%; background: linear-gradient(180deg, rgba(255,250,230,0.2) 0%, transparent 100%); filter: blur(6px); animation: mg-ray 10s ease-in-out infinite alternate-reverse; }
@keyframes mg-column { 0% { transform:scaleY(1); opacity:1 } 50% { transform:scaleY(1.02); opacity:0.9 } 100% { transform:scaleY(1); opacity:1 } }
@keyframes mg-discus { 0% { transform:translate(0,0) rotate(0) } 25% { transform:translate(10px,-5px) rotate(20deg) } 50% { transform:translate(-5px,10px) rotate(45deg) } 75% { transform:translate(8px,-3px) rotate(60deg) } 100% { transform:translate(0,0) rotate(0) } }
@keyframes mg-gymnast { 0% { transform:translateY(0) rotate(0) scaleY(1) } 25% { transform:translateY(-8px) rotate(-10deg) scaleY(1.1) } 50% { transform:translateY(0) rotate(0) scaleY(1) } 75% { transform:translateY(-4px) rotate(10deg) scaleY(1.05) } 100% { transform:translateY(0) rotate(0) scaleY(1) } }
@keyframes mg-player { 0% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(2px,-1px) rotate(2deg) } 100% { transform:translate(0,0) rotate(-2deg) } }
@keyframes mg-ray { 0% { opacity:0.4; transform:scaleX(1) } 50% { opacity:0.8; transform:scaleX(1.3) } 100% { opacity:0.5; transform:scaleX(0.9) } }

.scn-harmony-spirit-philosophy { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 40% 50%, #3a3a4e 0%, transparent 70%); }
.scn-harmony-spirit-philosophy .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #151520 100%); }
.scn-harmony-spirit-philosophy .shadow-wall { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a12 80%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: hs-shadow 6s ease-in-out infinite alternate; }
.scn-harmony-spirit-philosophy .athlete { position:absolute; bottom:15%; left:30%; width:14%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-athlete 3s ease-in-out infinite; }
.scn-harmony-spirit-philosophy .musician { position:absolute; bottom:15%; right:30%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hs-musician 3.5s ease-in-out infinite; }
.scn-harmony-spirit-philosophy .light-beam { position:absolute; top:5%; left:45%; width:4%; height:60%; background: linear-gradient(180deg, rgba(255,220,150,0.4) 0%, transparent 80%); filter: blur(4px); animation: hs-beam 4s ease-in-out infinite alternate; }
.scn-harmony-spirit-philosophy .floor-crack { position:absolute; bottom:14%; left:38%; width:20%; height:2%; background: #2a2a3a; border-radius:20%; transform: rotate(-5deg); box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: hs-crack 10s ease-in-out infinite; }
.scn-harmony-spirit-philosophy .spirit-emblem { position:absolute; top:20%; left:50%; width:16%; height:16%; background: radial-gradient(circle, #c8553d 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation: hs-emblem 5s ease-in-out infinite; }
@keyframes hs-shadow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hs-athlete { 0% { transform:translateX(0) rotate(0) scaleX(1.1) } 25% { transform:translateX(-5px) rotate(-8deg) scaleX(1.05) } 50% { transform:translateX(0) rotate(0) scaleX(1.1) } 75% { transform:translateX(5px) rotate(8deg) scaleX(1.15) } 100% { transform:translateX(0) rotate(0) scaleX(1.1) } }
@keyframes hs-musician { 0% { transform:translateY(0) rotate(2deg) } 50% { transform:translateY(-3px) rotate(-2deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes hs-beam { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.7; transform:scaleX(2) } 100% { opacity:0.4; transform:scaleX(1.2) } }
@keyframes hs-crack { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(1px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes hs-emblem { 0% { transform:translateX(-50%) scale(0.8); opacity:0.5 } 50% { transform:translateX(-50%) scale(1.2); opacity:0.9 } 100% { transform:translateX(-50%) scale(0.8); opacity:0.5 } }

.scn-music-melting-effect { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 60%, #3a2a4e 0%, transparent 70%); }
.scn-music-melting-effect .overwhelm-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-music-melting-effect .figure-swoon { position:absolute; bottom:10%; left:50%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(10deg); transform-origin: bottom center; animation: mm-swoon 3s ease-in-out infinite; }
.scn-music-melting-effect .lyre-vibrate { position:absolute; bottom:30%; left:35%; width:10%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 12px rgba(100,80,60,0.3); animation: mm-lyre 0.5s ease-in-out infinite; }
.scn-music-melting-effect .sound-wave-a { position:absolute; bottom:35%; left:25%; width:25%; height:20%; border: 2px solid rgba(180,120,200,0.3); border-radius:50%; background: transparent; animation: mm-wave-a 4s ease-in-out infinite; }
.scn-music-melting-effect .sound-wave-b { position:absolute; bottom:35%; right:25%; width:25%; height:20%; border: 2px solid rgba(180,120,200,0.2); border-radius:50%; background: transparent; animation: mm-wave-b 4.5s ease-in-out infinite; }
.scn-music-melting-effect .shadow-wisp { position:absolute; top:20%; left:30%; width:12%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(8px); animation: mm-wisp 8s ease-in-out infinite; }
.scn-music-melting-effect .tear-drop { position:absolute; bottom:15%; left:52%; width:2%; height:4%; background: linear-gradient(180deg, #b87878 0%, transparent 100%); border-radius:50%; animation: mm-tear 2s ease-in-out infinite; }
@keyframes mm-swoon { 0% { transform:translateX(-50%) rotate(10deg) scale(1) } 25% { transform:translateX(-50%) rotate(5deg) scale(1.05) } 50% { transform:translateX(-50%) rotate(15deg) scale(0.95) } 75% { transform:translateX(-50%) rotate(0deg) scale(1.02) } 100% { transform:translateX(-50%) rotate(10deg) scale(1) } }
@keyframes mm-lyre { 0% { transform:rotate(0) scaleY(1) } 25% { transform:rotate(-3deg) scaleY(1.1) } 50% { transform:rotate(0) scaleY(1) } 75% { transform:rotate(3deg) scaleY(0.9) } 100% { transform:rotate(0) scaleY(1) } }
@keyframes mm-wave-a { 0% { transform:scale(0.5); opacity:0.8 } 25% { transform:scale(1.2); opacity:0.6 } 50% { transform:scale(0.8); opacity:0.9 } 75% { transform:scale(1.5); opacity:0.4 } 100% { transform:scale(0.5); opacity:0.8 } }
@keyframes mm-wave-b { 0% { transform:scale(0.8); opacity:0.6 } 25% { transform:scale(0.4); opacity:0.9 } 50% { transform:scale(1.3); opacity:0.5 } 75% { transform:scale(0.6); opacity:0.8 } 100% { transform:scale(0.8); opacity:0.6 } }
@keyframes mm-wisp { 0% { transform:translate(0,0); opacity:0.3 } 50% { transform:translate(-10px,20px); opacity:0.6 } 100% { transform:translate(10px,-10px); opacity:0.2 } }
@keyframes mm-tear { 0% { transform:translateY(0); opacity:0.8 } 50% { transform:translateY(8px); opacity:0.3 } 100% { transform:translateY(0); opacity:0.8 } }

.scn-true-pleasure-shadow {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #1e1e30 80%, #0e0e18 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-true-pleasure-shadow .cave-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #282840 0%, #1c1c30 50%, #101020 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: tps-wall 20s ease-in-out infinite alternate;
}
.scn-true-pleasure-shadow .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a40 0%, #151528 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-true-pleasure-shadow .light-source {
  position: absolute; top: 12%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at center, #f0e8b0 0%, #b8a060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,232,176,0.3), 0 0 120px 40px rgba(240,232,176,0.15);
  animation: tps-light 6s ease-in-out infinite alternate;
}
.scn-true-pleasure-shadow .central-figure {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: tps-figure 8s ease-in-out infinite alternate;
}
.scn-true-pleasure-shadow .shadow-figure {
  position: absolute; bottom: 20%; left: 65%; width: 40px; height: 70px;
  background: rgba(10,10,20,0.7);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  transform: skewX(-10deg) rotate(5deg);
  animation: tps-shadow 10s ease-in-out infinite alternate;
}
.scn-true-pleasure-shadow .wisps {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,140,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: tps-wisp 30s linear infinite;
}
@keyframes tps-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes tps-light { 0% { transform:translateX(-50%) scale(1); opacity:.8 } 50% { transform:translateX(-50%) scale(1.1); opacity:1 } 100% { transform:translateX(-50%) scale(.9); opacity:.7 } }
@keyframes tps-figure { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform:translateX(-50%) rotate(0) scale(1) } }
@keyframes tps-shadow { 0% { transform:skewX(-10deg) rotate(5deg) scaleX(1) } 50% { transform:skewX(-8deg) rotate(8deg) scaleX(1.05) } 100% { transform:skewX(-12deg) rotate(3deg) scaleX(.95) } }
@keyframes tps-wisp { 0% { transform: translate(0,0) scale(.8); opacity:0 } 25% { transform: translate(30px,-20px) scale(1.2); opacity:.6 } 50% { transform: translate(-10px,10px) scale(1); opacity:.3 } 75% { transform: translate(50px,0) scale(1.1); opacity:.5 } 100% { transform: translate(0,0) scale(.8); opacity:0 } }

.scn-cattle-analogy {
  background: linear-gradient(180deg, #1c1c1c 0%, #2a2a2a 30%, #1a1a1a 70%, #0e0e0e 100%),
              radial-gradient(ellipse at 50% 80%, #333333 0%, transparent 60%);
}
.scn-cattle-analogy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-cattle-analogy .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.8);
}
.scn-cattle-analogy .trough {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.7);
}
.scn-cattle-analogy .cattle-body {
  position: absolute; bottom: 22%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-cattle-analogy .cattle-a { left: 15%; animation: catt-body-a 6s ease-in-out infinite; }
.scn-cattle-analogy .cattle-b { left: 55%; animation: catt-body-b 8s ease-in-out infinite; animation-delay: -3s; }
.scn-cattle-analogy .cattle-head {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40%;
  animation: catt-head 5s ease-in-out infinite alternate;
}
.scn-cattle-analogy .shadow-trough {
  position: absolute; bottom: 24%; left: 22%; right: 22%; height: 4%;
  background: rgba(0,0,0,0.6);
  filter: blur(4px);
  animation: catt-shadow 7s ease-in-out infinite;
}
@keyframes catt-body-a { 0% { transform: translateX(0) rotate(0) scale(1) } 50% { transform: translateX(-5px) rotate(-2deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes catt-body-b { 0% { transform: translateX(0) rotate(0) scale(1) } 50% { transform: translateX(5px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes catt-head { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes catt-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .5; transform: scaleX(1) } }

.scn-soul-harmony-pleasure {
  background: linear-gradient(180deg, #2a2a44 0%, #3a3a5e 40%, #2e2e4a 80%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 50%, #4a4a6e 0%, transparent 70%);
}
.scn-soul-harmony-pleasure .bg-arch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a44 60%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: shp-arch 15s ease-in-out infinite alternate;
}
.scn-soul-harmony-pleasure .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-soul-harmony-pleasure .figure-med {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: shp-figure 12s ease-in-out infinite alternate;
}
.scn-soul-harmony-pleasure .glow-orb {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0b0 0%, #c0a070 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,224,176,0.3), 0 0 160px 60px rgba(240,224,176,0.1);
  animation: shp-orb 8s ease-in-out infinite alternate;
}
.scn-soul-harmony-pleasure .ripples {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: shp-ripple 10s ease-in-out infinite;
}
.scn-soul-harmony-pleasure .petals {
  position: absolute; top: 35%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #c8856a 0%, #a05a45 100%);
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: shp-petal 20s linear infinite;
}
@keyframes shp-arch { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.95) } }
@keyframes shp-figure { 0% { transform: translateX(-50%) rotate(0) scale(1) } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-3deg) scale(.98) } }
@keyframes shp-orb { 0% { transform: translateX(-50%) scale(.9); opacity:.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.8 } }
@keyframes shp-ripple { 0% { transform: translateX(-50%) scaleX(1); opacity:.3 } 50% { transform: translateX(-50%) scaleX(1.3); opacity:.6 } 100% { transform: translateX(-50%) scaleX(1); opacity:.3 } }
@keyframes shp-petal { 0% { transform: translate(0,0) rotate(0) scale(.8); opacity:0 } 20% { opacity:.5 } 50% { transform: translate(60px,-30px) rotate(180deg) scale(1.2); opacity:.7 } 80% { opacity:.2 } 100% { transform: translate(120px,-60px) rotate(360deg) scale(.6); opacity:0 } }

.scn-pleasure-figure-729 {
  background: linear-gradient(135deg, #2a2a3e 0%, #3a3a52 50%, #1e1e30 100%),
              radial-gradient(circle at 60% 50%, #4a4a66 0%, transparent 70%);
}
.scn-pleasure-figure-729 .plane-base {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
}
.scn-pleasure-figure-729 .plane-shadow {
  position: absolute; bottom: 12%; left: 12%; right: 8%; height: 25%;
  background: rgba(10,10,20,0.4);
  filter: blur(8px);
  transform: skewX(-5deg);
  animation: pf7-shadow 12s ease-in-out infinite alternate;
}
.scn-pleasure-figure-729 .line-a {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 2px;
  background: linear-gradient(90deg, transparent, #b8a070 30%, #b8a070 70%, transparent);
  box-shadow: 0 0 8px rgba(184,160,112,0.4);
  animation: pf7-linea 9s ease-in-out infinite;
}
.scn-pleasure-figure-729 .line-b {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent, #b8a070 20%, #b8a070 80%, transparent);
  box-shadow: 0 0 6px rgba(184,160,112,0.3);
  animation: pf7-lineb 11s ease-in-out infinite reverse;
}
.scn-pleasure-figure-729 .node {
  position: absolute; width: 6px; height: 6px;
  background: #d0b890;
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(208,184,144,0.5);
}
.scn-pleasure-figure-729 .node1 { bottom: 24%; left: 25%; animation: pf7-node1 5s ease-in-out infinite; }
.scn-pleasure-figure-729 .node2 { bottom: 29%; left: 50%; animation: pf7-node2 6s ease-in-out infinite; }
.scn-pleasure-figure-729 .node3 { bottom: 34%; left: 70%; animation: pf7-node3 7s ease-in-out infinite; }
@keyframes pf7-shadow { 0% { opacity: .4; transform: skewX(-5deg) scaleY(1) } 50% { opacity: .7; transform: skewX(-3deg) scaleY(1.1) } 100% { opacity: .4; transform: skewX(-7deg) scaleY(.95) } }
@keyframes pf7-linea { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .9; transform: scaleX(1.05) } 100% { opacity: .6; transform: scaleX(.95) } }
@keyframes pf7-lineb { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .5; transform: scaleX(.9) } }
@keyframes pf7-node1 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-1px) scale(1.3) } 100% { transform: translate(0,0) scale(1) } }
@keyframes pf7-node2 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-2px,2px) scale(1.2) } 100% { transform: translate(0,0) scale(1) } }
@keyframes pf7-node3 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(3px,1px) scale(1.4) } 100% { transform: translate(0,0) scale(1) } }

.scn-courage-salvation-of-opinion {
  background: linear-gradient(90deg, #d4b896 0%, #f0e0c8 40%, #fff5e0 70%, #f0e0c8 100%),
              radial-gradient(ellipse at 60% 40%, #ffd699 0%, #c8a882 80%);
}
.scn-courage-salvation-of-opinion .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5b8 0%, #c8a882 100%);
  animation: crg-wall 8s ease-in-out infinite alternate;
}
.scn-courage-salvation-of-opinion .window {
  position: absolute; top: 22%; left: 50%; width: 140px; height: 200px; transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #fff8e0 0%, #ffeab5 50%, #d4a870 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 60px 30px rgba(255,235,180,.4), inset 0 0 40px #fff;
  animation: crg-window 4s ease-in-out infinite alternate;
}
.scn-courage-salvation-of-opinion .light-beam {
  position: absolute; top: 22%; left: 50%; width: 200px; height: 400px; transform: translateX(-50%) skewX(-8deg);
  background: linear-gradient(180deg, rgba(255,248,224,0.6) 0%, rgba(255,235,180,0.2) 100%);
  clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%);
  animation: crg-beam 5s ease-in-out infinite;
}
.scn-courage-salvation-of-opinion .guardian {
  position: absolute; bottom: 8%; left: 50%; width: 60px; height: 150px; transform: translateX(-60%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: crg-guardian 3s ease-in-out infinite;
}
.scn-courage-salvation-of-opinion .shield {
  position: absolute; bottom: 28%; left: 45%; width: 50px; height: 70px; transform: rotate(-15deg);
  background: radial-gradient(circle at 55% 45%, #c8a060 0%, #8a6a40 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: crg-shield 2.5s ease-in-out infinite alternate;
}
.scn-courage-salvation-of-opinion .spear {
  position: absolute; bottom: 30%; left: 52%; width: 6px; height: 130px; transform: rotate(10deg);
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 40%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: crg-spear 3s ease-in-out infinite;
}
.scn-courage-salvation-of-opinion .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  animation: crg-shadow 7s ease-in-out infinite alternate;
}
@keyframes crg-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes crg-window { 0% { box-shadow: 0 0 30px 10px rgba(255,235,180,.3), inset 0 0 30px #fff } 50% { box-shadow: 0 0 80px 40px rgba(255,240,200,.6), inset 0 0 60px #fff } 100% { box-shadow: 0 0 40px 15px rgba(255,235,180,.4), inset 0 0 40px #fff } }
@keyframes crg-beam { 0% { opacity: 0.7; transform: translateX(-50%) skewX(-8deg) } 50% { opacity: 1; transform: translateX(-45%) skewX(-6deg) } 100% { opacity: 0.8; transform: translateX(-55%) skewX(-10deg) } }
@keyframes crg-guardian { 0% { transform: translateX(-60%) translateY(0) } 25% { transform: translateX(-58%) translateY(-2px) } 50% { transform: translateX(-62%) translateY(0) } 75% { transform: translateX(-59%) translateY(-1px) } 100% { transform: translateX(-60%) translateY(0) } }
@keyframes crg-shield { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(-20deg) scale(0.95) } }
@keyframes crg-spear { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(2px) } 100% { transform: rotate(8deg) translateY(-1px) } }
@keyframes crg-shadow { 0% { opacity: 0.1 } 50% { opacity: 0.25 } 100% { opacity: 0.15 } }

.scn-dyeing-the-wool {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 40%, #d5c5a8 100%),
              radial-gradient(ellipse at 50% 70%, #e0d0b8 0%, transparent 60%);
}
.scn-dyeing-the-wool .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  animation: dye-floor 12s ease-in-out infinite alternate;
}
.scn-dyeing-the-wool .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d5c5a8 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-dyeing-the-wool .dye-vat {
  position: absolute; bottom: 18%; left: 50%; width: 90px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #705040 0%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: dye-vat 15s ease-in-out infinite;
}
.scn-dyeing-the-wool .wool-bunches {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #d4b8a0 0%, #9a7a60 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dye-wool 6s ease-in-out infinite alternate;
}
.scn-dyeing-the-wool .dyer {
  position: absolute; bottom: 12%; left: 45%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #d4a878 0%, #b08a60 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: dye-dyer 4s ease-in-out infinite;
}
.scn-dyeing-the-wool .sleeve {
  position: absolute; bottom: 25%; left: 48%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #d4b090 0%, #b09070 100%);
  border-radius: 30%;
  transform: rotate(-10deg);
  animation: dye-sleeve 3s ease-in-out infinite alternate;
}
.scn-dyeing-the-wool .steam {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: dye-steam 8s ease-in-out infinite;
}
@keyframes dye-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dye-vat { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-48%) scale(1.02) } 100% { transform: translateX(-52%) scale(0.98) } }
@keyframes dye-wool { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(5deg) } 100% { transform: translateY(2px) rotate(-3deg) } }
@keyframes dye-dyer { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(1px) } }
@keyframes dye-sleeve { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } 100% { transform: rotate(-12deg) translateX(-1px) } }
@keyframes dye-steam { 0% { opacity: 0.3; transform: translateY(0) scale(1) } 50% { opacity: 0.6; transform: translateY(-15px) scale(1.5) } 100% { opacity: 0.2; transform: translateY(-5px) scale(0.8) } }

.scn-temperance-harmony {
  background: linear-gradient(180deg, #fff5e8 0%, #f0e2d0 40%, #e0c8b0 100%),
              radial-gradient(ellipse at 50% 30%, #ffeac0 0%, transparent 70%);
}
.scn-temperance-harmony .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5e8d8 0%, #e0d0b8 100%);
}
.scn-temperance-harmony .pedestal {
  position: absolute; bottom: 6%; left: 50%; width: 200px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: tmp-pedestal 20s ease-in-out infinite alternate;
}
.scn-temperance-harmony .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: tmp-left 3s ease-in-out infinite;
}
.scn-temperance-harmony .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #b89070 0%, #987050 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: tmp-right 3s ease-in-out infinite;
}
.scn-temperance-harmony .lyre {
  position: absolute; bottom: 38%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4a870 0%, #b08050 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(10deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: tmp-lyre 4s ease-in-out infinite alternate;
}
.scn-temperance-harmony .lamp {
  position: absolute; top: 18%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 60%, #fff5d0 0%, #f0d8a0 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 80px 40px rgba(255,235,180,0.6);
  animation: tmp-lamp 5s ease-in-out infinite;
}
.scn-temperance-harmony .drapery {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #e0d0b8 0%, transparent 100%);
  animation: tmp-drape 15s ease-in-out infinite alternate;
}
@keyframes tmp-pedestal { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes tmp-left { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(1px) } }
@keyframes tmp-right { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(1px) } }
@keyframes tmp-lyre { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(8deg) scale(0.95) } }
@keyframes tmp-lamp { 0% { opacity: 0.8; box-shadow: 0 0 60px 20px rgba(255,235,180,0.4) } 50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(255,240,200,0.7) } 100% { opacity: 0.85; box-shadow: 0 0 70px 25px rgba(255,235,180,0.5) } }
@keyframes tmp-drape { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }

.scn-temperance-in-state {
  background: linear-gradient(180deg, #f5ede0 0%, #e8dcc8 40%, #d8c8b0 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%);
}
.scn-temperance-in-state .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ede0d0 0%, #d8c8b0 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.08);
}
.scn-temperance-in-state .throne {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: tms-throne 10s ease-in-out infinite alternate;
}
.scn-temperance-in-state .ruler {
  position: absolute; bottom: 60px; left: 50%; transform: translateX(-50%);
  width: 50px; height: 130px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tms-ruler 5s ease-in-out infinite;
}
.scn-temperance-in-state .scepter {
  position: absolute; bottom: 120px; left: 55%; width: 8px; height: 90px;
  background: linear-gradient(180deg, #d4b090 0%, #b09070 100%);
  border-radius: 30%;
  transform: rotate(-8deg);
  animation: tms-scepter 4s ease-in-out infinite alternate;
}
.scn-temperance-in-state .courtier1 {
  position: absolute; bottom: 10%; left: 18%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #b89878 0%, #987858 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: tms-court1 6s ease-in-out infinite;
}
.scn-temperance-in-state .courtier2 {
  position: absolute; bottom: 10%; right: 18%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #a88a6a 0%, #887a5a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: tms-court2 6s ease-in-out infinite;
}
.scn-temperance-in-state .lantern {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #fff0c0 0%, #f0d080 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 60px 30px rgba(255,235,180,0.5);
  animation: tms-lantern 8s ease-in-out infinite;
}
@keyframes tms-throne { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-48%) scale(1.02) } 100% { transform: translateX(-52%) scale(0.98) } }
@keyframes tms-ruler { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-48%) translateY(-2px) } 50% { transform: translateX(-52%) translateY(0) } 75% { transform: translateX(-49%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes tms-scepter { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(-11deg) translateX(-2px) } }
@keyframes tms-court1 { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(1px) } }
@keyframes tms-court2 { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(1px) } }
@keyframes tms-lantern { 0% { opacity: 0.8; box-shadow: 0 0 40px 15px rgba(255,235,180,0.3) } 50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,240,200,0.6) } 100% { opacity: 0.85; box-shadow: 0 0 50px 20px rgba(255,235,180,0.4) } }

/* Scene: appetite-and-reason */
.scn-appetite-and-reason {
  background: 
    linear-gradient(180deg, #f4e4c1 0%, #e8d5a3 50%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5dc 30%, transparent 70%);
}
.scn-appetite-and-reason .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #efe6d0 0%, #d9c9a8 100%); animation: ar1-wall 12s ease-in-out infinite alternate; }
.scn-appetite-and-reason .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a58a 0%, #8a7a60 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-appetite-and-reason .window { position:absolute; top:8%; right:12%; width:30%; height:45%; background: radial-gradient(ellipse at 30% 30%, #b8d4f0 0%, #d6e8f8 100%); border: 6px solid #b8a58a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.4); animation: ar1-window 8s ease-in-out infinite alternate; }
.scn-appetite-and-reason .table  { position:absolute; bottom:30%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #a08860 0%, #7a6440 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-appetite-and-reason .plate  { position:absolute; bottom:34%; left:40%; width:15%; height:4%; background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #d4c8a0 100%); border-radius: 50%; border: 2px solid #c0b090; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: ar1-plate 6s ease-in-out infinite; }
.scn-appetite-and-reason .book   { position:absolute; bottom:33%; left:30%; width:10%; height:6%; background: linear-gradient(135deg, #584830 0%, #3a2c1c 100%); border-radius: 2px; box-shadow: 0 3px 5px rgba(0,0,0,.3); transform-origin: left center; animation: ar1-book 9s ease-in-out infinite alternate; }
.scn-appetite-and-reason .figure { position:absolute; bottom:28%; left:55%; width:12%; height:20%; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar1-figure 4s ease-in-out infinite; }

@keyframes ar1-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ar1-window { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.02) scaleY(1.01) } 100% { transform: scaleX(0.98) scaleY(1) } }
@keyframes ar1-plate { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ar1-book { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(-1px) } }
@keyframes ar1-figure { 0% { transform: translateY(0) scaleY(1) rotate(0deg) } 50% { transform: translateY(-3px) scaleY(1.02) rotate(1deg) } 100% { transform: translateY(0) scaleY(1) rotate(-1deg) } }

/* Scene: hunger-and-thirst */
.scn-hunger-and-thirst {
  background:
    linear-gradient(180deg, #e2d8b8 0%, #d4c8a0 50%, #b8a88a 100%),
    radial-gradient(ellipse at 60% 20%, #fff3d0 40%, transparent 80%);
}
.scn-hunger-and-thirst .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #e0d4ba 0%, #c8b898 100%); }
.scn-hunger-and-thirst .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.12); }
.scn-hunger-and-thirst .table  { position:absolute; bottom:30%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #9a8060 0%, #705840 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-hunger-and-thirst .bread  { position:absolute; bottom:34%; left:45%; width:14%; height:5%; background: radial-gradient(ellipse at 50% 40%, #e8c86a 0%, #d0a84a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ht1-bread 7s ease-in-out infinite; }
.scn-hunger-and-thirst .cup    { position:absolute; bottom:33%; left:30%; width:8%; height:10%; background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; border-bottom: 2px solid #b0a080; box-shadow: 0 3px 6px rgba(0,0,0,.15); animation: ht1-cup 5s ease-in-out infinite alternate; }
.scn-hunger-and-thirst .chair  { position:absolute; bottom:28%; left:55%; width:15%; height:20%; background: linear-gradient(180deg, #684c30 0%, #3c2818 100%); border-radius: 6% 6% 4% 4% / 12% 12% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform-origin: bottom center; animation: ht1-chair 10s ease-in-out infinite alternate; }
.scn-hunger-and-thirst .window { position:absolute; top:10%; left:10%; width:25%; height:40%; background: radial-gradient(ellipse at 30% 30%, #b0cce8 0%, #c8daf0 100%); border: 5px solid #9a8060; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,255,.3); animation: ht1-window 9s ease-in-out infinite alternate; }

@keyframes ht1-bread { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.03) } 100% { transform: translateY(0) scaleX(0.98) } }
@keyframes ht1-cup { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ht1-chair { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(0.99) } }
@keyframes ht1-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }

/* Scene: thirst-and-good */
.scn-thirst-and-good {
  background:
    linear-gradient(180deg, #d6c8a8 0%, #c4b08a 50%, #a88c68 100%),
    radial-gradient(ellipse at 40% 10%, #fce8c0 30%, transparent 80%);
}
.scn-thirst-and-good .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #d4c4a0 0%, #b8a480 100%); }
.scn-thirst-and-good .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); box-shadow: inset 0 10px 25px rgba(0,0,0,.25); }
.scn-thirst-and-good .table  { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #8a6e4a 0%, #5c4020 100%); border-radius: 6px; box-shadow: 0 5px 10px rgba(0,0,0,.3); }
.scn-thirst-and-good .glass  { position:absolute; bottom:32%; left:45%; width:8%; height:12%; background: linear-gradient(180deg, #d8e8f0 0%, #b0c8d8 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; border: 2px solid #a0b8c8; box-shadow: 0 3px 6px rgba(0,0,0,.2); animation: tg1-glass 4s ease-in-out infinite alternate; }
.scn-thirst-and-good .hand   { position:absolute; bottom:34%; left:40%; width:10%; height:12%; background: linear-gradient(180deg, #d4a080 0%, #b87858 100%); border-radius: 50% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom left; animation: tg1-hand 3s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-thirst-and-good .shadow { position:absolute; bottom:30%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(6px); animation: tg1-shadow 5s ease-in-out infinite alternate; }
.scn-thirst-and-good .rug    { position:absolute; bottom:4%; left:15%; width:70%; height:8%; background: linear-gradient(135deg, #7a5a3a 0%, #4a3218 100%); border-radius: 30% 10% 30% 10% / 50% 20% 50% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: tg1-rug 8s ease-in-out infinite; }

@keyframes tg1-glass { 0% { transform: translateY(0) rotate(0deg) scaleX(1) } 50% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(-1deg) scaleX(0.98) } }
@keyframes tg1-hand { 0% { transform: translate(0, 0) rotate(0deg) } 33% { transform: translate(4px, -2px) rotate(5deg) } 66% { transform: translate(8px, -1px) rotate(3deg) } 100% { transform: translate(12px, 0) rotate(0deg) } }
@keyframes tg1-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.9) } }
@keyframes tg1-rug { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: thirst-without-quality */
.scn-thirst-without-quality {
  background:
    linear-gradient(180deg, #eae0c8 0%, #d6c8a8 50%, #beac8a 100%),
    radial-gradient(ellipse at 70% 10%, #fcf4dc 30%, transparent 70%);
}
.scn-thirst-without-quality .wall      { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #e4d8bc 0%, #c8b898 100%); }
.scn-thirst-without-quality .floor     { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6848 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.1); }
.scn-thirst-without-quality .bookshelf { position:absolute; top:5%; left:5%; width:30%; height:60%; background: linear-gradient(180deg, #6a4e30 0%, #3c2818 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: tq1-shelf 15s ease-in-out infinite alternate; }
.scn-thirst-without-quality .globe     { position:absolute; top:20%; right:15%; width:15%; height:20%; background: radial-gradient(circle at 50% 50%, #6a8ab8 0%, #3a5a8a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: tq1-globe 10s linear infinite; }
.scn-thirst-without-quality .chair     { position:absolute; bottom:28%; left:25%; width:16%; height:18%; background: linear-gradient(180deg, #704c30 0%, #402818 100%); border-radius: 10% 10% 6% 6% / 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform-origin: bottom center; animation: tq1-chair 6s ease-in-out infinite alternate; }
.scn-thirst-without-quality .figure    { position:absolute; bottom:30%; left:30%; width:12%; height:18%; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tq1-figure 5s ease-in-out infinite; }
.scn-thirst-without-quality .lamp      { position:absolute; top:2%; right:40%; width:12%; height:18%; background: linear-gradient(180deg, #d4b070 0%, #a88848 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 30px 6px rgba(200,160,60,.4); animation: tq1-lamp 4s ease-in-out infinite alternate; }

@keyframes tq1-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tq1-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes tq1-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tq1-figure { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 50% { transform: translateY(-2px) rotate(2deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(-1deg) scaleY(0.98) } }
@keyframes tq1-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 4px rgba(200,160,60,.3) } 50% { opacity:1; box-shadow: 0 0 40px 10px rgba(200,160,60,.5) } 100% { opacity:0.8; box-shadow: 0 0 25px 6px rgba(200,160,60,.35) } }

/* one block per scene id. Append to style.css. */
.scn-poet-exclusion-reason { background: linear-gradient(180deg, #1a1412 0%, #2b221f 40%, #3a2f2a 100%), radial-gradient(ellipse at 30% 60%, #2b1e1a 0%, transparent 70%); }
.scn-poet-exclusion-reason .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1412 0%, #0f0b0a 100%); animation: per-bg 12s ease-in-out infinite alternate; }
.scn-poet-exclusion-reason .desk { position:absolute; bottom:18%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:0 0 6px 6px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: per-desk 8s ease-in-out infinite; }
.scn-poet-exclusion-reason .book { position:absolute; bottom:27%; left:35%; width:20%; height:12%; background: linear-gradient(135deg, #d8c8a0 0%, #b8a080 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(-4deg); animation: per-book 4s ease-in-out infinite; }
.scn-poet-exclusion-reason .candle { position:absolute; bottom:30%; left:58%; width:8px; height:5%; background: linear-gradient(180deg, #e8c060 0%, #b08a30 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,60,.5); animation: per-candle 1.5s ease-in-out infinite alternate; }
.scn-poet-exclusion-reason .figure { position:absolute; bottom:25%; left:22%; width:12%; height:25%; background: linear-gradient(180deg, #1a1615 0%, #0d0b0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: per-figure 5s ease-in-out infinite; }
.scn-poet-exclusion-reason .quill { position:absolute; bottom:28%; left:32%; width:6px; height:15%; background: linear-gradient(180deg, #b8a090 0%, #6a5a50 100%); border-radius: 90% 10% 10% 90% / 50% 50% 50% 50%; transform: rotate(-30deg); animation: per-quill 3s ease-in-out infinite; }
@keyframes per-bg { 0%,100% { opacity:.7 } 50% { opacity:.85 } }
@keyframes per-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes per-book { 0%,100% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes per-candle { 0% { opacity:.8; box-shadow:0 0 12px 3px rgba(200,160,60,.4) } 50% { opacity:1; box-shadow:0 0 28px 8px rgba(200,160,60,.6) } 100% { opacity:.9; box-shadow:0 0 16px 4px rgba(200,160,60,.45) } }
@keyframes per-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes per-quill { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-2px) } }

.scn-ridiculous-comedy-effect { background: linear-gradient(180deg, #1a1410 0%, #2a1e1a 40%, #3a2a24 100%), radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 70%); }
.scn-ridiculous-comedy-effect .curtain-left { position:absolute; top:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #5e2a1d 0%, #4a1e14 100%); border-radius:0 0 40% 0; animation: rce-curtain 10s ease-in-out infinite alternate; }
.scn-ridiculous-comedy-effect .curtain-right { position:absolute; top:0; right:0; width:35%; height:100%; background: linear-gradient(90deg, #4a1e14 0%, #5e2a1d 100%); border-radius:0 0 0 40%; animation: rce-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-ridiculous-comedy-effect .stage { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(0deg, #3a2a20 0%, #1e1410 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-ridiculous-comedy-effect .mask-comedy { position:absolute; bottom:35%; left:30%; width:12%; height:15%; background: radial-gradient(circle at 40% 30%, #c8b078 0%, #9a8040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: rce-mask 4s ease-in-out infinite; }
.scn-ridiculous-comedy-effect .mask-tragedy { position:absolute; bottom:32%; right:30%; width:12%; height:15%; background: radial-gradient(circle at 40% 30%, #6a5a6a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: rce-mask 4s ease-in-out infinite 2s; }
.scn-ridiculous-comedy-effect .figure-laugh { position:absolute; bottom:20%; left:50%; width:8%; height:15%; transform: translateX(-50%); background: linear-gradient(180deg, #1a1615 0%, #0d0b0a 100%); border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; animation: rce-figure 2.5s ease-in-out infinite; }
@keyframes rce-curtain { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }
@keyframes rce-mask { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-5deg) } }
@keyframes rce-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) scale(1.05) } }

.scn-poetry-exclusion-final { background: linear-gradient(180deg, #1a1816 0%, #2a2420 40%, #3a322c 100%), radial-gradient(ellipse at 50% 80%, #2a2420 0%, transparent 70%); }
.scn-poetry-exclusion-final .bg-temple { position:absolute; inset:0; background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%); animation: pef-bg 16s ease-in-out infinite alternate; }
.scn-poetry-exclusion-final .col-left { position:absolute; bottom:15%; left:15%; width:4%; height:60%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6px; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: pef-column 12s ease-in-out infinite; }
.scn-poetry-exclusion-final .col-right { position:absolute; bottom:15%; right:15%; width:4%; height:60%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%); border-radius:6px; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: pef-column 12s ease-in-out infinite reverse; }
.scn-poetry-exclusion-final .statue { position:absolute; bottom:20%; left:50%; width:14%; height:30%; transform: translateX(-50%); background: linear-gradient(180deg, #3a322c 0%, #1e1a16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pef-statue 8s ease-in-out infinite; }
.scn-poetry-exclusion-final .scroll { position:absolute; bottom:25%; left:36%; width:8%; height:12%; background: linear-gradient(135deg, #d0c0a8 0%, #b8a890 100%); border-radius:2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pef-scroll 5s ease-in-out infinite; }
.scn-poetry-exclusion-final .lyre { position:absolute; bottom:30%; right:30%; width:6%; height:14%; background: radial-gradient(ellipse at 50% 20%, #c8a860 0%, #8a6830 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: pef-lyre 3s ease-in-out infinite; }
@keyframes pef-bg { 0%,100% { opacity:.75 } 50% { opacity:.9 } }
@keyframes pef-column { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pef-statue { 0%,100% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-50%) translateY(-3px) } 50% { transform: translateX(-50%) translateY(0) } 75% { transform: translateX(-50%) translateY(-1px) } }
@keyframes pef-scroll { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } }
@keyframes pef-lyre { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } }

.scn-issue-great-stake { background: linear-gradient(180deg, #121010 0%, #221c1a 40%, #322a26 100%), radial-gradient(ellipse at 50% 20%, #1a1412 0%, transparent 60%); }
.scn-issue-great-stake .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, #0e0c0b 0%, #1a1614 100%); animation: igs-bg 14s ease-in-out infinite alternate; }
.scn-issue-great-stake .scales { position:absolute; bottom:30%; left:50%; width:30%; height:25%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 6px 6px 50% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: igs-scales 6s ease-in-out infinite; }
.scn-issue-great-stake .left-pan { position:absolute; bottom:18%; left:25%; width:12%; height:8%; background: radial-gradient(circle, #c8b080 0%, #8a7040 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: igs-pan 4s ease-in-out infinite; }
.scn-issue-great-stake .right-pan { position:absolute; bottom:18%; right:25%; width:12%; height:8%; background: radial-gradient(circle, #a08060 0%, #6a5040 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: igs-pan 4s ease-in-out infinite 2s; }
.scn-issue-great-stake .figure-virtue { position:absolute; bottom:25%; left:36%; width:10%; height:22%; background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: igs-figure 7s ease-in-out infinite; }
.scn-issue-great-stake .light-beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, rgba(200,180,140,.05) 50%, transparent 100%); filter: blur(12px); animation: igs-light 8s ease-in-out infinite; }
@keyframes igs-bg { 0%,100% { opacity:.7 } 50% { opacity:.85 } }
@keyframes igs-scales { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes igs-pan { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes igs-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes igs-light { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-breeding-humans-like-animals {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5c0 40%, #d4bfaa 100%), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%);
}
.scn-breeding-humans-like-animals .bg-walls {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #cbb9a4 0%, #dcc8b4 50%, #cbb9a4 100%);
  animation: bh-walls 15s ease-in-out infinite;
}
.scn-breeding-humans-like-animals .grid-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #a08060 0px, #a08060 2px, transparent 2px, transparent 40px),
              repeating-linear-gradient(0deg, #a08060 0px, #a08060 2px, transparent 2px, transparent 40px);
  background-blend-mode: overlay;
  opacity: 0.5;
}
.scn-breeding-humans-like-animals .cage-1,
.scn-breeding-humans-like-animals .cage-2,
.scn-breeding-humans-like-animals .cage-3 {
  position: absolute; bottom: 30%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%);
  border: 3px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: bh-cage 2s ease-in-out infinite alternate;
}
.scn-breeding-humans-like-animals .cage-1 { left: 15%; animation-delay: 0s; }
.scn-breeding-humans-like-animals .cage-2 { left: 42%; animation-delay: 0.3s; }
.scn-breeding-humans-like-animals .cage-3 { left: 70%; animation-delay: 0.6s; }
.scn-breeding-humans-like-animals .overseer {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: bh-overseer 4s ease-in-out infinite;
}
.scn-breeding-humans-like-animals .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,248,240,0.15) 0%, transparent 30%, rgba(255,220,180,0.1) 100%);
  transform: skewX(-10deg);
  animation: bh-light 6s ease-in-out infinite alternate;
}
.scn-breeding-humans-like-animals .shadow-bar {
  position: absolute; top: 20%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #a09080, transparent);
  opacity: 0.4;
  animation: bh-shadow 8s linear infinite;
}
@keyframes bh-walls {
  0%, 100% { opacity: 0.8; } 50% { opacity: 1; }
}
@keyframes bh-cage {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes bh-overseer {
  0% { transform: translateX(-50%) rotate(-2deg); } 30% { transform: translateX(-45%) rotate(2deg); } 70% { transform: translateX(-55%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bh-light {
  0% { opacity: 0.6; transform: skewX(-10deg) scaleX(1); } 50% { opacity: 1; transform: skewX(-5deg) scaleX(1.1); } 100% { opacity: 0.7; transform: skewX(-10deg) scaleX(0.95); }
}
@keyframes bh-shadow {
  0% { left: 0; width: 100%; } 50% { left: 20%; width: 60%; } 100% { left: 0; width: 100%; }
}

/* lottery-of-marriage */
.scn-lottery-of-marriage {
  background: linear-gradient(180deg, #f2e8d5 0%, #e2d4bc 40%, #c9b89a 100%), radial-gradient(ellipse at 50% 20%, #fff5e6 0%, transparent 70%);
}
.scn-lottery-of-marriage .bg-panel {
  position: absolute; inset: 10% 20% 15% 20%;
  background: linear-gradient(135deg, #cbb9a4 0%, #b8a48d 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: lm-panel 12s ease-in-out infinite;
}
.scn-lottery-of-marriage .bowl {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #d6c3a8 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: lm-bowl 10s ease-in-out infinite;
}
.scn-lottery-of-marriage .figure-left,
.scn-lottery-of-marriage .figure-right {
  position: absolute; bottom: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  animation: lm-figure 6s ease-in-out infinite;
}
.scn-lottery-of-marriage .figure-left { left: 25%; transform: rotate(10deg); animation-delay: 0s; }
.scn-lottery-of-marriage .figure-right { right: 25%; transform: rotate(-10deg); animation-delay: 3s; }
.scn-lottery-of-marriage .ticket {
  position: absolute; top: 35%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #f5e6d3 0%, #d4bfaa 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: lm-ticket 8s linear infinite;
}
.scn-lottery-of-marriage .t1 { left: 48%; animation-delay: 0s; }
.scn-lottery-of-marriage .t2 { left: 52%; animation-delay: 4s; }
.scn-lottery-of-marriage .shadow-floor {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: lm-shadow 9s ease-in-out infinite;
}
@keyframes lm-panel {
  0%, 100% { transform: scale(1); } 50% { transform: scale(0.98); }
}
@keyframes lm-bowl {
  0% { transform: translateX(-50%) rotate(-3deg); } 40% { transform: translateX(-50%) rotate(2deg); } 70% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes lm-figure {
  0% { transform: translateY(0) rotate(10deg); } 30% { transform: translateY(-2px) rotate(12deg); } 60% { transform: translateY(0) rotate(8deg); } 100% { transform: translateY(0) rotate(10deg); }
}
@keyframes lm-ticket {
  0% { top: 35%; opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { top: 70%; opacity: 0; }
}
@keyframes lm-shadow {
  0%, 100% { opacity: 0.6; } 50% { opacity: 0.9; }
}

/* prime-of-life-reproduction */
.scn-prime-of-life-reproduction {
  background: linear-gradient(180deg, #fdf6ee 0%, #efe2d0 50%, #dcc8b0 100%), radial-gradient(ellipse at 50% 40%, #fffcf5 0%, transparent 50%);
}
.scn-prime-of-life-reproduction .bg-wall {
  position: absolute; inset: 0 15% 0 15%;
  background: linear-gradient(180deg, #e6d5be 0%, #d4bfaa 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-prime-of-life-reproduction .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0d4f0 0%, #d4e8f8 100%);
  border-radius: 8px;
  border: 6px solid #8a7a6a;
  box-shadow: 0 0 20px rgba(200,220,255,0.3);
  animation: pl-window 10s ease-in-out infinite;
}
.scn-prime-of-life-reproduction .figure-man,
.scn-prime-of-life-reproduction .figure-woman {
  position: absolute; bottom: 20%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: pl-figure 8s ease-in-out infinite;
}
.scn-prime-of-life-reproduction .figure-man { left: 34%; transform: rotate(5deg); animation-delay: 0s; }
.scn-prime-of-life-reproduction .figure-woman { right: 34%; transform: rotate(-5deg); animation-delay: 2s; }
.scn-prime-of-life-reproduction .glow-core {
  position: absolute; top: 30%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffddaa 0%, #ffcc88 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 10px #ffddaa, 0 0 80px 20px rgba(255,200,100,0.3);
  animation: pl-glow 4s ease-in-out infinite alternate;
}
.scn-prime-of-life-reproduction .vase {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4bfaa 0%, #b8a48d 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: pl-vase 12s ease-in-out infinite;
}
.scn-prime-of-life-reproduction .curtain-left,
.scn-prime-of-life-reproduction .curtain-right {
  position: absolute; top: 0; bottom: 0; width: 40px;
  background: linear-gradient(90deg, #cbb9a4 0%, #e2d4bc 50%, #cbb9a4 100%);
  border-radius: 0 10px 10px 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.15);
  animation: pl-curtain 14s ease-in-out infinite;
}
.scn-prime-of-life-reproduction .curtain-left { left: 12%; border-radius: 0 10px 10px 0; transform-origin: left; }
.scn-prime-of-life-reproduction .curtain-right { right: 12%; border-radius: 10px 0 0 10px; transform-origin: right; animation-delay: 7s; }
@keyframes pl-window {
  0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.2); }
}
@keyframes pl-figure {
  0% { transform: translateY(0) rotate(5deg); } 40% { transform: translateY(-2px) rotate(7deg); } 80% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(5deg); }
}
@keyframes pl-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
}
@keyframes pl-vase {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes pl-curtain {
  0% { transform: scaleX(1); } 30% { transform: scaleX(0.95); } 70% { transform: scaleX(1.05); } 100% { transform: scaleX(1); }
}

/* community-wives-children */
.scn-community-wives-children {
  background: linear-gradient(180deg, #f2ebe0 0%, #e4d6c5 40%, #d0bfac 100%), radial-gradient(ellipse at 50% 30%, #fffcf5 0%, transparent 70%);
}
.scn-community-wives-children .bg-arch {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 10%;
  background: linear-gradient(180deg, #d8c8b4 0%, #c4b09a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: cw-arch 20s ease-in-out infinite;
}
.scn-community-wives-children .bench-back {
  position: absolute; bottom: 18%; left: 18%; right: 18%; height: 8px;
  background: linear-gradient(90deg, #a08060 0%, #c4b09a 50%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
}
.scn-community-wives-children .figure {
  position: absolute; bottom: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3e34 0%, #3a2e24 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 35% 35%;
  animation: cw-figure 15s ease-in-out infinite;
}
.scn-community-wives-children .f1 { left: 22%; animation-delay: 0s; }
.scn-community-wives-children .f2 { left: 38%; animation-delay: 3s; }
.scn-community-wives-children .f3 { left: 55%; animation-delay: 6s; }
.scn-community-wives-children .f4 { left: 72%; animation-delay: 9s; }
.scn-community-wives-children .light-dome {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,240,210,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cw-dome 25s ease-in-out infinite alternate;
}
.scn-community-wives-children .pillar {
  position: absolute; bottom: 10%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #d4bfaa 0%, #b8a48d 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  animation: cw-pillar 18s ease-in-out infinite;
}
.scn-community-wives-children .pillar.left { left: 12%; animation-delay: 0s; }
.scn-community-wives-children .pillar.right { right: 12%; animation-delay: 9s; }
@keyframes cw-arch {
  0%, 100% { transform: scale(1); } 50% { transform: scale(0.97); }
}
@keyframes cw-figure {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cw-dome {
  0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes cw-pillar {
  0% { transform: scaleY(1); } 40% { transform: scaleY(0.98); } 80% { transform: scaleY(1.02); } 100% { transform: scaleY(1); }
}

/* three-arts-using-making-imitation */
.scn-three-arts-using-making-imitation {
  background: linear-gradient(180deg, #1e1a15 0%, #2b2118 30%, #3a2e1f 70%, #1c1510 100%),
              radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%);
}
.scn-three-arts-using-making-imitation .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2b2319 0%, #1e1812 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ta-wall 15s ease-in-out infinite alternate;
}
.scn-three-arts-using-making-imitation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2e1f 0%, #1f1810 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-three-arts-using-making-imitation .artist {
  position: absolute; bottom: 20%; left: 28%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 6s ease-in-out infinite;
}
.scn-three-arts-using-making-imitation .user {
  position: absolute; bottom: 20%; left: 62%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #3e2e1e 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 7s ease-in-out infinite -1s;
}
.scn-three-arts-using-making-imitation .vase {
  position: absolute; bottom: 28%; left: 46%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4222 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: ta-vase 12s ease-in-out infinite alternate;
}
.scn-three-arts-using-making-imitation .tool {
  position: absolute; bottom: 22%; left: 36%; width: 4px; height: 20px;
  background: #6a4a2a;
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: ta-tool 8s ease-in-out infinite;
}
.scn-three-arts-using-making-imitation .lamp {
  position: absolute; bottom: 68%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #e0b080 0%, #b08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 24px 6px #b08040, 0 0 48px 12px rgba(176,128,64,.4);
  animation: ta-lamp 4s ease-in-out infinite alternate;
}
.scn-three-arts-using-making-imitation .shadow {
  position: absolute; bottom: 0; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: ta-shadow 10s ease-in-out infinite alternate;
}
@keyframes ta-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes ta-figure {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ta-vase {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
}
@keyframes ta-tool {
  0%,100% { transform: rotate(-20deg); }
  50% { transform: rotate(-10deg); }
}
@keyframes ta-lamp {
  0% { box-shadow: 0 0 15px 3px #b08040, 0 0 30px 8px rgba(176,128,64,.3); opacity: .8; }
  50% { box-shadow: 0 0 30px 8px #d0a060, 0 0 60px 16px rgba(208,160,96,.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.35); opacity: .9; }
}
@keyframes ta-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .7; }
  100% { transform: scaleX(0.9); opacity: .4; }
}

/* imitation-play-sport */
.scn-imitation-play-sport {
  background: linear-gradient(180deg, #1a1512 0%, #2a1f18 30%, #3a2a1e 70%, #1c1410 100%),
              radial-gradient(ellipse at 50% 50%, #3a2518 0%, transparent 60%);
}
.scn-imitation-play-sport .curtain-left {
  position: absolute; top: 5%; left: 0; width: 30%; height: 90%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%);
  border-radius: 0 40% 40% 0 / 0 30% 30% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,.5);
  animation: ps-curtain 8s ease-in-out infinite alternate;
}
.scn-imitation-play-sport .curtain-right {
  position: absolute; top: 5%; right: 0; width: 30%; height: 90%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%);
  border-radius: 40% 0 0 40% / 30% 0 0 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: ps-curtain 8s ease-in-out infinite alternate -2s;
}
.scn-imitation-play-sport .stage {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 70%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
}
.scn-imitation-play-sport .mask-tragic {
  position: absolute; bottom: 50%; left: 38%; width: 28px; height: 32px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2214 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: ps-mask 5s ease-in-out infinite;
}
.scn-imitation-play-sport .mask-comic {
  position: absolute; bottom: 50%; right: 38%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: ps-mask 6s ease-in-out infinite -1s;
}
.scn-imitation-play-sport .actor {
  position: absolute; bottom: 30%; left: 46%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ps-actor 4s ease-in-out infinite;
}
.scn-imitation-play-sport .torch {
  position: absolute; bottom: 65%; left: 48%; width: 6px; height: 16px;
  background: #b08040;
  box-shadow: 0 0 20px 6px #d0a060;
  border-radius: 2px;
  animation: ps-torch 3s ease-in-out infinite alternate;
}
@keyframes ps-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(-4px); }
}
@keyframes ps-mask {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
}
@keyframes ps-actor {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ps-torch {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: .8; transform: scaleY(0.95); }
}

/* imitation-illusion-sight */
.scn-imitation-illusion-sight {
  background: linear-gradient(180deg, #121018 0%, #1a1620 30%, #251e2a 70%, #0e0c12 100%),
              radial-gradient(ellipse at 50% 60%, #2a2232 0%, transparent 60%);
}
.scn-imitation-illusion-sight .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #18141e 0%, #100c14 100%);
  animation: il-fade 12s ease-in-out infinite alternate;
}
.scn-imitation-illusion-sight .mirror-frame {
  position: absolute; bottom: 25%; left: 30%; right: 30%; top: 25%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6);
  animation: il-mirror 8s ease-in-out infinite alternate;
}
.scn-imitation-illusion-sight .mirror-glass {
  position: absolute; bottom: 28%; left: 33%; right: 33%; top: 28%;
  background: radial-gradient(ellipse, #1a1a2a 0%, #0a0a18 100%);
  border-radius: 8%;
  box-shadow: inset 0 0 20px rgba(100,100,200,.1);
  animation: il-glass 10s ease-in-out infinite;
}
.scn-imitation-illusion-sight .shadow-self {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(200,200,240,.2) 0%, rgba(150,150,200,.05) 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: il-self 6s ease-in-out infinite;
}
.scn-imitation-illusion-sight .light-beam {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, rgba(240,220,200,.15) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: il-beam 4s ease-in-out infinite alternate;
}
.scn-imitation-illusion-sight .distortion {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 8px;
  background: rgba(200,180,255,.1);
  border-radius: 50%;
  filter: blur(3px);
  animation: il-ripple 3s ease-in-out infinite;
}
@keyframes il-fade {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes il-mirror {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes il-glass {
  0%,100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes il-self {
  0%,100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(0.98); }
}
@keyframes il-beam {
  0% { opacity: .3; transform: rotate(12deg) translateX(-2px); }
  50% { opacity: .7; transform: rotate(18deg) translateX(2px); }
  100% { opacity: .4; transform: rotate(14deg) translateX(0); }
}
@keyframes il-ripple {
  0%,100% { transform: scale(1) translateY(0); opacity: .2; }
  50% { transform: scale(2) translateY(-3px); opacity: .5; }
}

/* poetry-harmful-effect */
.scn-poetry-harmful-effect {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 30%, #382822 70%, #1c1410 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a22 0%, transparent 60%);
}
.scn-poetry-harmful-effect .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-poetry-harmful-effect .inkwell {
  position: absolute; bottom: 22%; left: 40%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ph-ink 6s ease-in-out infinite;
}
.scn-poetry-harmful-effect .poet {
  position: absolute; bottom: 20%; left: 48%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1e1a 0%, #140e0c 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ph-poet 5s ease-in-out infinite;
}
.scn-poetry-harmful-effect .vines {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(45deg, #3a2a1a 0px, #2a1a0e 4px, transparent 4px, transparent 8px);
  border-radius: 60% 40% 20% 80% / 50% 70% 30% 50%;
  filter: blur(1px);
  animation: ph-vines 10s ease-in-out infinite alternate;
}
.scn-poetry-harmful-effect .weeping-muse {
  position: absolute; bottom: 60%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ph-muse 7s ease-in-out infinite;
}
.scn-poetry-harmful-effect .scroll {
  position: absolute; bottom: 16%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ph-scroll 8s ease-in-out infinite;
}
.scn-poetry-harmful-effect .candle {
  position: absolute; bottom: 18%; left: 35%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #b08040 0%, #8a5a2a 100%);
  border-radius: 1px;
  box-shadow: 0 -4px 12px 2px #d0a060;
  animation: ph-candle 4s ease-in-out infinite alternate;
}
.scn-poetry-harmful-effect .teardrop {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 6px;
  background: rgba(180,160,140,.3);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: ph-tear 3s ease-in-out infinite;
}
@keyframes ph-ink {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes ph-poet {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ph-vines {
  0% { transform: scaleY(1) translateY(0); opacity: .6; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: .8; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: .5; }
}
@keyframes ph-muse {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
}
@keyframes ph-scroll {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes ph-candle {
  0% { box-shadow: 0 -4px 12px 2px #d0a060; opacity: .8; }
  50% { box-shadow: 0 -6px 18px 4px #e0b070; opacity: 1; }
  100% { box-shadow: 0 -3px 8px 1px #c09050; opacity: .7; }
}
@keyframes ph-tear {
  0%,100% { transform: translateY(0) scale(1); opacity: .3; }
  50% { transform: translateY(8px) scale(0.8); opacity: .6; }
}

.scn-god-good-only {
  background:
    linear-gradient(180deg, #1f1612 0%, #2a1e1a 50%, #1a1210 100%),
    radial-gradient(ellipse at 50% 80%, #4a2e22 0%, transparent 70%);
}
.scn-god-good-only .desk-bg {
  position: absolute;
  bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e18 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sc1-desk 16s ease-in-out infinite alternate;
}
.scn-god-good-only .book {
  position: absolute;
  bottom: 22%; left: 40%; width: 130px; height: 85px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3828 100%);
  border-radius: 4% 4% 12% 12% / 6% 6% 10% 10%;
  transform: rotate(-2deg) scale(0.95);
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
  animation: sc1-book 14s ease-in-out infinite;
}
.scn-god-good-only .candle {
  position: absolute;
  bottom: 38%; left: 62%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 40%, #a89878 100%);
  border-radius: 20%;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: sc1-candle 12s ease-in-out infinite;
}
.scn-god-good-only .flame {
  position: absolute;
  bottom: 68%; left: 62.2%; width: 10px; height: 18px;
  background: radial-gradient(ellipse 60% 80% at 50% 20%, #ffea80 0%, #f0b048 50%, #c06030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 0 12px 6px #f0b048, 0 0 24px 12px rgba(240,176,72,0.4);
  animation: sc1-flame 3s ease-in-out infinite alternate;
}
.scn-god-good-only .hand {
  position: absolute;
  bottom: 18%; left: 30%; width: 38px; height: 48px;
  background: linear-gradient(180deg, #c8a880 0%, #a88868 100%);
  border-radius: 60% 60% 40% 40% / 50% 50% 50% 50%;
  transform: rotate(10deg);
  animation: sc1-hand 8s ease-in-out infinite;
}
.scn-god-good-only .parchment {
  position: absolute;
  bottom: 15%; left: 36%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #ece0c0 0%, #d4c8a8 100%);
  border-radius: 4%;
  transform: rotate(-4deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sc1-parchment 20s ease-in-out infinite;
}
.scn-god-good-only .ambient-glow {
  position: absolute;
  bottom: 30%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(240,200,120,0.25) 0%, transparent 70%);
  filter: blur(30px);
  animation: sc1-ambient 12s ease-in-out infinite alternate;
}
@keyframes sc1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc1-book { 0%,100% { transform: rotate(-2deg) scale(0.95); } 50% { transform: rotate(-1deg) scale(1); } }
@keyframes sc1-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sc1-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.85; } 50% { transform: scaleY(1.12) rotate(0deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(2deg); opacity: 0.9; } }
@keyframes sc1-hand { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } }
@keyframes sc1-parchment { 0%,100% { transform: rotate(-4deg); } 50% { transform: rotate(-6deg); } }
@keyframes sc1-ambient { 0% { opacity: 0.6; transform: translate(-50%,-50%) scale(1); } 50% { opacity: 0.9; transform: translate(-50%,-50%) scale(1.2); } 100% { opacity: 0.7; transform: translate(-50%,-50%) scale(0.95); } }

.scn-change-by-self-or-other {
  background:
    linear-gradient(180deg, #1c1512 0%, #2a201a 50%, #1a1410 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a20 0%, transparent 60%);
}
.scn-change-by-self-or-other .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2e26 0%, #2e241e 100%);
  border-radius: 0 0 30% 20% / 0 0 12% 8%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-change-by-self-or-other .window {
  position: absolute;
  top: 12%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 100%);
  border: 6px solid #2e241e;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 0 2px #0a0806;
  animation: sc2-window 20s ease-in-out infinite;
}
.scn-change-by-self-or-other .table {
  position: absolute;
  bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: sc2-table 18s ease-in-out infinite;
}
.scn-change-by-self-or-other .pot {
  position: absolute;
  bottom: 28%; left: 45%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3828 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: sc2-pot 14s ease-in-out infinite;
}
.scn-change-by-self-or-other .candle {
  position: absolute;
  bottom: 38%; left: 48%; width: 14px; height: 45px;
  background: linear-gradient(180deg, #e0d0a8 0%, #c0b090 40%, #a09078 100%);
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: sc2-candle 12s ease-in-out infinite;
}
.scn-change-by-self-or-other .flame {
  position: absolute;
  bottom: 68%; left: 48.3%; width: 8px; height: 16px;
  background: radial-gradient(ellipse 60% 80% at 50% 20%, #ffe680 0%, #f0a840 50%, #c05028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 0 10px 4px #f0a840, 0 0 20px 8px rgba(240,168,64,0.3);
  animation: sc2-flame 3s ease-in-out infinite alternate;
}
.scn-change-by-self-or-other .soft-glow {
  position: absolute;
  bottom: 40%; left: 45%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(240,200,80,0.2) 0%, transparent 70%);
  filter: blur(30px);
  animation: sc2-glow 15s ease-in-out infinite alternate;
}
@keyframes sc2-window { 0%,100% { opacity:0.6; transform:translate(0,0); } 50% { opacity:1; transform:translate(2px,-2px); } }
@keyframes sc2-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes sc2-pot { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes sc2-candle { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes sc2-flame { 0% { transform:scaleY(1) rotate(-2deg); opacity:0.8; } 50% { transform:scaleY(1.15) rotate(0deg); opacity:1; } 100% { transform:scaleY(0.92) rotate(2deg); opacity:0.85; } }
@keyframes sc2-glow { 0% { opacity:0.5; transform:translate(-50%,-50%) scale(1); } 50% { opacity:0.85; transform:translate(-50%,-50%) scale(1.3); } 100% { opacity:0.6; transform:translate(-50%,-50%) scale(0.9); } }

.scn-composite-things {
  background:
    linear-gradient(180deg, #1e1612 0%, #2c201a 50%, #1a120e 100%),
    radial-gradient(ellipse at 50% 50%, #302418 0%, transparent 70%);
}
.scn-composite-things .wall-bg {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1e18 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5);
}
.scn-composite-things .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e221c 0%, #1e1612 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-composite-things .bookshelf {
  position: absolute;
  bottom: 40%; left: 8%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
  animation: sc3-shelf 20s ease-in-out infinite;
}
.scn-composite-things .chair {
  position: absolute;
  bottom: 25%; left: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3828 0%, #2e1e14 100%);
  border-radius: 10% 10% 8% 8% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sc3-chair 16s ease-in-out infinite;
}
.scn-composite-things .table {
  position: absolute;
  bottom: 18%; left: 45%; width: 28%; height: 7%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1e 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: sc3-table 18s ease-in-out infinite;
}
.scn-composite-things .lamp {
  position: absolute;
  bottom: 38%; left: 60%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a888 40%, #a09078 100%);
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: sc3-lamp 12s ease-in-out infinite;
}
.scn-composite-things .lamp-glow {
  position: absolute;
  bottom: 40%; left: 60%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(240,200,120,0.25) 0%, transparent 70%);
  filter: blur(30px);
  animation: sc3-glow 14s ease-in-out infinite alternate;
}
@keyframes sc3-shelf { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sc3-chair { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes sc3-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes sc3-lamp { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes sc3-glow { 0% { opacity:0.5; transform:translate(-50%,-50%) scale(1); } 50% { opacity:0.9; transform:translate(-50%,-50%) scale(1.25); } 100% { opacity:0.6; transform:translate(-50%,-50%) scale(0.95); } }

.scn-god-changes-only-for-worse {
  background:
    linear-gradient(180deg, #1c1412 0%, #2a1e1a 50%, #160e0c 100%),
    radial-gradient(ellipse at 70% 40%, #3a2820 0%, transparent 60%);
}
.scn-god-changes-only-for-worse .doorway {
  position: absolute;
  bottom: 20%; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, #2e221c 0%, #1e1612 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: sc4-doorway 18s ease-in-out infinite;
}
.scn-god-changes-only-for-worse .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-god-changes-only-for-worse .figure-silhouette {
  position: absolute;
  bottom: 20%; left: 52%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0e0a08 0%, #060404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: sc4-figure 12s ease-in-out infinite;
}
.scn-god-changes-only-for-worse .light-beam {
  position: absolute;
  bottom: 35%; left: 50%; width: 8%; height: 40%;
  background: linear-gradient(180deg, rgba(230,190,130,0.3) 0%, transparent 100%);
  clip-path: polygon(50% 0, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: sc4-beam 14s ease-in-out infinite alternate;
}
.scn-god-changes-only-for-worse .ambient-glow {
  position: absolute;
  bottom: 30%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(230,190,110,0.15) 0%, transparent 70%);
  filter: blur(30px);
  animation: sc4-ambient 20s ease-in-out infinite alternate;
}
.scn-god-changes-only-for-worse .shadow {
  position: absolute;
  bottom: 18%; left: 48%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: sc4-shadow 12s ease-in-out infinite;
}
@keyframes sc4-doorway { 0%,100% { transform:translateX(0); } 50% { transform:translateX(2px); } }
@keyframes sc4-figure { 0%,100% { transform:scaleX(-1) translateX(0); } 50% { transform:scaleX(-1) translateX(-4px); } }
@keyframes sc4-beam { 0% { opacity:0.4; transform:rotate(-1deg); } 50% { opacity:0.8; transform:rotate(1deg); } 100% { opacity:0.5; transform:rotate(0deg); } }
@keyframes sc4-ambient { 0% { opacity:0.4; transform:translate(-50%,-50%) scale(1); } 50% { opacity:0.7; transform:translate(-50%,-50%) scale(1.2); } 100% { opacity:0.5; transform:translate(-50%,-50%) scale(0.9); } }
@keyframes sc4-shadow { 0%,100% { transform:scaleX(1); opacity:0.6; } 50% { transform:scaleX(0.8); opacity:0.8; } }

/* ===== origin-of-oligarchy ===== */
.scn-origin-of-oligarchy {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a878 100%),
              radial-gradient(ellipse at 50% 0, #fff8e0 0%, transparent 70%);
}
.scn-origin-of-oligarchy .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d4b4 0%, #d4b890 100%);
}
.scn-origin-of-oligarchy .window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #ffe8c0, #ffd8a0);
  border: 4px solid #a08060; border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.5);
}
.scn-origin-of-oligarchy .desk {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #a08060, #806040);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-origin-of-oligarchy .figure {
  position: absolute; bottom: 22%; left: 42%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oo-figure 6s ease-in-out infinite;
}
.scn-origin-of-oligarchy .lamp {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c0a060, #a08040);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px #ffd080;
  animation: oo-lamp 4s ease-in-out infinite alternate;
}
.scn-origin-of-oligarchy .coin {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd700, #b8860b);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: oo-coin 8s ease-in-out infinite;
}
.scn-origin-of-oligarchy .glow-window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.3), transparent 70%);
  pointer-events: none;
  animation: oo-glow-window 12s ease-in-out infinite alternate;
}
@keyframes oo-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes oo-lamp {
  0% { box-shadow: 0 0 15px 5px #ffd080; }
  50% { box-shadow: 0 0 25px 10px #ffe8a0; }
  100% { box-shadow: 0 0 18px 6px #ffd080; }
}
@keyframes oo-coin {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes oo-glow-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* ===== evils-of-oligarchy ===== */
.scn-evil-of-oligarchy {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a4a, transparent 70%);
}
.scn-evil-of-oligarchy .sky-storm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a, #0a1a2a);
  animation: eo-sky 15s ease-in-out infinite alternate;
}
.scn-evil-of-oligarchy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a1a2a, #050a1a);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: eo-sea 8s ease-in-out infinite alternate;
}
.scn-evil-of-oligarchy .ship {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: eo-ship 6s ease-in-out infinite;
}
.scn-evil-of-oligarchy .sail {
  position: absolute; bottom: 52%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: eo-sail 4s ease-in-out infinite alternate;
}
.scn-evil-of-oligarchy .pilot {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 28px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eo-pilot 5s ease-in-out infinite;
}
.scn-evil-of-oligarchy .wave-front {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent, rgba(10,20,40,0.8), transparent);
  border-radius: 50% 50% 0 0;
  animation: eo-wave 3s ease-in-out infinite;
}
.scn-evil-of-oligarchy .lightning {
  position: absolute; top: 5%; left: 40%; width: 4px; height: 30px;
  background: white;
  box-shadow: 0 0 20px 10px rgba(200,220,255,0.5);
  opacity: 0;
  animation: eo-lightning 10s linear infinite;
}
@keyframes eo-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes eo-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes eo-ship {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-3deg) translateY(2px); }
  75% { transform: rotate(3deg) translateY(2px); }
}
@keyframes eo-sail {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes eo-pilot {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes eo-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.2); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes eo-lightning {
  0%, 92%, 100% { opacity: 0; }
  93% { opacity: 1; }
  94% { opacity: 0.2; }
  95% { opacity: 1; }
  96% { opacity: 0; }
}

/* ===== oligarchical-man ===== */
.scn-oligarchical-man {
  background: linear-gradient(180deg, #1a1510 0%, #2a1e14 50%, #1a1510 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a, transparent 70%);
}
.scn-oligarchical-man .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e14, #1a1510);
}
.scn-oligarchical-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1510, #0f0b08);
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-oligarchical-man .lamp-dim {
  position: absolute; top: 30%; left: 20%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c08040, #a06020);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(192,128,64,0.3);
  animation: om-lamp 8s ease-in-out infinite alternate;
}
.scn-oligarchical-man .figure-walk {
  position: absolute; bottom: 25%; left: 30%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: om-figure 10s ease-in-out infinite;
}
.scn-oligarchical-man .pillar-fallen {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-30deg); transform-origin: bottom left;
  animation: om-pillar 12s ease-in-out infinite alternate;
}
.scn-oligarchical-man .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4), transparent);
  animation: om-shadow 10s ease-in-out infinite;
}
@keyframes om-lamp {
  0% { box-shadow: 0 0 10px 2px rgba(192,128,64,0.2); }
  50% { box-shadow: 0 0 20px 8px rgba(192,128,64,0.4); }
  100% { box-shadow: 0 0 12px 3px rgba(192,128,64,0.25); }
}
@keyframes om-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(30px) rotate(-2deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes om-pillar {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes om-shadow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(20px) scaleX(1.2); }
  100% { transform: translateX(0) scaleX(1); }
}

/* ===== origin-of-democracy ===== */
.scn-origin-of-democracy {
  background: linear-gradient(180deg, #fff0d0 0%, #ffe0b0 50%, #f5d8a0 100%),
              radial-gradient(ellipse at 50% 0, #fff8e0 0%, transparent 70%);
}
.scn-origin-of-democracy .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #ffe8c0, #ffd8a0);
}
.scn-origin-of-democracy .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #a08060, #806040);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-origin-of-democracy .coins {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd700, #b8860b);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: od-coin 6s ease-in-out infinite;
}
.scn-origin-of-democracy .figure-youth {
  position: absolute; bottom: 22%; left: 35%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: od-figure 8s ease-in-out infinite;
}
.scn-origin-of-democracy .glow-sparkle {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.4), transparent 70%);
  pointer-events: none;
  animation: od-glow 10s ease-in-out infinite alternate;
}
.scn-origin-of-democracy .light-beam {
  position: absolute; top: 8%; left: 35%; width: 60px; height: 6px;
  background: linear-gradient(90deg, transparent, rgba(255,240,200,0.5), transparent);
  transform: rotate(-20deg);
  animation: od-beam 5s ease-in-out infinite alternate;
}
@keyframes od-coin {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(10deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes od-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes od-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes od-beam {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}

/* all-poetry-comprehended */
.scn-all-poetry-comprehended {
  background: linear-gradient(180deg, #2c1e14 0%, #1a110a 50%, #0d0805 100%),
              radial-gradient(ellipse at 30% 80%, #3a2518 0%, transparent 70%);
}
.scn-all-poetry-comprehended .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3d2b1c 0%, #23170e 100%); }
.scn-all-poetry-comprehended .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2c1e14 0%, #120c07 100%); border-radius: 60% 60% 0 0 / 20% 20% 0 0; }
.scn-all-poetry-comprehended .desk { position:absolute; bottom:28%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #5a3d28 0%, #3a2518 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-all-poetry-comprehended .scroll-a { position:absolute; bottom:36%; left:38%; width:20%; height:6%; background: linear-gradient(90deg, #c8a87c 0%, #e8c8a0 20%, #c8a87c 40%, #b89870 100%); border-radius: 12px; transform: rotate(-5deg); animation: apc-scroll 12s ease-in-out infinite alternate; }
.scn-all-poetry-comprehended .scroll-b { position:absolute; bottom:35%; left:55%; width:18%; height:5%; background: linear-gradient(90deg, #b89870 0%, #d8b890 20%, #b89870 40%, #a88860 100%); border-radius: 10px; transform: rotate(3deg); animation: apc-scroll 12s ease-in-out infinite alternate-reverse; }
.scn-all-poetry-comprehended .lamp { position:absolute; bottom:30%; left:48%; width:4%; height:18%; background: linear-gradient(180deg, #6a4a30 0%, #4a3018 100%); border-radius: 20% 20% 30% 30%; }
.scn-all-poetry-comprehended .lamp::after { content:''; position:absolute; top:-5%; left:50%; width:12px; height:12px; margin-left:-6px; background: radial-gradient(circle, #f0b060 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,.3); animation: apc-glow 4s ease-in-out infinite alternate; }
.scn-all-poetry-comprehended .figure-shadow { position:absolute; bottom:30%; left:36%; width:28%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(10,5,2,.7) 0%, transparent 70%); border-radius: 50%; animation: apc-shift 8s ease-in-out infinite alternate; }
.scn-all-poetry-comprehended .dust { position:absolute; inset:0; background: radial-gradient(circle at 50% 80%, rgba(200,170,120,.05) 0%, transparent 70%); mix-blend-mode: screen; pointer-events:none; animation: apc-dust 30s linear infinite; }
@keyframes apc-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes apc-glow { 0% { opacity:.7; box-shadow: 0 0 10px 3px #b07030, 0 0 20px 6px rgba(176,112,48,.2); } 50% { opacity:1; box-shadow: 0 0 30px 10px #e0a050, 0 0 60px 20px rgba(224,160,80,.4); } 100% { opacity:.8; box-shadow: 0 0 15px 5px #b07030, 0 0 30px 10px rgba(176,112,48,.3); } }
@keyframes apc-shift { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(1.02); } 100% { transform: translateX(-4px) scale(0.98); } }
@keyframes apc-dust { 0% { transform: translateY(0) opacity:0; } 50% { transform: translateY(-20px) opacity:0.6; } 100% { transform: translateY(-40px) opacity:0; } }

/* one-man-one-part */
.scn-one-man-one-part {
  background: linear-gradient(180deg, #1f1510 0%, #100a05 50%, #080402 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a10 0%, transparent 70%);
}
.scn-one-man-one-part .stage-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c1a10 0%, #160c06 100%); }
.scn-one-man-one-part .stage-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); border-radius: 50% 50% 0 0 / 15% 15% 0 0; }
.scn-one-man-one-part .chair { position:absolute; bottom:30%; left:50%; width:12%; height:24%; margin-left:-6%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 8% 8% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); transform-origin: bottom center; animation: omp-chair 6s ease-in-out infinite alternate; }
.scn-one-man-one-part .figure-seated { position:absolute; bottom:32%; left:50%; width:14%; height:30%; margin-left:-7%; background: linear-gradient(180deg, #1a100a 0%, #0d0804 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: omp-figure 8s ease-in-out infinite; }
.scn-one-man-one-part .spotlight { position:absolute; bottom:0; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(220,180,120,.15) 0%, transparent 70%); mix-blend-mode: screen; pointer-events:none; animation: omp-light 10s ease-in-out infinite alternate; }
.scn-one-man-one-part .book { position:absolute; bottom:35%; left:54%; width:6%; height:8%; background: linear-gradient(180deg, #5a3d28 0%, #3a2518 100%); border-radius: 0 8% 8% 0; transform: rotate(-10deg); transform-origin: left center; animation: omp-book 7s ease-in-out infinite; }
.scn-one-man-one-part .shadow-pool { position:absolute; bottom:28%; left:44%; width:16%; height:6%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.8) 0%, transparent 80%); border-radius: 50%; }
@keyframes omp-chair { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes omp-figure { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-2px) rotate(-2deg) scaleX(0.98); } 75% { transform: translateY(-1px) rotate(1deg) scaleX(1.01); } 100% { transform: translateY(0) rotate(0) scaleX(1); } }
@keyframes omp-light { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes omp-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }

/* banishment-of-pantomimic */
.scn-banishment-of-pantomimic {
  background: linear-gradient(180deg, #1e130c 0%, #120a05 40%, #080402 100%),
              radial-gradient(ellipse at 70% 50%, #2a1a0e 0%, transparent 70%);
}
.scn-banishment-of-pantomimic .wall-dark { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-right: 2px solid #3a2518; }
.scn-banishment-of-pantomimic .door { position:absolute; bottom:10%; left:20%; width:18%; height:55%; background: linear-gradient(180deg, #3a2518 0%, #2a1a0e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); transform: scaleX(0.6); transform-origin: left center; animation: bop-door 15s ease-in-out infinite alternate; }
.scn-banishment-of-pantomimic .figure-departing { position:absolute; bottom:14%; right:40%; width:12%; height:35%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%; transform-origin: bottom center; animation: bop-walk 10s ease-in-out infinite; }
.scn-banishment-of-pantomimic .garland { position:absolute; bottom:42%; right:42%; width:14%; height:10%; background: radial-gradient(ellipse at 50% 50%, #b87860 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px 2px #b87860; animation: bop-garland 6s ease-in-out infinite alternate; }
.scn-banishment-of-pantomimic .myrrh-drop { position:absolute; bottom:38%; right:44%; width:3%; height:4%; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 50%; box-shadow: 0 0 6px 2px #a0461a; animation: bop-drop 4s ease-in-out infinite; }
.scn-banishment-of-pantomimic .road-stones { position:absolute; bottom:10%; right:30%; width:15%; height:4%; background: repeating-linear-gradient(90deg, #3a2518 0px, #2a1a0e 8px, #1a0e08 16px); border-radius: 50%; animation: bop-stones 20s linear infinite; }
.scn-banishment-of-pantomimic .lantern-glow { position:absolute; bottom:30%; right:28%; width:3%; height:14%; background: linear-gradient(180deg, #6a4a30 0%, #4a3018 100%); border-radius: 20%; }
.scn-banishment-of-pantomimic .lantern-glow::after { content:''; position:absolute; top:0; left:50%; width:8px; height:8px; margin-left:-4px; background: radial-gradient(circle, #e0a050 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 16px 6px #b07030; animation: bop-glow 3.5s ease-in-out infinite alternate; }
.scn-banishment-of-pantomimic .dust { position:absolute; inset:0; background: radial-gradient(circle at 80% 60%, rgba(200,170,120,.04) 0%, transparent 60%); mix-blend-mode: screen; pointer-events:none; animation: bop-dust 40s linear infinite; }
@keyframes bop-door { 0% { transform: scaleX(0.6) translateX(0); } 50% { transform: scaleX(0.65) translateX(5px); } 100% { transform: scaleX(0.6) translateX(0); } }
@keyframes bop-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(-8px) translateY(-2px) rotate(-2deg); } 80% { transform: translateX(-30px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-40px) translateY(0) rotate(0); } }
@keyframes bop-garland { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes bop-drop { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(10px) scale(0.8); opacity:.4; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes bop-stones { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes bop-glow { 0% { box-shadow: 0 0 10px 4px #b07030; } 50% { box-shadow: 0 0 25px 10px #e0a050; } 100% { box-shadow: 0 0 12px 5px #b07030; } }
@keyframes bop-dust { 0% { transform: translateY(0) opacity:.1; } 50% { transform: translateY(-30px) opacity:.4; } 100% { transform: translateY(-60px) opacity:.1; } }

/* music-and-song */
.scn-music-and-song {
  background: linear-gradient(180deg, #1e1a14 0%, #0f0c08 40%, #080604 100%),
              radial-gradient(ellipse at 50% 30%, #2a2218 0%, transparent 70%);
}
.scn-music-and-song .alcove { position:absolute; inset:20% 15% 10% 15%; border-radius: 50% 50% 0 0 / 30% 30% 0 0; background: linear-gradient(180deg, #1f1810 0%, #110c06 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-music-and-song .lyre { position:absolute; bottom:28%; left:30%; width:40%; height:18%; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mas-lyre 8s ease-in-out infinite alternate; }
.scn-music-and-song .lyre::before { content:''; position:absolute; bottom:20%; left:10%; width:80%; height:60%; border: 2px solid #6a4a30; border-radius: 50% 50% 0 0; background: transparent; }
.scn-music-and-song .figure-singer { position:absolute; bottom:20%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: mas-singer 10s ease-in-out infinite; }
.scn-music-and-song .music-note { position:absolute; width:6%; height:8%; background: radial-gradient(ellipse at 50% 30%, #c8a880 0%, transparent 70%); border-radius: 50% 50% 0 0; transform-origin: bottom center; }
.scn-music-and-song .note-1 { bottom:55%; left:30%; animation: mas-note-a 12s ease-in-out infinite; }
.scn-music-and-song .note-2 { bottom:50%; left:55%; animation: mas-note-b 14s ease-in-out infinite 2s; }
.scn-music-and-song .note-3 { bottom:60%; left:45%; animation: mas-note-c 10s ease-in-out infinite 4s; }
.scn-music-and-song .fretboard { position:absolute; bottom:18%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%); border-radius: 0 0 4px 4px; transform: rotate(20deg); transform-origin: top left; animation: mas-fret 5s ease-in-out infinite alternate; }
@keyframes mas-lyre { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes mas-singer { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 30% { transform: translateY(-2px) rotate(-1deg) scaleY(1.02); } 70% { transform: translateY(-1px) rotate(1deg) scaleY(0.98); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes mas-note-a { 0% { transform: translateY(0) scale(0.8); opacity:.6; } 50% { transform: translateY(-30px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(0.8); opacity:.6; } }
@keyframes mas-note-b { 0% { transform: translateY(0) rotate(0deg) scale(0.9); opacity:.5; } 50% { transform: translateY(-25px) rotate(10deg) scale(1.1); opacity:1; } 100% { transform: translateY(0) rotate(0) scale(0.9); opacity:.5; } }
@keyframes mas-note-c { 0% { transform: translateY(0) scale(0.7); opacity:.4; } 50% { transform: translateY(-35px) scale(1.3); opacity:.9; } 100% { transform: translateY(0) scale(0.7); opacity:.4; } }
@keyframes mas-fret { 0% { transform: rotate(20deg) translateX(0); } 100% { transform: rotate(25deg) translateX(5px); } }

.scn-herodicus-training-sick {
  background:
    linear-gradient(135deg, #d4c9b0 0%, #b8a58a 40%, #8a7456 100%),
    radial-gradient(ellipse at 30% 50%, #e8dcc8 0%, transparent 60%);
}
.scn-herodicus-training-sick .bg-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c9b0 100%); animation: hts1-wall 20s ease-in-out infinite alternate; }
.scn-herodicus-training-sick .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.3); }
.scn-herodicus-training-sick .window { position: absolute; top: 10%; right: 8%; width: 120px; height: 160px; background: linear-gradient(180deg, #fff9e6 0%, #f0e0c0 100%); border-radius: 6px; box-shadow: 0 0 40px 10px rgba(240,224,192,.6), inset 0 0 20px rgba(0,0,0,.1); animation: hts1-window 4s ease-in-out infinite alternate; }
.scn-herodicus-training-sick .bed { position: absolute; bottom: 32%; left: 15%; width: 160px; height: 60px; background: linear-gradient(180deg, #b0987a 0%, #8a7456 100%); border-radius: 10px 10px 6px 6px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-herodicus-training-sick .patient { position: absolute; bottom: 34%; left: 18%; width: 120px; height: 40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hts1-patient 2s ease-in-out infinite; }
.scn-herodicus-training-sick .cup { position: absolute; bottom: 38%; left: 60%; width: 20px; height: 28px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius: 2px 2px 4px 4px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: hts1-cup 1.5s ease-in-out infinite alternate; }
.scn-herodicus-training-sick .shadow-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 50%, rgba(0,0,0,0) 30%, rgba(0,0,0,.2) 70%); pointer-events: none; }
.scn-herodicus-training-sick .curtain { position: absolute; top: 0; left: 20%; width: 20px; height: 100%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 0 8px 8px 0; animation: hts1-curtain 6s ease-in-out infinite; }

@keyframes hts1-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hts1-window { 0% { transform: scaleY(1); box-shadow: 0 0 30px 8px rgba(240,224,192,.5) } 50% { transform: scaleY(1.02); box-shadow: 0 0 50px 15px rgba(240,224,192,.7) } 100% { transform: scaleY(.98); box-shadow: 0 0 35px 10px rgba(240,224,192,.4) } }
@keyframes hts1-patient { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes hts1-cup { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes hts1-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }

.scn-herodicus-lingering-death {
  background:
    linear-gradient(180deg, #b8a58a 0%, #8a7456 40%, #5a4a36 100%),
    radial-gradient(ellipse at 50% 20%, #d4c9b0 0%, transparent 60%);
}
.scn-herodicus-lingering-death .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); animation: hld2-bg 15s ease-in-out infinite; }
.scn-herodicus-lingering-death .platform { position: absolute; bottom: 25%; left: 20%; right: 20%; height: 20px; background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-herodicus-lingering-death .figure { position: absolute; bottom: 26%; left: 35%; width: 80px; height: 100px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hld2-figure 1.2s ease-in-out infinite; }
.scn-herodicus-lingering-death .light-beam { position: absolute; top: 0; left: 40%; width: 80px; height: 100%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.1) 40%, transparent 100%); transform: skewX(-10deg); filter: blur(4px); animation: hld2-beam 3s ease-in-out infinite alternate; }
.scn-herodicus-lingering-death .chain-left { position: absolute; bottom: 30%; left: 25%; width: 6px; height: 50px; background: #4a3a2a; border-radius: 2px; transform-origin: top center; animation: hld2-chain 2s ease-in-out infinite; }
.scn-herodicus-lingering-death .chain-right { position: absolute; bottom: 30%; right: 25%; width: 6px; height: 50px; background: #4a3a2a; border-radius: 2px; transform-origin: top center; animation: hld2-chain 2s ease-in-out infinite reverse; }
.scn-herodicus-lingering-death .shadow-pool { position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%); pointer-events: none; }

@keyframes hld2-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hld2-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg); height: 100px } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); height: 98px } 50% { transform: translateX(-2px) translateY(1px) rotate(-1deg); height: 102px } 75% { transform: translateX(6px) translateY(-1px) rotate(0); height: 99px } 100% { transform: translateX(0) translateY(0) rotate(-3deg); height: 100px } }
@keyframes hld2-beam { 0% { opacity:.7; transform: skewX(-10deg) scaleY(1) } 50% { opacity:1; transform: skewX(-12deg) scaleY(1.05) } 100% { opacity:.6; transform: skewX(-8deg) scaleY(.95) } }
@keyframes hld2-chain { 0% { transform: rotate(0) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-4deg) } }

.scn-carpenter-health-priority {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c4b098 40%, #8a7456 100%),
    radial-gradient(ellipse at 50% 70%, #d4c9b0 0%, transparent 60%);
}
.scn-carpenter-health-priority .workshop-wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #d4c9b0 0%, #b8a58a 100%); animation: chp3-wall 25s ease-in-out infinite alternate; }
.scn-carpenter-health-priority .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-carpenter-health-priority .workbench { position: absolute; bottom: 30%; left: 15%; width: 200px; height: 30px; background: linear-gradient(180deg, #b0987a 0%, #8a7456 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-carpenter-health-priority .carpenter { position: absolute; bottom: 32%; left: 20%; width: 60px; height: 90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chp3-carpenter 5s ease-in-out infinite; }
.scn-carpenter-health-priority .saw { position: absolute; bottom: 35%; left: 45%; width: 80px; height: 10px; background: linear-gradient(90deg, #6a5a44 0%, #4a3a2a 50%, #6a5a44 100%); border-radius: 4px; transform-origin: left center; animation: chp3-saw 3s ease-in-out infinite alternate; }
.scn-carpenter-health-priority .medicine-cup { position: absolute; bottom: 37%; left: 30%; width: 18px; height: 22px; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius: 2px 2px 4px 4px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: chp3-cup 8s ease-in-out infinite; }
.scn-carpenter-health-priority .window-light { position: absolute; top: 8%; left: 20%; width: 80px; height: 100px; background: linear-gradient(180deg, #fff9e6 0%, #f0e0c0 80%); border-radius: 8px; box-shadow: 0 0 30px 8px rgba(240,224,192,.5), inset 0 0 10px rgba(0,0,0,.1); }
.scn-carpenter-health-priority .dust-mote { position: absolute; top: 30%; left: 60%; width: 8px; height: 8px; background: rgba(200,180,160,.4); border-radius: 50%; filter: blur(3px); animation: chp3-dust 18s linear infinite; }

@keyframes chp3-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes chp3-carpenter { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(1px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes chp3-saw { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes chp3-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes chp3-dust { 0% { transform: translateX(0) translateY(0); opacity:.4 } 25% { transform: translateX(10px) translateY(-8px); opacity:.6 } 50% { transform: translateX(20px) translateY(-4px); opacity:.3 } 75% { transform: translateX(30px) translateY(-12px); opacity:.5 } 100% { transform: translateX(40px) translateY(0); opacity:.4 } }

.scn-rich-man-phocylides {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #b8a58a 40%, #8a7456 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-rich-man-phocylides .study-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b8a58a 0%, #8a7456 100%); }
.scn-rich-man-phocylides .study-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #5a4a36 0%, #3a2a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-rich-man-phocylides .armchair { position: absolute; bottom: 25%; left: 35%; width: 120px; height: 80px; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-rich-man-phocylides .rich-figure { position: absolute; bottom: 28%; left: 38%; width: 80px; height: 90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rmp4-figure 6s ease-in-out infinite; }
.scn-rich-man-phocylides .table-stand { position: absolute; bottom: 25%; right: 20%; width: 60px; height: 40px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-rich-man-phocylides .scroll { position: absolute; bottom: 30%; right: 22%; width: 60px; height: 8px; background: linear-gradient(90deg, #d4a070 0%, #b08050 100%); border-radius: 4px; transform-origin: left center; animation: rmp4-scroll 8s ease-in-out infinite; }
.scn-rich-man-phocylides .lamp { position: absolute; top: 15%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 10px rgba(208,160,112,.6); animation: rmp4-lamp 5s ease-in-out infinite alternate; }
.scn-rich-man-phocylides .curtain-ornate { position: absolute; top: 0; right: 5%; width: 30px; height: 100%; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius: 0 0 8px 8px; animation: rmp4-curtain 7s ease-in-out infinite; }

@keyframes rmp4-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes rmp4-scroll { 0% { transform: scaleX(1) } 50% { transform: scaleX(.9) } 100% { transform: scaleX(1) } }
@keyframes rmp4-lamp { 0% { box-shadow: 0 0 20px 5px rgba(208,160,112,.4); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(208,160,112,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(208,160,112,.5); opacity:.9 } }
@keyframes rmp4-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

.scn-true-philosopher-described {
  background:
    linear-gradient(180deg, #ebe4d8 0%, #d4c9b8 40%, #b8a993 100%),
    radial-gradient(ellipse at 50% 0%, #fef6e6 0%, transparent 60%);
}
.scn-true-philosopher-described .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9c8a74 0%, #7b6b58 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-true-philosopher-described .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c5aa 100%);
}
.scn-true-philosopher-described .desk {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6b5a45 0%, #4e3d2c 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: tp1-breathe 12s ease-in-out infinite;
}
.scn-true-philosopher-described .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2c2a28 0%, #1c1a18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tp1-read 8s ease-in-out infinite;
}
.scn-true-philosopher-described .lamp {
  position: absolute; bottom: 28%; left: 55%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #c8a87a 0%, #a0805a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 30px 12px #f0d8a0, 0 0 60px 24px rgba(240,216,160,0.3);
  animation: tp1-glow 4s ease-in-out infinite alternate;
}
.scn-true-philosopher-described .book {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #a0805a 0%, #7a6040 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tp1-book 10s ease-in-out infinite;
}
@keyframes tp1-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp1-read { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp1-glow { 0% { box-shadow: 0 0 20px 8px #f0d8a0, 0 0 40px 16px rgba(240,216,160,0.2); } 50% { box-shadow: 0 0 40px 16px #ffecb0, 0 0 80px 30px rgba(255,236,176,0.4); } 100% { box-shadow: 0 0 25px 10px #f0d8a0, 0 0 50px 20px rgba(240,216,160,0.25); } }
@keyframes tp1-book { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }

.scn-corruptions-of-philosophic-nature {
  background:
    linear-gradient(180deg, #3d3a48 0%, #2e2b38 40%, #1f1d28 100%),
    radial-gradient(ellipse at 50% 30%, #5a4e5e 0%, transparent 70%);
}
.scn-corruptions-of-philosophic-nature .bg-corrupt {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3e4a 0%, #2a2230 100%);
  opacity: 0.8;
  animation: cp2-shimmer 15s ease-in-out infinite alternate;
}
.scn-corruptions-of-philosophic-nature .true-one {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp2-steady 6s ease-in-out infinite;
}
.scn-corruptions-of-philosophic-nature .corrupted-a {
  position: absolute; bottom: 18%; left: 50%; width: 22%; height: 44%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp2-twist 3s ease-in-out infinite;
}
.scn-corruptions-of-philosophic-nature .corrupted-b {
  position: absolute; bottom: 22%; right: 20%; width: 20%; height: 38%;
  background: linear-gradient(180deg, #2e2a3a 0%, #12101a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp2-twist 4.5s ease-in-out infinite alternate;
}
.scn-corruptions-of-philosophic-nature .shadow-veil {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  transform: scaleY(0.9);
  animation: cp2-veil 10s ease-in-out infinite alternate;
}
.scn-corruptions-of-philosophic-nature .tendrils {
  position: absolute; top: 40%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #5a3a4a 0%, transparent 70%);
  filter: blur(4px);
  animation: cp2-reach 8s ease-in-out infinite;
}
.scn-corruptions-of-philosophic-nature .door {
  position: absolute; top: 10%; left: 70%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 4px 0 8px rgba(0,0,0,0.4);
}
@keyframes cp2-shimmer { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes cp2-steady { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes cp2-twist { 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(-2px) rotate(-4deg) scaleX(0.97); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes cp2-veil { 0% { transform: scaleY(0.85); opacity: 0.6; } 50% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(0.88); opacity: 0.7; } }
@keyframes cp2-reach { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(8px, -5px) scale(1.1); } 100% { transform: translate(-5px, 3px) scale(0.95); } }

.scn-greatest-sophist-public {
  background:
    linear-gradient(180deg, #c8b898 0%, #a89070 40%, #887858 100%),
    radial-gradient(ellipse at 50% 20%, #e0d0b0 0%, transparent 60%);
}
.scn-greatest-sophist-public .public-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-greatest-sophist-public .platform {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: gs3-rostrum 8s ease-in-out infinite alternate;
}
.scn-greatest-sophist-public .speaker {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gs3-speak 3s ease-in-out infinite;
}
.scn-greatest-sophist-public .crowd-a {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: gs3-sway 4s ease-in-out infinite;
}
.scn-greatest-sophist-public .crowd-b {
  position: absolute; bottom: 8%; right: 10%; width: 25%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: gs3-sway 5s ease-in-out infinite reverse;
}
.scn-greatest-sophist-public .banner {
  position: absolute; top: 5%; left: 50%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #c8553d 0%, #8a301a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  transform: translateX(-50%);
  animation: gs3-banner 10s ease-in-out infinite;
}
.scn-greatest-sophist-public .ambient-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ffecb0 0%, transparent 70%);
  animation: gs3-light 6s ease-in-out infinite alternate;
}
@keyframes gs3-rostrum { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gs3-speak { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gs3-sway { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gs3-banner { 0% { transform: translateX(-50%) skewX(0deg); } 50% { transform: translateX(-50%) skewX(3deg); } 100% { transform: translateX(-50%) skewX(-3deg); } }
@keyframes gs3-light { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-mercenary-sophists {
  background:
    linear-gradient(180deg, #b8a888 0%, #9a8a6a 40%, #7a6a4a 100%),
    radial-gradient(ellipse at 50% 0%, #d8c8a8 0%, transparent 60%);
}
.scn-mercenary-sophists .market-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
}
.scn-mercenary-sophists .stall {
  position: absolute; bottom: 22%; left: 20%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: ms4-shop 12s ease-in-out infinite;
}
.scn-mercenary-sophists .merchant {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ms4-haggle 3.5s ease-in-out infinite;
}
.scn-mercenary-sophists .buyer {
  position: absolute; bottom: 18%; right: 25%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ms4-reach 4s ease-in-out infinite alternate;
}
.scn-mercenary-sophists .coin {
  position: absolute; bottom: 15%; width: 3%; height: 3%;
  background: radial-gradient(circle, #e8c86a 0%, #b89840 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-mercenary-sophists .coin-1 {
  left: 35%;
  animation: ms4-coin1 6s linear infinite;
}
.scn-mercenary-sophists .coin-2 {
  left: 55%;
  animation: ms4-coin2 7s linear infinite reverse;
}
.scn-mercenary-sophists .sack {
  position: absolute; bottom: 15%; left: 40%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ms4-sack 8s ease-in-out infinite;
}
.scn-mercenary-sophists .shadow-pool {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: ms4-shadow 10s ease-in-out infinite alternate;
}
@keyframes ms4-shop { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ms4-haggle { 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 ms4-reach { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-2px) translateX(4px); } 100% { transform: translateY(0) translateX(0); } }
@keyframes ms4-coin1 { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 25% { transform: translateY(-8px) rotate(90deg) scale(1.2); } 50% { transform: translateY(0) rotate(180deg) scale(1); opacity: 0.9; } 75% { transform: translateY(-4px) rotate(270deg) scale(1.1); } 100% { transform: translateY(0) rotate(360deg); opacity: 1; } }
@keyframes ms4-coin2 { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 30% { transform: translateY(-10px) rotate(120deg) scale(1.3); } 60% { transform: translateY(-2px) rotate(240deg) scale(1); opacity: 1; } 100% { transform: translateY(0) rotate(360deg); opacity: 0.9; } }
@keyframes ms4-sack { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ms4-shadow { 0% { transform: scaleX(0.95); opacity: 0.6; } 50% { transform: scaleX(1.05); opacity: 0.9; } 100% { transform: scaleX(0.98); opacity: 0.7; } }

.scn-appetites-unlawful { background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%); }

.scn-appetites-unlawful .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%); }
.scn-appetites-unlawful .table { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-appetites-unlawful .candle { position:absolute; bottom:48%; left:50%; width:8px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #6a4a20 100%); border-radius: 40% 40% 20% 20%; }
.scn-appetites-unlawful .candle-glow { position:absolute; bottom:52%; left:50%; width:30px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, #f0d060 0%, #c09040 40%, transparent 70%); border-radius: 50%; animation: ali-glow 3s ease-in-out infinite alternate; }
.scn-appetites-unlawful .fruit { position:absolute; bottom:34%; left:58%; width:20px; height:20px; background: radial-gradient(circle at 40% 30%, #f0b050 0%, #b06020 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4), inset 0 0 4px rgba(255,200,100,.3); animation: ali-fruit 4s ease-in-out infinite; }
.scn-appetites-unlawful .hand { position:absolute; bottom:30%; left:45%; width:18px; height:28px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: ali-hand 5s ease-in-out infinite; }
.scn-appetites-unlawful .shadow-hand { position:absolute; bottom:28%; left:47%; width:16px; height:24px; background: rgba(0,0,0,.3); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: ali-shand 5s ease-in-out infinite; }

@keyframes ali-glow { 0% { opacity:.6; transform: translate(-50%,-50%) scale(1); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity:.7; transform: translate(-50%,-50%) scale(1); } }
@keyframes ali-fruit { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 70% { transform: translateY(0) rotate(-3deg); } }
@keyframes ali-hand { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(16px) translateY(-4px) rotate(5deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(1deg); } }
@keyframes ali-shand { 0%,100% { transform: translate(2px, 2px); } 25% { transform: translate(10px, 0); } 50% { transform: translate(18px, -2px); } 75% { transform: translate(10px, 0); } }


.scn-democratic-man-son { background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%), radial-gradient(ellipse at 60% 70%, #4a3828 0%, transparent 60%); }

.scn-democratic-man-son .bg-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e10 100%); }
.scn-democratic-man-son .bookshelf { position:absolute; top:10%; left:5%; width:25%; height:65%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.4); }
.scn-democratic-man-son .lamp { position:absolute; bottom:50%; left:40%; width:12px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #806030 100%); border-radius: 40% 40% 10% 10%; }
.scn-democratic-man-son .lamp-glow { position:absolute; bottom:52%; left:40%; width:40px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, #f0d080 0%, #c09050 40%, transparent 70%); border-radius: 50%; animation: dms-lamp 4s ease-in-out infinite alternate; }
.scn-democratic-man-son .father { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dms-father 6s ease-in-out infinite; }
.scn-democratic-man-son .son { position:absolute; bottom:30%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dms-son 6s ease-in-out infinite; }
.scn-democratic-man-son .shadow-father { position:absolute; bottom:28%; left:32%; width:28px; height:60px; background: rgba(0,0,0,.3); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: dms-sfather 6s ease-in-out infinite; }

@keyframes dms-lamp { 0% { opacity:.6; transform: translate(-50%,-50%) scale(1); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.15); } 100% { opacity:.7; transform: translate(-50%,-50%) scale(1); } }
@keyframes dms-father { 0%,100% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(4deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(3deg); } }
@keyframes dms-son { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(1deg); } }
@keyframes dms-sfather { 0%,100% { transform: translate(3px, 2px); } 25% { transform: translate(2px, 1px); } 50% { transform: translate(1px, 0); } 75% { transform: translate(2px, 1px); } }


.scn-love-tyrant-drunken { background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%), radial-gradient(ellipse at 50% 40%, #3a2212 0%, transparent 60%); }

.scn-love-tyrant-drunken .bg-floor { position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #4a2a18 0%, #1a0e06 100%); }
.scn-love-tyrant-drunken .table-top { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #6a3a20 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-love-tyrant-drunken .cup { position:absolute; bottom:30%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #806030 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ltd-cup 3s ease-in-out infinite; }
.scn-love-tyrant-drunken .spill { position:absolute; bottom:18%; left:44%; width:30px; height:12px; background: linear-gradient(180deg, rgba(180,80,40,.6) 0%, transparent 100%); border-radius: 50% 50% 30% 30%; filter: blur(2px); animation: ltd-spill 3s ease-in-out infinite; }
.scn-love-tyrant-drunken .figure { position:absolute; bottom:0; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ltd-fig 5s ease-in-out infinite; }
.scn-love-tyrant-drunken .shadow-figure { position:absolute; bottom:0; left:22%; width:56px; height:70px; background: rgba(0,0,0,.4); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(5px); animation: ltd-sfig 5s ease-in-out infinite; }
.scn-love-tyrant-drunken .bottle { position:absolute; bottom:25%; left:40%; width:10px; height:26px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-30deg); animation: ltd-bottle 4s ease-in-out infinite; }

@keyframes ltd-cup { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes ltd-spill { 0%,100% { opacity:.3; width:30px; height:12px; } 50% { opacity:.6; width:40px; height:16px; } }
@keyframes ltd-fig { 0%,100% { transform: rotate(3deg); } 25% { transform: rotate(-2deg) scale(1.02); } 50% { transform: rotate(5deg) scale(0.98); } 75% { transform: rotate(0deg) scale(1.01); } }
@keyframes ltd-sfig { 0%,100% { transform: translate(2px, 0) rotate(1deg); } 25% { transform: translate(0, 2px) rotate(-1deg); } 50% { transform: translate(4px, -2px) rotate(2deg); } 75% { transform: translate(1px, 1px) rotate(0deg); } }
@keyframes ltd-bottle { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-45deg) translateY(-2px); } }


.scn-tyrant-son-parents { background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%), radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, transparent 70%); }

.scn-tyrant-son-parents .bg-wall-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); }
.scn-tyrant-son-parents .parent-shadow { position:absolute; bottom:20%; left:45%; width:35px; height:80px; background: rgba(0,0,0,.5); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(6px); animation: tsp-psh 4s ease-in-out infinite; }
.scn-tyrant-son-parents .parent-arm { position:absolute; bottom:30%; left:40%; width:25px; height:8px; background: linear-gradient(180deg, #3a2210 0%, #1a0e04 100%); border-radius: 30% 30% 20% 20%; transform-origin: right center; animation: tsp-arm 5s ease-in-out infinite; }
.scn-tyrant-son-parents .money-bag { position:absolute; bottom:34%; left:38%; width:16px; height:18px; background: radial-gradient(circle at 40% 30%, #c8a060 0%, #806030 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: tsp-bag 3s ease-in-out infinite; }
.scn-tyrant-son-parents .son-hand { position:absolute; bottom:28%; left:48%; width:20px; height:24px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: tsp-hand 5s ease-in-out infinite; }
.scn-tyrant-son-parents .son-shadow { position:absolute; bottom:15%; left:30%; width:40px; height:80px; background: rgba(0,0,0,.4); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(8px); animation: tsp-son 6s ease-in-out infinite; }
.scn-tyrant-son-parents .tension-light { position:absolute; top:10%; left:35%; width:60px; height:80px; background: radial-gradient(circle, rgba(200,160,100,.15) 0%, transparent 70%); border-radius: 50%; animation: tsp-light 4s ease-in-out infinite alternate; }

@keyframes tsp-psh { 0%,100% { transform: translate(0, 0); } 50% { transform: translate(-5px, 3px); } }
@keyframes tsp-arm { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } }
@keyframes tsp-bag { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } }
@keyframes tsp-hand { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(-5deg); } 50% { transform: translateX(-16px) translateY(-4px) rotate(-10deg); } 75% { transform: translateX(-8px) translateY(-2px) rotate(-5deg); } }
@keyframes tsp-son { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(1.02); } }
@keyframes tsp-light { 0% { opacity:.2; transform: scale(1); } 100% { opacity:.5; transform: scale(1.2); } }

/* Scene: signs-of-true-philosopher */
.scn-signs-of-true-philosopher {
  background: linear-gradient(180deg, #f9e6d0 0%, #e8d0b0 50%, #c8a880 100%),
              radial-gradient(ellipse at 30% 20%, #fff5e6 0%, transparent 50%);
}
.scn-signs-of-true-philosopher .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0dcc0 0%, #dcc4a8 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.scn-signs-of-true-philosopher .window {
  position: absolute; top: 8%; left: 65%; width: 90px; height: 130px;
  background: linear-gradient(180deg, #b8d0e8 0%, #a0b8d0 100%);
  border: 4px solid #8a6e50; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255, 255, 200, 0.3);
  animation: stp-window 12s ease-in-out infinite alternate;
}
.scn-signs-of-true-philosopher .desk {
  position: absolute; bottom: 22%; left: 15%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #8a6e50 0%, #6a5030 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(10deg);
}
.scn-signs-of-true-philosopher .lamp {
  position: absolute; bottom: 32%; left: 22%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 2px 2px 0 0; transform: rotate(-5deg);
}
.scn-signs-of-true-philosopher .lamp::after {
  content: ''; position: absolute; top: -12px; left: -8px; width: 26px; height: 16px;
  background: radial-gradient(circle at 50% 100%, #ffdd88 0%, #eebb44 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(255, 221, 136, 0.6);
  animation: stp-lampglow 4s ease-in-out infinite alternate;
}
.scn-signs-of-true-philosopher .book {
  position: absolute; bottom: 20%; left: 18%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #b8a080 0%, #9a8a70 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateY(-10deg);
  animation: stp-book 8s ease-in-out infinite;
}
.scn-signs-of-true-philosopher .figure-seated {
  position: absolute; bottom: 20%; left: 8%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: stp-figure 6s ease-in-out infinite alternate;
}
.scn-signs-of-true-philosopher .shadow {
  position: absolute; bottom: 18%; left: 4%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px);
  animation: stp-shadow 6s ease-in-out infinite alternate;
}
@keyframes stp-window {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes stp-lampglow {
  0% { box-shadow: 0 0 20px 6px rgba(255,221,136,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px rgba(255,221,136,0.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,221,136,0.5); opacity: 0.95; }
}
@keyframes stp-book {
  0% { transform: perspective(300px) rotateY(-10deg) translateY(0); }
  50% { transform: perspective(300px) rotateY(-5deg) translateY(-2px); }
  100% { transform: perspective(300px) rotateY(-10deg) translateY(0); }
}
@keyframes stp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes stp-shadow {
  0% { transform: scaleX(1); opacity: 0.15; }
  50% { transform: scaleX(1.1); opacity: 0.1; }
  100% { transform: scaleX(1); opacity: 0.15; }
}

/* Scene: youths-trained-for-war */
.scn-youths-trained-for-war {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0b898 50%, #b89878 100%),
              radial-gradient(ellipse at 50% 80%, #ffe8d0 0%, transparent 60%);
}
.scn-youths-trained-for-war .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c4a8 0%, #c0ac90 100%);
}
.scn-youths-trained-for-war .column-a {
  position: absolute; bottom: 0; left: 15%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.scn-youths-trained-for-war .column-b {
  position: absolute; bottom: 0; right: 15%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.scn-youths-trained-for-war .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #b89878 0px, #b89878 20px, #a88868 20px, #a88868 40px);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-youths-trained-for-war .trainer {
  position: absolute; bottom: 25%; left: 20%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ytw-trainer 5s ease-in-out infinite alternate;
}
.scn-youths-trained-for-war .youth-sword {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom right;
  animation: ytw-youth 7s ease-in-out infinite;
}
.scn-youths-trained-for-war .shield-rack {
  position: absolute; bottom: 30%; right: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ytw-shield 12s ease-in-out infinite alternate;
}
@keyframes ytw-trainer {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ytw-youth {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(10px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0); }
  75% { transform: translateX(10px) translateY(-2px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ytw-shield {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* Scene: danger-of-dialectic */
.scn-danger-of-dialectic {
  background: linear-gradient(135deg, #f0e0c8 0%, #d8c0a0 40%, #b8a080 100%),
              radial-gradient(ellipse at 70% 30%, #ffe8d0 0%, transparent 70%);
}
.scn-danger-of-dialectic .room-tension {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.scn-danger-of-dialectic .window-harsh {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a8b8d8 100%);
  border: 4px solid #8a7050; border-radius: 2px; box-shadow: inset 0 0 30px rgba(200, 200, 255, 0.4);
  animation: dod-window 8s ease-in-out infinite alternate;
}
.scn-danger-of-dialectic .table {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 18px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(15deg);
}
.scn-danger-of-dialectic .parent-left {
  position: absolute; bottom: 28%; left: 12%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: dod-parent-left 10s ease-in-out infinite alternate;
}
.scn-danger-of-dialectic .parent-right {
  position: absolute; bottom: 28%; right: 12%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: dod-parent-right 10s ease-in-out infinite alternate;
}
.scn-danger-of-dialectic .child {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dod-child 6s ease-in-out infinite;
}
.scn-danger-of-dialectic .flatterer-shadow {
  position: absolute; bottom: 25%; right: 30%; width: 25px; height: 70px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  filter: blur(3px); opacity: 0.6;
  animation: dod-flatterer 14s ease-in-out infinite;
}
@keyframes dod-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(200,200,255,0.6); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); }
}
@keyframes dod-parent-left {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes dod-parent-right {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dod-child {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(2px) rotate(5deg); }
  50% { transform: translateY(-2px) rotate(-5deg); }
  75% { transform: translateY(2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dod-flatterer {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-10px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}

/* Scene: dialectic-introduced-carefully */
.scn-dialectic-introduced-carefully {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 40%, #b8a890 100%),
              radial-gradient(ellipse at 30% 50%, #ffe8d0 0%, transparent 60%);
}
.scn-dialectic-introduced-carefully .classroom-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 100%);
}
.scn-dialectic-introduced-carefully .chalkboard {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 100px;
  background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border: 6px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: dic-chalk 12s ease-in-out infinite alternate;
}
.scn-dialectic-introduced-carefully .teacher-desk {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
}
.scn-dialectic-introduced-carefully .youth-left {
  position: absolute; bottom: 22%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: dic-youth-left 4s ease-in-out infinite;
}
.scn-dialectic-introduced-carefully .youth-right {
  position: absolute; bottom: 22%; right: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: dic-youth-right 4s ease-in-out infinite;
}
.scn-dialectic-introduced-carefully .elder {
  position: absolute; bottom: 25%; left: 45%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dic-elder 6s ease-in-out infinite alternate;
}
@keyframes dic-chalk {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
  100% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
}
@keyframes dic-youth-left {
  0% { transform: translateY(0) rotate(3deg); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes dic-youth-right {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-4px) rotate(2deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-4px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes dic-elder {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* perfect-governors – sculptor studio, warm bright interior */
.scn-perfect-governors {
  background: 
    linear-gradient(180deg, #d4b08c 0%, #b58a6b 30%, #8c6b4a 100%),
    radial-gradient(ellipse at 60% 40%, #f0d8b0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-perfect-governors .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e3c9a8 0%, #c8a882 60%, #a6845e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-perfect-governors .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6b5038 0%, #8b6b4a 40%, #a8855a 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
}
.scn-perfect-governors .window-light {
  position: absolute;
  top: 8%; left: 30%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.6) 0%, rgba(255,210,140,0.2) 60%, transparent 100%);
  filter: blur(15px);
  animation: pg-light 6s ease-in-out infinite alternate;
}
.scn-perfect-governors .easel {
  position: absolute;
  bottom: 22%; left: 45%; width: 8%; height: 28%;
  background: linear-gradient(90deg, #7a5e3e 0%, #a0805a 50%, #7a5e3e 100%);
  border-radius: 2px;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: pg-easel 8s ease-in-out infinite;
}
.scn-perfect-governors .statue {
  position: absolute;
  bottom: 28%; left: 46%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #d6c4a8 0%, #b89e7c 60%, #9a8268 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(200,170,120,0.4);
  animation: pg-statue 8s ease-in-out infinite;
}
.scn-perfect-governors .sculptor {
  position: absolute;
  bottom: 20%; left: 35%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #7a6048 0%, #4a3828 100%);
  border-radius: 50% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pg-sculptor 4s ease-in-out infinite;
}
.scn-perfect-governors .tool-stand {
  position: absolute;
  bottom: 16%; left: 55%; width: 6%; height: 14%;
  background: linear-gradient(0deg, #5a4030 0%, #7a5a40 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 1px 2px 6px rgba(0,0,0,0.2);
  animation: pg-tools 6s ease-in-out infinite alternate;
}
@keyframes pg-light { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.9; transform:scale(1.05); } }
@keyframes pg-easel { 0% { transform:rotate(-2deg) translateX(0); } 50% { transform:rotate(1deg) translateY(-3px); } 100% { transform:rotate(-2deg) translateX(0); } }
@keyframes pg-statue { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02) translateY(-2px); } 100% { transform:scaleY(1); } }
@keyframes pg-sculptor { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-5px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes pg-tools { 0% { transform:scaleY(1) rotate(0); } 50% { transform:scaleY(1.1) rotate(3deg); } 100% { transform:scaleY(1) rotate(0); } }

/* summary-perfect-state – council chamber, calm bright interior */
.scn-summary-perfect-state {
  background: 
    linear-gradient(180deg, #e5d5b0 0%, #cdb890 40%, #a89070 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-summary-perfect-state .chamber-bg {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(135deg, #dcc8a0 0%, #bca07c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.1);
}
.scn-summary-perfect-state .table {
  position: absolute;
  bottom: 22%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(0deg, #8a704a 0%, #a88a60 50%, #8a704a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: sps-table 12s ease-in-out infinite alternate;
}
.scn-summary-perfect-state .figure-left {
  position: absolute;
  bottom: 30%; left: 10%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sps-figure-l 8s ease-in-out infinite;
}
.scn-summary-perfect-state .figure-right {
  position: absolute;
  bottom: 32%; right: 10%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sps-figure-r 8s ease-in-out infinite 2s;
}
.scn-summary-perfect-state .window-arch {
  position: absolute;
  top: 6%; left: 35%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.4) 0%, transparent 60%);
  border-radius: 50% 50% 0 0;
  filter: blur(10px);
  animation: sps-window 10s ease-in-out infinite alternate;
}
.scn-summary-perfect-state .sunbeam {
  position: absolute;
  top: 10%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, rgba(255,242,190,0.35) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  filter: blur(8px);
  animation: sps-beam 8s ease-in-out infinite alternate;
}
.scn-summary-perfect-state .wreath {
  position: absolute;
  bottom: 16%; left: 48%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8a86a 0%, #a08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(160,128,64,0.5);
  animation: sps-wreath 6s ease-in-out infinite;
}
@keyframes sps-table { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.02) translateY(-2px); } 100% { transform:scaleX(1); } }
@keyframes sps-figure-l { 0% { transform:translateY(0) rotate(-2deg); } 25% { transform:translateY(-5px) rotate(1deg); } 50% { transform:translateY(0) rotate(-2deg); } 75% { transform:translateY(-5px) rotate(1deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes sps-figure-r { 0% { transform:translateY(0) rotate(2deg); } 25% { transform:translateY(-4px) rotate(-1deg); } 50% { transform:translateY(0) rotate(2deg); } 75% { transform:translateY(-4px) rotate(-1deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes sps-window { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:0.8; transform:scaleY(1); } }
@keyframes sps-beam { 0% { opacity:0.5; transform:rotate(5deg); } 50% { opacity:0.8; transform:rotate(0deg); } 100% { opacity:0.6; transform:rotate(-5deg); } }
@keyframes sps-wreath { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(180deg) scale(1.1); } 100% { transform:rotate(360deg) scale(1); } }

/* four-constitutions – row of pillars, calm bright interior */
.scn-four-constitutions {
  background: 
    linear-gradient(180deg, #dfceb8 0%, #c0ae94 40%, #9a8870 100%),
    radial-gradient(ellipse at 50% 30%, #ebe0c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-four-constitutions .back-pillar {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 20%;
  background: linear-gradient(90deg, #b8a088 0%, #d0bca4 50%, #b8a088 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-four-constitutions .pillar-1,
.scn-four-constitutions .pillar-2,
.scn-four-constitutions .pillar-3,
.scn-four-constitutions .pillar-4 {
  position: absolute;
  bottom: 10%; width: 12%; height: 55%;
  background: linear-gradient(90deg, #c8b498 0%, #e0ccb0 50%, #c8b498 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.15), -2px 0 8px rgba(0,0,0,0.15);
}
.scn-four-constitutions .pillar-1 { left: 5%; animation: fc-pillar1 14s ease-in-out infinite; }
.scn-four-constitutions .pillar-2 { left: 24%; animation: fc-pillar2 14s ease-in-out infinite 2s; }
.scn-four-constitutions .pillar-3 { left: 43%; animation: fc-pillar3 14s ease-in-out infinite 4s; }
.scn-four-constitutions .pillar-4 { left: 62%; animation: fc-pillar4 14s ease-in-out infinite 6s; }
.scn-four-constitutions .plinth-bg {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #8a7a66 0%, #a08e78 100%);
  border-radius: 0 0 10% 10%;
}
.scn-four-constitutions .shadow-strip {
  position: absolute;
  bottom: 12%; left: 0; right: 0; height: 4%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.12) 10%, transparent 20%, rgba(0,0,0,0.12) 30%, transparent 40%, rgba(0,0,0,0.12) 50%, transparent 60%, rgba(0,0,0,0.12) 70%, transparent 80%);
  filter: blur(2px);
  animation: fc-shadow 12s linear infinite alternate;
}
@keyframes fc-pillar1 { 0% { transform:scaleY(1); } 25% { transform:scaleY(1.03) translateY(-4px); } 50% { transform:scaleY(1); } 75% { transform:scaleY(1.02) translateY(-2px); } 100% { transform:scaleY(1); } }
@keyframes fc-pillar2 { 0% { transform:scaleY(1); } 25% { transform:scaleY(1.02) translateY(-3px); } 50% { transform:scaleY(1); } 75% { transform:scaleY(1.03) translateY(-4px); } 100% { transform:scaleY(1); } }
@keyframes fc-pillar3 { 0% { transform:scaleY(1); } 25% { transform:scaleY(1.01) translateY(-2px); } 50% { transform:scaleY(1); } 75% { transform:scaleY(1.03) translateY(-4px); } 100% { transform:scaleY(1); } }
@keyframes fc-pillar4 { 0% { transform:scaleY(1); } 25% { transform:scaleY(1.03) translateY(-4px); } 50% { transform:scaleY(1); } 75% { transform:scaleY(1.02) translateY(-3px); } 100% { transform:scaleY(1); } }
@keyframes fc-shadow { 0% { opacity:0.3; transform:translateX(0); } 50% { opacity:0.6; transform:translateX(2%); } 100% { opacity:0.3; transform:translateX(0); } }

/* timocracy-origin – honour hall, tense bright interior with sharp shadows */
.scn-timocracy-origin {
  background: 
    linear-gradient(180deg, #d0b890 0%, #b09878 40%, #907858 100%),
    radial-gradient(ellipse at 50% 0%, #ede0c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-timocracy-origin .hall-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8b090 0%, #a8886a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
}
.scn-timocracy-origin .archway {
  position: absolute;
  top: 5%; left: 30%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,170,130,0.3) 0%, transparent 60%);
  border-radius: 50% 50% 0 0;
  filter: blur(12px);
  animation: to-arch 6s ease-in-out infinite alternate;
}
.scn-timocracy-origin .warrior {
  position: absolute;
  bottom: 18%; left: 38%; width: 24%; height: 48%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: to-warrior 2s ease-in-out infinite;
}
.scn-timocracy-origin .spear {
  position: absolute;
  bottom: 28%; left: 56%; width: 2%; height: 40%;
  background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: to-spear 1.5s ease-in-out infinite alternate;
}
.scn-timocracy-origin .shield {
  position: absolute;
  bottom: 32%; left: 30%; width: 10%; height: 14%;
  background: radial-gradient(circle at 40% 40%, #8a7050 0%, #5a4030 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.4);
  animation: to-shield 2s ease-in-out infinite alternate;
}
.scn-timocracy-origin .torch-flame {
  position: absolute;
  bottom: 60%; left: 25%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffc060 0%, #ff9040 40%, #c05420 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.6);
  animation: to-torch 0.8s ease-in-out infinite alternate;
}
.scn-timocracy-origin .shadow-sharp {
  position: absolute;
  bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  filter: blur(5px);
  animation: to-shadow 3s ease-in-out infinite alternate;
}
@keyframes to-arch { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.5; transform:scaleX(1); } }
@keyframes to-warrior { 0% { transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-8px) rotate(1deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-8px) rotate(-1deg); } 100% { transform:translateY(0) rotate(1deg); } }
@keyframes to-spear { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-10deg) translateX(3px); } 100% { transform:rotate(-15deg) translateX(0); } }
@keyframes to-shield { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.05) translateY(-5px); } 100% { transform:scale(1) translateY(0); } }
@keyframes to-torch { 0% { opacity:0.8; transform:scale(0.9) rotate(-2deg); } 50% { opacity:1; transform:scale(1.2) rotate(3deg); } 100% { opacity:0.9; transform:scale(1) rotate(-1deg); } }
@keyframes to-shadow { 0% { opacity:0.3; transform:translateX(0); } 50% { opacity:0.6; transform:translateX(5%); } 100% { opacity:0.3; transform:translateX(0); } }

.scn-learning-letters {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #1f1410 100%),
    radial-gradient(ellipse at 30% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-learning-letters .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1410 0%, #2a1f1a 100%);
  animation: le-wall 20s ease-in-out infinite alternate;
}
.scn-learning-letters .table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 8%; 
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 -4px 6px rgba(0,0,0,0.6);
  animation: le-table 15s ease-in-out infinite;
}
.scn-learning-letters .candle {
  position: absolute; bottom: 16%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0c8a0 0%, #b08050 100%);
  border-radius: 3px; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,0.3);
  animation: le-candle 3s ease-in-out infinite alternate;
}
.scn-learning-letters .book {
  position: absolute; bottom: 16%; left: 55%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: le-book 8s ease-in-out infinite;
}
.scn-learning-letters .figure-learner {
  position: absolute; bottom: 8%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-figure 6s ease-in-out infinite;
}
.scn-learning-letters .inkwell {
  position: absolute; bottom: 20%; left: 48%; width: 10px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30%;
}
.scn-learning-letters .shadow-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: le-shadow 12s ease-in-out infinite alternate;
}
@keyframes le-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes le-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes le-candle { 0% { box-shadow: 0 0 16px 4px #d09050, 0 0 32px 8px rgba(208,144,80,0.3); } 50% { box-shadow: 0 0 28px 10px #f0b070, 0 0 50px 16px rgba(240,176,112,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #d09050, 0 0 36px 10px rgba(208,144,80,0.35); opacity: 0.9; } }
@keyframes le-book { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 75% { transform: rotate(-0.3deg); } }
@keyframes le-figure { 0%, 100% { transform: translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } }
@keyframes le-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-know-forms {
  background: 
    linear-gradient(180deg, #1f1a28 0%, #2a2435 50%, #1a1520 100%),
    radial-gradient(ellipse at 60% 80%, #3a3048 0%, transparent 60%);
}
.scn-know-forms .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1520 0%, #2a2435 100%);
  animation: kn-bg 18s ease-in-out infinite alternate;
}
.scn-know-forms .shelf {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #3a3048 0%, #1a1520 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-know-forms .cylinder {
  position: absolute; bottom: 38%; left: 25%; width: 14px; height: 22px;
  background: linear-gradient(90deg, #4a3a5a 0%, #6a5068 50%, #4a3a5a 100%);
  border-radius: 50% / 20%; transform-origin: bottom center;
  animation: kn-cyl 12s ease-in-out infinite alternate;
}
.scn-know-forms .cube {
  position: absolute; bottom: 38%; left: 42%; width: 18px; height: 18px;
  background: linear-gradient(135deg, #5a4a60 0%, #3a2a40 100%);
  border-radius: 2px;
  animation: kn-cube 10s ease-in-out infinite;
}
.scn-know-forms .sphere {
  position: absolute; bottom: 36%; left: 62%; width: 16px; height: 16px;
  background: radial-gradient(circle at 35% 35%, #7a6070 0%, #4a3050 100%);
  border-radius: 50%;
  animation: kn-sphere 15s ease-in-out infinite alternate;
}
.scn-know-forms .lamp-know {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px #c09060;
  animation: kn-lamp 4s ease-in-out infinite alternate;
}
.scn-know-forms .contemplator {
  position: absolute; bottom: 5%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kn-figure 8s ease-in-out infinite;
}
.scn-know-forms .shadow-know {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: kn-shadow 14s ease-in-out infinite alternate;
}
@keyframes kn-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kn-cyl { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }
@keyframes kn-cube { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes kn-sphere { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.03); } 100% { transform: translateX(-2px) scale(0.97); } }
@keyframes kn-lamp { 0% { box-shadow: 0 0 16px 4px #c09060; opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #f0d0a0; opacity: 1; } 100% { box-shadow: 0 0 20px 6px #c09060; opacity: 0.85; } }
@keyframes kn-figure { 0%, 100% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(3px) rotate(0.5deg); } }
@keyframes kn-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-loveliest {
  background: 
    linear-gradient(180deg, #2a1a18 0%, #3a2a20 45%, #1f1412 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 65%);
}
.scn-loveliest .warm-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1412 0%, #3a2a20 100%);
  animation: lo-bg 16s ease-in-out infinite alternate;
}
.scn-loveliest .table-low {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-loveliest .lyre {
  position: absolute; bottom: 25%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #b08050 0%, #6a4020 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: lo-lyre 6s ease-in-out infinite;
}
.scn-loveliest .lyre::after {
  content: ''; position: absolute; top: 0; left: -6px; width: 20px; height: 8px;
  background: linear-gradient(90deg, #6a4020 0%, #b08050 50%, #6a4020 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-loveliest .cup {
  position: absolute; bottom: 18%; left: 52%; width: 12px; height: 14px;
  background: radial-gradient(ellipse at 50% 20%, #c09060 0%, #6a4020 100%);
  border-radius: 30% 30% 10% 10%;
  animation: lo-cup 8s ease-in-out infinite alternate;
}
.scn-loveliest .left-figure {
  position: absolute; bottom: 10%; left: 30%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: lo-left 7s ease-in-out infinite;
}
.scn-loveliest .right-figure {
  position: absolute; bottom: 10%; right: 30%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: lo-right 7s ease-in-out infinite;
}
.scn-loveliest .lamp-love {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(ellipse, #f0c090 0%, #b08050 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b08050, 0 0 60px 20px rgba(176,128,80,0.3);
  animation: lo-lamp 4s ease-in-out infinite alternate;
}
.scn-loveliest .drape {
  position: absolute; top: 0; left: 0; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1412 100%);
  border-radius: 0 0 80% 0; filter: blur(2px);
  animation: lo-drape 20s ease-in-out infinite alternate;
}
@keyframes lo-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lo-lyre { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes lo-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes lo-left { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } }
@keyframes lo-right { 0%, 100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } }
@keyframes lo-lamp { 0% { box-shadow: 0 0 20px 6px #b08050, 0 0 40px 12px rgba(176,128,80,0.3); } 50% { box-shadow: 0 0 40px 14px #f0c090, 0 0 70px 24px rgba(240,192,144,0.5); } 100% { box-shadow: 0 0 25px 8px #b08050, 0 0 45px 14px rgba(176,128,80,0.35); } }
@keyframes lo-drape { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(4px) skewX(1deg); } 100% { transform: translateX(-2px) skewX(-1deg); } }

.scn-love-pleasure-dialogue {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 50%, #d0c0a8 100%),
    radial-gradient(ellipse at 70% 50%, #fff8e8 0%, transparent 60%);
}
.scn-love-pleasure-dialogue .bright-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #f0e8d8 100%);
  animation: lp-bg 20s ease-in-out infinite alternate;
}
.scn-love-pleasure-dialogue .window-light {
  position: absolute; top: 0; right: 0; width: 40%; height: 80%;
  background: linear-gradient(135deg, #fff8e8 0%, #e0d4c0 100%);
  border-radius: 0 0 0 60%; filter: blur(8px);
  animation: lp-window 15s ease-in-out infinite alternate;
}
.scn-love-pleasure-dialogue .pillar {
  position: absolute; bottom: 0; left: 10%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  border-radius: 2px; box-shadow: 2px 0 6px rgba(0,0,0,0.1);
}
.scn-love-pleasure-dialogue .table-bright {
  position: absolute; bottom: 8%; left: 25%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 6px; box-shadow: 0 -4px 10px rgba(0,0,0,0.1);
}
.scn-love-pleasure-dialogue .figure-left {
  position: absolute; bottom: 8%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp-left 8s ease-in-out infinite;
}
.scn-love-pleasure-dialogue .figure-right {
  position: absolute; bottom: 8%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp-right 8s ease-in-out infinite alternate;
}
.scn-love-pleasure-dialogue .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #d8c0a8 0%, #b8a090 100%);
  border-radius: 0 20% 20% 0; filter: blur(1px);
  animation: lp-curtain 12s ease-in-out infinite alternate;
}
.scn-love-pleasure-dialogue .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,240,0.3) 0%, transparent 8px),
              radial-gradient(circle at 60% 50%, rgba(255,255,240,0.2) 0%, transparent 6px),
              radial-gradient(circle at 80% 70%, rgba(255,255,240,0.15) 0%, transparent 5px);
  animation: lp-dust 30s linear infinite;
}
.scn-love-pleasure-dialogue .cushion {
  position: absolute; bottom: 12%; left: 30%; width: 22px; height: 10px;
  background: radial-gradient(ellipse at 50% 30%, #d0b8a0 0%, #a89078 100%);
  border-radius: 50%;
  animation: lp-cushion 10s ease-in-out infinite;
}
@keyframes lp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lp-window { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes lp-left { 0%, 100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(0deg); } }
@keyframes lp-right { 0%, 100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(0deg); } }
@keyframes lp-curtain { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(3px) skewX(1deg); } 100% { transform: translateX(-2px) skewX(-1deg); } }
@keyframes lp-dust { 0% { background-position: 0 0, 0 0, 0 0; } 100% { background-position: 200px 100px, -100px -50px, 300px 150px; } }
@keyframes lp-cushion { 0%, 100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(0.95); } }

.scn-common-pleasure-pain {
  background:
    radial-gradient(ellipse at 50% 80%, #c8844a 0%, transparent 60%),
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
}
.scn-common-pleasure-pain .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 60%, #1a0a00 100%);
  animation: cpp-bg 10s ease-in-out infinite alternate;
}
.scn-common-pleasure-pain .hearth {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 100%, #e8a84a 0%, #b06828 50%, #6a3a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(200,100,30,0.6);
  animation: cpp-hearth 4s ease-in-out infinite alternate;
}
.scn-common-pleasure-pain .ember {
  position: absolute; bottom: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffc86a 0%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(255,200,80,0.8);
}
.scn-common-pleasure-pain .ember-a {
  left: 45%; animation: cpp-ember 2.5s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-common-pleasure-pain .ember-b {
  left: 53%; animation: cpp-ember 2.5s ease-in-out infinite reverse;
  animation-delay: 1.2s;
}
.scn-common-pleasure-pain .ground {
  position: absolute; bottom: 20%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-common-pleasure-pain .figure {
  position: absolute; bottom: 22%; width: 28px; height: 50px;
  background:
    radial-gradient(ellipse 60% 50% at 50% 40%, #b87868 0%, #7a4030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-common-pleasure-pain .figure-left {
  left: 22%;
  animation: cpp-figure 6s ease-in-out infinite;
}
.scn-common-pleasure-pain .figure-right {
  right: 22%;
  animation: cpp-figure 6s ease-in-out infinite reverse;
}
.scn-common-pleasure-pain .figure-center {
  left: 50%; width: 32px; height: 54px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #c89878 0%, #8a5040 100%);
  animation: cpp-figure-center 7s ease-in-out infinite;
}
.scn-common-pleasure-pain .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(200,120,40,0.25) 0%, transparent 70%);
  animation: cpp-glow 8s ease-in-out infinite alternate;
}

@keyframes cpp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cpp-hearth { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 15px rgba(200,100,30,0.5); } 50% { transform: translateX(-50%) scale(1.05) rotate(1deg); box-shadow: 0 0 50px 25px rgba(200,100,30,0.7); } 100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); box-shadow: 0 0 35px 18px rgba(200,100,30,0.6); } }
@keyframes cpp-ember { 0% { transform: translateY(0) scale(0.8); opacity: 0.5; } 50% { transform: translateY(-12px) scale(1.2) rotate(30deg); opacity: 1; } 100% { transform: translateY(0) scale(0.6); opacity: 0.4; } }
@keyframes cpp-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes cpp-figure-center { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes cpp-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-greatest-good-unity {
  background:
    radial-gradient(ellipse at 50% 90%, #c08040 0%, transparent 60%),
    linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
}
.scn-greatest-good-unity .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 70%, #1a0a00 100%);
  animation: ggu-bg 12s ease-in-out infinite alternate;
}
.scn-greatest-good-unity .altar {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07848 0%, #6a4220 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ggu-altar 6s ease-in-out infinite;
}
.scn-greatest-good-unity .bowl {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d09050 0%, #a06830 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.3), 0 -4px 8px rgba(200,120,40,0.5);
}
.scn-greatest-good-unity .flame {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffc040 0%, #d06020 50%, #802000 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: ggu-flame 1.5s ease-in-out infinite alternate;
}
.scn-greatest-good-unity .hand {
  position: absolute; bottom: 28%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c89070 0%, #a06040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-greatest-good-unity .hand-left {
  left: 35%; animation: ggu-hand 4s ease-in-out infinite;
}
.scn-greatest-good-unity .hand-right {
  right: 35%; animation: ggu-hand 4s ease-in-out infinite reverse;
}
.scn-greatest-good-unity .drape {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 50%, #4a3018 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(3px);
  animation: ggu-drape 20s ease-in-out infinite alternate;
}
.scn-greatest-good-unity .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(20,10,0,0.6) 0%, transparent 100%);
  animation: ggu-shadow 8s ease-in-out infinite alternate;
}

@keyframes ggu-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ggu-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes ggu-flame { 0% { transform: translateX(-50%) scaleY(0.8) rotate(-2deg); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(1deg); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.7) rotate(2deg); opacity: 0.8; } }
@keyframes ggu-hand { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-6px) rotate(5deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes ggu-drape { 0% { transform: translateY(0) scale(1); filter: blur(3px); } 50% { transform: translateY(-4px) scale(1.03); filter: blur(2px); } 100% { transform: translateY(2px) scale(0.97); filter: blur(4px); } }
@keyframes ggu-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }

.scn-no-lawsuits {
  background:
    radial-gradient(ellipse at 50% 20%, #c0a070 0%, transparent 70%),
    linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
}
.scn-no-lawsuits .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #7a6038 0%, #4a3018 60%, #1a0a00 100%);
  animation: nls-bg 14s ease-in-out infinite alternate;
}
.scn-no-lawsuits .floor {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 22%;
  background: linear-gradient(180deg, #6a4a28 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-no-lawsuits .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d09050 0%, #a06020 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 20px 10px rgba(200,140,60,0.5);
  animation: nls-lamp 3s ease-in-out infinite alternate;
}
.scn-no-lawsuits .lightcone {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, rgba(200,160,80,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: nls-light 6s ease-in-out infinite alternate;
}
.scn-no-lawsuits .figure {
  position: absolute; bottom: 20%; width: 32px; height: 50px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #b89070 0%, #7a5038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-no-lawsuits .sitting-left {
  left: 20%; animation: nls-sit 8s ease-in-out infinite;
}
.scn-no-lawsuits .sitting-right {
  right: 20%; animation: nls-sit 8s ease-in-out infinite reverse;
}
.scn-no-lawsuits .table {
  position: absolute; bottom: 24%; left: 38%; right: 38%; height: 10px;
  background: linear-gradient(180deg, #a07848 0%, #705028 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-no-lawsuits .mug {
  position: absolute; bottom: 24%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #b08050 0%, #8a5a30 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-no-lawsuits .mug-a {
  left: 42%; animation: nls-mug 4s ease-in-out infinite;
}
.scn-no-lawsuits .mug-b {
  right: 42%; animation: nls-mug 4s ease-in-out infinite reverse;
  animation-delay: 2s;
}

@keyframes nls-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nls-lamp { 0% { transform: translateX(-50%) scaleY(0.9); box-shadow: 0 0 15px 8px rgba(200,140,60,0.4); } 50% { transform: translateX(-50%) scaleY(1.1); box-shadow: 0 0 25px 15px rgba(200,140,60,0.6); } 100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 18px 10px rgba(200,140,60,0.5); } }
@keyframes nls-light { 0% { opacity: 0.5; clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%); } 50% { opacity: 0.8; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } 100% { opacity: 0.6; clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); } }
@keyframes nls-sit { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(1deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes nls-mug { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(5deg); } }

.scn-guardians-happiness-vindicated {
  background:
    radial-gradient(ellipse at 50% 30%, #c89850 0%, transparent 70%),
    linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
}
.scn-guardians-happiness-vindicated .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a6030 0%, #4a2a10 60%, #1a0800 100%);
  animation: ghv-bg 12s ease-in-out infinite alternate;
}
.scn-guardians-happiness-vindicated .sunburst {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.5) 0%, transparent 60%);
  animation: ghv-sun 8s ease-in-out infinite alternate;
}
.scn-guardians-happiness-vindicated .plinth {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07848 0%, #684020 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ghv-plinth 6s ease-in-out infinite;
}
.scn-guardians-happiness-vindicated .guardian {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 70% 50% at 50% 30%, #c8a078 0%, #7a5030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ghv-guardian 5s ease-in-out infinite alternate;
}
.scn-guardians-happiness-vindicated .spear {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  transform: rotate(10deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: ghv-spear 4s ease-in-out infinite;
}
.scn-guardians-happiness-vindicated .cloak {
  position: absolute; bottom: 24%; left: 44%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #a06030 0%, #6a3a18 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top center;
  animation: ghv-cloak 7s ease-in-out infinite alternate;
}
.scn-guardians-happiness-vindicated .wreath {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #b0a060 0%, #807040 100%);
  border-radius: 50%;
  box-shadow: 0 -2px 6px rgba(200,180,80,0.5);
  animation: ghv-wreath 3s ease-in-out infinite alternate;
}
.scn-guardians-happiness-vindicated .glow-ring {
  position: absolute; bottom: 24%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: ghv-ring 6s ease-in-out infinite alternate;
}

@keyframes ghv-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ghv-sun { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes ghv-plinth { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes ghv-guardian { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); box-shadow: 0 0 20px 10px rgba(200,120,50,0.3); } 100% { transform: translateX(-50%) rotate(2deg) scaleY(0.99); } }
@keyframes ghv-spear { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.02) translateY(-2px); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes ghv-cloak { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-2deg); } }
@keyframes ghv-wreath { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } }
@keyframes ghv-ring { 0% { transform: translateX(-50%) scale(0.8); opacity: 0.3; } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.4; } }

/* Purgation Complete */
.scn-purgation-complete {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3d2b20 40%, #4a3525 100%),
    radial-gradient(ellipse at 50% 80%, #6b4a30 0%, transparent 60%);
}
.scn-purgation-complete .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,40,30,.3) 0%, transparent 50%);
}
.scn-purgation-complete .glow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%,0);
  background: radial-gradient(circle, #c8a070 0%, transparent 60%);
  border-radius: 50%;
  animation: pu-glow 4s ease-in-out infinite alternate;
}
.scn-purgation-complete .lyre-body {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 60px;
  transform: translate(-50%,0);
  background: radial-gradient(ellipse at 50% 30%, #8a6a50 0%, #5a3a2a 90%);
  border-radius: 45% 45% 55% 55% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: pu-lyre 10s ease-in-out infinite;
}
.scn-purgation-complete .lyre-neck {
  position: absolute; bottom: 60%; left: 50%; width: 6px; height: 60px;
  transform: translate(-50%,0);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-purgation-complete .note {
  position: absolute; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0d0b0 0%, #b09070 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,160,100,.6);
  opacity: 0;
}
.scn-purgation-complete .note-1 { bottom: 45%; left: 38%; animation: pu-note 6s ease-in-out infinite; }
.scn-purgation-complete .note-2 { bottom: 50%; left: 60%; animation: pu-note 7s ease-in-out infinite 1s; }
.scn-purgation-complete .note-3 { bottom: 42%; left: 52%; animation: pu-note 8s ease-in-out infinite 2.5s; }
.scn-purgation-complete .rhythm-line {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 2px;
  background: linear-gradient(90deg, transparent, #b09070 20%, transparent 80%);
  border-radius: 1px;
  animation: pu-rhythm-line 5s ease-in-out infinite alternate;
}

@keyframes pu-glow {
  0% { opacity: .6; filter: blur(8px); }
  50% { opacity: .9; filter: blur(12px); }
  100% { opacity: .7; filter: blur(6px); }
}
@keyframes pu-lyre {
  0%,100% { transform: translate(-50%,0) rotate(-1deg) scale(1); }
  50% { transform: translate(-50%,-2px) rotate(1deg) scale(1.02); }
}
@keyframes pu-note {
  0% { opacity: 0; transform: translateY(30px) scale(.5); }
  30% { opacity: .9; transform: translateY(0) scale(1.2); }
  60% { opacity: .6; transform: translateY(-20px) scale(.9); }
  100% { opacity: 0; transform: translateY(-40px) scale(.4); }
}
@keyframes pu-rhythm-line {
  0% { transform: scaleX(.2); opacity: .5; }
  50% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(.2); opacity: .5; }
}

/* Rhythms */
.scn-rhythms {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1e16 50%, #3a2a1e 100%),
    linear-gradient(135deg, #3d2a1c 0%, transparent 50%);
}
.scn-rhythms .bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(60,40,30,.05) 0px, rgba(60,40,30,.05) 20px, transparent 20px, transparent 40px);
}
.scn-rhythms .col {
  position: absolute; bottom: 20%; width: 12px;
  background: linear-gradient(180deg, #8a6a50 0%, #4a3020 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 0 8px rgba(100,70,40,.3);
}
.scn-rhythms .col-1 { left: 30%; height: 80px; animation: rh-col1 8s ease-in-out infinite; }
.scn-rhythms .col-2 { left: 48%; height: 100px; animation: rh-col2 10s ease-in-out infinite 2s; }
.scn-rhythms .col-3 { left: 66%; height: 70px; animation: rh-col3 7s ease-in-out infinite 1s; }
.scn-rhythms .base {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 6px;
  background: linear-gradient(90deg, #5a402a, #7a5a3a, #5a402a);
  border-radius: 3px;
  animation: rh-base 12s ease-in-out infinite alternate;
}
.scn-rhythms .pendulum {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 60px;
  transform-origin: top center;
  margin-left: -3px;
  background: linear-gradient(180deg, #b09070 0%, #6a4a30 100%);
  border-radius: 3px;
  animation: rh-pendulum 4s ease-in-out infinite;
}
.scn-rhythms .pendulum::after {
  content: ''; position: absolute; bottom: -6px; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8a070 0%, #6a4a30 100%);
  border-radius: 50%; transform: translateX(-50%);
}

@keyframes rh-col1 {
  0%,100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.15); opacity: 1; }
}
@keyframes rh-col2 {
  0%,100% { transform: scaleY(1); opacity: .7; }
  50% { transform: scaleY(1.2); opacity: 1; }
}
@keyframes rh-col3 {
  0%,100% { transform: scaleY(1); opacity: .6; }
  50% { transform: scaleY(1.1); opacity: .9; }
}
@keyframes rh-base {
  0% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-2px); }
}
@keyframes rh-pendulum {
  0% { transform: rotate(-15deg); }
  25% { transform: rotate(-5deg); }
  50% { transform: rotate(15deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(-15deg); }
}

/* Damon on Rhythms */
.scn-damon-on-rhythms {
  background:
    linear-gradient(180deg, #1a1412 0%, #2c221c 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 40%, #4a3525 0%, transparent 70%);
}
.scn-damon-on-rhythms .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(60,40,30,.1) 0%, transparent 50%, rgba(60,40,30,.1) 100%);
}
.scn-damon-on-rhythms .glow {
  position: absolute; bottom: 20%; left: 45%; width: 100px; height: 100px;
  transform: translate(-50%,0);
  background: radial-gradient(circle, #a08050 0%, transparent 60%);
  border-radius: 50%;
  animation: da-glow 5s ease-in-out infinite alternate;
}
.scn-damon-on-rhythms .wave {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent, #8a7a5a 20%, transparent 80%);
  border-radius: 4px;
  filter: blur(1px);
  animation: da-wave 6s ease-in-out infinite;
}
.scn-damon-on-rhythms .wave-a { bottom: 30%; animation-duration: 7s; }
.scn-damon-on-rhythms .wave-b { bottom: 35%; animation-duration: 9s; animation-delay: 1s; transform: scaleX(.7); }
.scn-damon-on-rhythms .wave-c { bottom: 25%; animation-duration: 5s; animation-delay: 2s; transform: scaleX(.5); }
.scn-damon-on-rhythms .figure-damon {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: da-figure 8s ease-in-out infinite;
}

@keyframes da-glow {
  0% { opacity: .5; filter: blur(6px); }
  50% { opacity: .9; filter: blur(15px); }
  100% { opacity: .6; filter: blur(8px); }
}
@keyframes da-wave {
  0% { opacity: .3; transform: translateX(-30px); }
  25% { opacity: .8; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(30px); }
  75% { opacity: .8; transform: translateX(0); }
  100% { opacity: .3; transform: translateX(-30px); }
}
@keyframes da-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-45%) rotate(-2deg) scale(1.02); }
  50% { transform: translateX(-50%) rotate(1deg) scale(.98); }
  75% { transform: translateX(-55%) rotate(-1deg) scale(1.01); }
}

/* Grace in Rhythm */
.scn-grace-in-rhythm {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 70%, #5a402a 0%, transparent 60%);
}
.scn-grace-in-rhythm .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,50,30,.1) 0%, transparent 50%);
}
.scn-grace-in-rhythm .glow {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 140px;
  transform: translate(-50%,0);
  background: radial-gradient(circle, #b09870 0%, transparent 60%);
  border-radius: 50%;
  animation: gr-glow 6s ease-in-out infinite alternate;
}
.scn-grace-in-rhythm .dancer-body {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e18 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gr-body 5s ease-in-out infinite;
}
.scn-grace-in-rhythm .dancer-skirt {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  animation: gr-skirt 5s ease-in-out infinite;
}
.scn-grace-in-rhythm .ribbon {
  position: absolute; bottom: 40%; height: 4px;
  background: linear-gradient(90deg, transparent, #b09870 50%, transparent);
  border-radius: 2px;
  filter: blur(1px);
}
.scn-grace-in-rhythm .ribbon-1 { left: 30%; width: 60px; animation: gr-ribbon 7s ease-in-out infinite; }
.scn-grace-in-rhythm .ribbon-2 { left: 55%; width: 50px; animation: gr-ribbon 8s ease-in-out infinite 1s; transform: scaleX(-1); }
.scn-grace-in-rhythm .ground {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 2px;
  background: linear-gradient(90deg, transparent, #5a402a 30%, transparent 70%);
  border-radius: 1px;
  animation: gr-ground 10s ease-in-out infinite alternate;
}

@keyframes gr-glow {
  0% { opacity: .5; filter: blur(10px); }
  50% { opacity: .9; filter: blur(18px); }
  100% { opacity: .6; filter: blur(8px); }
}
@keyframes gr-body {
  0%,100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  60% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes gr-skirt {
  0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  30% { transform: translateX(-50%) rotate(5deg) scale(1.1); }
  60% { transform: translateX(-50%) rotate(-5deg) scale(.95); }
}
@keyframes gr-ribbon {
  0% { transform: translateX(-20px) rotate(0deg) scaleX(1); opacity: .3; }
  25% { transform: translateX(0) rotate(5deg) scaleX(1.2); opacity: .8; }
  50% { transform: translateX(20px) rotate(0deg) scaleX(1); opacity: 1; }
  75% { transform: translateX(0) rotate(-5deg) scaleX(1.2); opacity: .8; }
  100% { transform: translateX(-20px) rotate(0deg) scaleX(1); opacity: .3; }
}
@keyframes gr-ground {
  0% { transform: scaleX(.8); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .8; }
  100% { transform: scaleX(.8); opacity: .5; }
}

/* scene: temperance-agreement-rulers (calm, bright interior) */
.scn-temperance-agreement-rulers {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3cfa0 40%, #c8aa7a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-temperance-agreement-rulers .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #f0e0b8 0%, #dcc896 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  animation: ta-wall 16s ease-in-out infinite alternate;
}
.scn-temperance-agreement-rulers .column-left {
  position: absolute; bottom: 20%; left: 10%;
  width: 8%; height: 60%;
  background: linear-gradient(90deg, #e3cfaa 0%, #fff4e0 30%, #d4bb8e 70%);
  border-radius: 4%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.15);
  transform: perspective(800px) rotateY(-2deg);
  animation: ta-pillar 12s ease-in-out infinite;
}
.scn-temperance-agreement-rulers .column-right {
  position: absolute; bottom: 20%; right: 10%;
  width: 8%; height: 60%;
  background: linear-gradient(90deg, #d4bb8e 0%, #fff4e0 30%, #e3cfaa 70%);
  border-radius: 4%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.15);
  transform: perspective(800px) rotateY(2deg);
  animation: ta-pillar 14s ease-in-out infinite reverse;
}
.scn-temperance-agreement-rulers .table {
  position: absolute; bottom: 22%; left: 50%;
  width: 40%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8955a 0%, #a67b45 100%);
  border-radius: 2% 2% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-temperance-agreement-rulers .ruler {
  position: absolute; bottom: 28%; left: 32%;
  width: 14%; height: 38%;
  background: linear-gradient(180deg, #6b3a2a 0%, #3d2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 8s ease-in-out infinite;
}
.scn-temperance-agreement-rulers .subject {
  position: absolute; bottom: 28%; right: 32%;
  width: 14%; height: 38%;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-figure 10s ease-in-out infinite reverse;
}
.scn-temperance-agreement-rulers .scroll {
  position: absolute; bottom: 32%; left: 50%;
  width: 20%; height: 3%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #f0e0b0 0%, #fff8e0 25%, #e8d0a0 75%, #f5e8c0 100%);
  border-radius: 10% 10% 10% 10% / 40% 40% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ta-scroll 20s ease-in-out infinite;
}
.scn-temperance-agreement-rulers .lamp {
  position: absolute; bottom: 44%; left: 48%;
  width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 60%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,215,0,0.4);
  animation: ta-lamp 4s ease-in-out infinite alternate;
}
@keyframes ta-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ta-pillar { 0% { transform: perspective(800px) rotateY(-2deg) scaleY(1); } 50% { transform: perspective(800px) rotateY(0deg) scaleY(1.01); } 100% { transform: perspective(800px) rotateY(2deg) scaleY(0.99); } }
@keyframes ta-figure { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ta-scroll { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(0.95); } }
@keyframes ta-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,215,0,0.3); } 50% { box-shadow: 0 0 40px 12px rgba(255,215,0,0.6); } 100% { box-shadow: 0 0 25px 6px rgba(255,215,0,0.4); } }

/* scene: hunting-for-justice (tense, bright interior) */
.scn-hunting-for-justice {
  background:
    linear-gradient(180deg, #2a1f2e 0%, #3a2a3e 30%, #4a3a4e 70%, #5a4a5e 100%),
    radial-gradient(circle at 30% 80%, #7a5a6a 0%, transparent 50%);
}
.scn-hunting-for-justice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
  animation: hf-floor 8s ease-in-out infinite alternate;
}
.scn-hunting-for-justice .pillar-left {
  position: absolute; bottom: 18%; left: 8%;
  width: 6%; height: 70%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 70%);
  border-radius: 3%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateY(3deg);
  animation: hf-pillar 6s ease-in-out infinite;
}
.scn-hunting-for-justice .pillar-right {
  position: absolute; bottom: 18%; right: 8%;
  width: 6%; height: 70%;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 30%, #6a5a4a 70%);
  border-radius: 3%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateY(-3deg);
  animation: hf-pillar 6s ease-in-out infinite reverse;
}
.scn-hunting-for-justice .hunter {
  position: absolute; bottom: 22%; left: 50%;
  width: 12%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: hf-hunter 3s ease-in-out infinite;
}
.scn-hunting-for-justice .lantern {
  position: absolute; bottom: 48%; left: 48%;
  width: 5%; height: 7%;
  background: radial-gradient(circle, #ffcc55 0%, #cc8811 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,200,50,0.5);
  animation: hf-lantern 2s ease-in-out infinite alternate;
}
.scn-hunting-for-justice .shadow {
  position: absolute; bottom: 18%; left: 30%;
  width: 40%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hf-shadow 5s ease-in-out infinite alternate;
}
.scn-hunting-for-justice .spear {
  position: absolute; bottom: 55%; left: 56%;
  width: 2%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: hf-spear 2s ease-in-out infinite;
}
@keyframes hf-floor { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes hf-pillar { 0% { transform: perspective(600px) rotateY(3deg) scaleX(1); } 50% { transform: perspective(600px) rotateY(0deg) scaleX(1.02); } 100% { transform: perspective(600px) rotateY(-3deg) scaleX(0.98); } }
@keyframes hf-hunter { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0); } 75% { transform: translateX(-50%) translateY(2px) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes hf-lantern { 0% { box-shadow: 0 0 30px 10px rgba(255,200,50,0.4); } 30% { box-shadow: 0 0 60px 25px rgba(255,200,50,0.7); } 60% { box-shadow: 0 0 20px 5px rgba(255,200,50,0.3); } 100% { box-shadow: 0 0 50px 20px rgba(255,200,50,0.6); } }
@keyframes hf-shadow { 0% { opacity:0.5; transform: translateX(0); } 100% { opacity:0.8; transform: translateX(10px); } }
@keyframes hf-spear { 0% { transform: rotate(0); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0); } }

/* scene: justice-at-feet (funny, bright interior) */
.scn-justice-at-feet {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffdd99 30%, #f5c56a 70%),
    radial-gradient(circle at 50% 20%, #fff5e0 0%, transparent 60%);
}
.scn-justice-at-feet .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #aad0ff 0%, #cce0ff 100%);
  border-radius: 0 0 60% 60%;
  animation: jf-sky 20s ease-in-out infinite alternate;
}
.scn-justice-at-feet .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4b88a 0%, #b8955a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: jf-ground 12s ease-in-out infinite alternate;
}
.scn-justice-at-feet .searcher {
  position: absolute; bottom: 28%; left: 50%;
  width: 18%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jf-searcher 4s ease-in-out infinite;
}
.scn-justice-at-feet .justice-figure {
  position: absolute; bottom: 22%; left: 42%;
  width: 8%; height: 10%;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 15px 5px rgba(255,215,0,0.6);
  animation: jf-justice 2s ease-in-out infinite alternate;
}
.scn-justice-at-feet .stars {
  position: absolute; top: 8%; left: 10%;
  width: 60%; height: 20%;
  background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,0,0.3) 10px, rgba(255,255,0,0.3) 11px),
              repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(255,255,0,0.3) 10px, rgba(255,255,0,0.3) 11px);
  border-radius: 50%;
  filter: blur(2px);
  animation: jf-stars 8s linear infinite;
}
.scn-justice-at-feet .exclamation {
  position: absolute; top: 38%; left: 38%;
  width: 4%; height: 10%;
  background: linear-gradient(180deg, #ff4444 0%, #cc2222 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 3px rgba(255,68,68,0.3);
  animation: jf-exclaim 1.5s ease-in-out infinite alternate;
}
@keyframes jf-sky { 0% { opacity:0.8; transform: translateY(0); } 50% { opacity:1; transform: translateY(-5px); } 100% { opacity:0.9; transform: translateY(0); } }
@keyframes jf-ground { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } 100% { transform: scaleY(0.98) translateY(2px); } }
@keyframes jf-searcher { 0% { transform: translateX(-50%) rotate(0); } 20% { transform: translateX(-50%) rotate(8deg) translateY(-2px); } 40% { transform: translateX(-50%) rotate(0) translateY(0); } 60% { transform: translateX(-50%) rotate(-8deg) translateY(-2px); } 80% { transform: translateX(-50%) rotate(0) translateY(0); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes jf-justice { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-5px, -5px) scale(1.2) rotate(10deg); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes jf-stars { 0% { opacity:0.4; transform: rotate(0); } 100% { opacity:0.8; transform: rotate(360deg); } }
@keyframes jf-exclaim { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.6; } }

/* scene: justice-as-remaining-virtue (calm, bright interior) */
.scn-justice-as-remaining-virtue {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a88a 100%),
    radial-gradient(circle at 50% 40%, #fff8e0 0%, transparent 70%);
}
.scn-justice-as-remaining-virtue .bg-temp {
  position: absolute; top: 10%; left: 10%;
  width: 20%; height: 30%;
  background: radial-gradient(circle, #b0d0ff 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: jv-fade 15s ease-in-out infinite alternate;
}
.scn-justice-as-remaining-virtue .bg-courage {
  position: absolute; top: 10%; right: 10%;
  width: 20%; height: 30%;
  background: radial-gradient(circle, #ffb0b0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: jv-fade 15s ease-in-out infinite alternate-reverse;
}
.scn-justice-as-remaining-virtue .bg-wisdom {
  position: absolute; bottom: 30%; left: 20%;
  width: 15%; height: 25%;
  background: radial-gradient(circle, #b0ffb0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: jv-fade 18s ease-in-out infinite alternate;
}
.scn-justice-as-remaining-virtue .core {
  position: absolute; top: 35%; left: 50%;
  width: 20%; height: 25%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffd700 0%, #ffaa00 50%, #cc7700 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,215,0,0.5);
  animation: jv-core 6s ease-in-out infinite alternate;
}
.scn-justice-as-remaining-virtue .aura {
  position: absolute; top: 30%; left: 50%;
  width: 30%; height: 35%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(255,215,0,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: jv-aura 8s ease-in-out infinite;
}
.scn-justice-as-remaining-virtue .rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 20px,
    rgba(255,215,0,0.05) 20px,
    rgba(255,215,0,0.05) 21px
  );
  animation: jv-rays 30s linear infinite;
}
@keyframes jv-fade { 0% { opacity:0.1; transform: scale(0.8); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.2; transform: scale(0.9); } }
@keyframes jv-core { 0% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 40px 15px rgba(255,215,0,0.4); } 50% { transform: translate(-50%, -50%) scale(1.1); box-shadow: 0 0 70px 30px rgba(255,215,0,0.6); } 100% { transform: translate(-50%, -50%) scale(0.95); box-shadow: 0 0 50px 20px rgba(255,215,0,0.5); } }
@keyframes jv-aura { 0% { opacity:0.3; transform: translate(-50%, -50%) scale(1); } 50% { opacity:0.6; transform: translate(-50%, -50%) scale(1.15); } 100% { opacity:0.4; transform: translate(-50%, -50%) scale(0.9); } }
@keyframes jv-rays { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }

.scn-number-of-generation {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e16 40%, #1a0e08 100%), 
              radial-gradient(ellipse at 30% 50%, #3a2a18 0%, transparent 70%);
}
.scn-number-of-generation .bg-dim {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 100%, transparent 40%, #0d0804 90%);
  animation: ng-shadow 8s ease-in-out infinite alternate;
}
.scn-number-of-generation .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0c 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-number-of-generation .lamp {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #8a5a20 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #d4a040;
  animation: ng-lamp 4s ease-in-out infinite alternate;
}
.scn-number-of-generation .light-cone {
  position: absolute; bottom: 25%; right: 28%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,180,120,0.3) 0%, transparent 70%);
  transform: rotate(-10deg); filter: blur(8px);
  animation: ng-flicker 3s ease-in-out infinite alternate;
}
.scn-number-of-generation .triangle {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: 0.7; animation: ng-rotate 12s linear infinite;
}
.scn-number-of-generation .dots {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #d4b060 0%, transparent 50%);
  box-shadow: 8px -8px 0 0 #b08a40, 16px 0 0 0 #d4b060;
  animation: ng-dots 6s ease-in-out infinite alternate;
}
.scn-number-of-generation .hand {
  position: absolute; bottom: 15%; left: 25%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(20deg);
  animation: ng-point 5s ease-in-out infinite alternate;
}
@keyframes ng-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ng-lamp { 0% { box-shadow: 0 0 15px 4px #c09040; } 50% { box-shadow: 0 0 30px 10px #e0b060; } 100% { box-shadow: 0 0 20px 6px #c09040; } }
@keyframes ng-flicker { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes ng-rotate { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ng-dots { 0% { transform: translate(0,0) } 50% { transform: translate(4px,-2px) } 100% { transform: translate(-2px,2px) } }
@keyframes ng-point { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(25deg) translate(3px,-1px) } 100% { transform: rotate(15deg) translate(0,0) } }

.scn-timocracy-characteristics {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 50%, #c0b090 100%), 
              radial-gradient(ellipse at 50% 80%, #e0d8c0 0%, transparent 70%);
}
.scn-timocracy-characteristics .bg-court {
  position: absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,0.02) 30px, rgba(0,0,0,0.02) 31px);
  animation: tc-shimmer 10s ease-in-out infinite alternate;
}
.scn-timocracy-characteristics .column-left {
  position: absolute; bottom:10%; left:10%; width:20px; height:70%;
  background: linear-gradient(90deg, #b8a888 0%, #e8dcc8 40%, #b8a888 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.15);
  animation: tc-column 8s ease-in-out infinite alternate;
}
.scn-timocracy-characteristics .column-right {
  position: absolute; bottom:10%; right:10%; width:20px; height:70%;
  background: linear-gradient(90deg, #b8a888 0%, #e8dcc8 40%, #b8a888 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.15);
  animation: tc-column 8s ease-in-out infinite alternate-reverse;
}
.scn-timocracy-characteristics .pedestal {
  position: absolute; bottom:5%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: tc-pedestal 12s ease-in-out infinite;
}
.scn-timocracy-characteristics .shield {
  position: absolute; bottom:30%; left:43%; width:40px; height:50px;
  background: radial-gradient(circle at 50% 40%, #b09060 0%, #806840 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  animation: tc-shield 6s ease-in-out infinite alternate;
}
.scn-timocracy-characteristics .figure {
  position: absolute; bottom:20%; left:48%; width:18px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: tc-figure 4s ease-in-out infinite;
}
.scn-timocracy-characteristics .shadow-slice {
  position: absolute; bottom:0; left:20%; right:20%; height:60%;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.1) 100%);
  animation: tc-shadow 8s ease-in-out infinite alternate;
}
@keyframes tc-shimmer { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes tc-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes tc-pedestal { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tc-shield { 0% { transform: scale(1) } 50% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(1) } }
@keyframes tc-figure { 0% { transform: translateX(0) } 25% { transform: translateX(3px) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes tc-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }

.scn-timocratical-man {
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 50%, #c8b898 100%), 
              radial-gradient(ellipse at 80% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-timocratical-man .bg-hall {
  position: absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(0,0,0,0.03) 50px, rgba(0,0,0,0.03) 51px);
  animation: tm-hall 12s linear infinite;
}
.scn-timocratical-man .arch {
  position: absolute; top:5%; left:25%; right:25%; height:40%;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #b8a888 61%, #c8b898 65%, transparent 66%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 80% 80%, 50% 100%, 20% 80%, 0% 100%);
  animation: tm-arch 10s ease-in-out infinite alternate;
}
.scn-timocratical-man .man {
  position: absolute; bottom:15%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-man 3s ease-in-out infinite;
}
.scn-timocratical-man .spear {
  position: absolute; bottom:25%; left:42%; width:3px; height:35px;
  background: linear-gradient(180deg, #a09070 0%, #605030 100%);
  transform: rotate(-15deg); transform-origin: bottom;
  animation: tm-spear 2s ease-in-out infinite alternate;
}
.scn-timocratical-man .sweat {
  position: absolute; top:30%; left:55%; width:6px; height:6px;
  background: radial-gradient(circle, #b8d8f0, transparent 70%);
  border-radius: 50%; filter: blur(1px);
  animation: tm-sweat 4s ease-in-out infinite;
}
.scn-timocratical-man .glint {
  position: absolute; top:10%; left:50%; width:12px; height:12px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 80%);
  border-radius: 50%; filter: blur(2px);
  animation: tm-glint 5s ease-in-out infinite alternate;
}
.scn-timocratical-man .shadow-strip {
  position: absolute; bottom:0; left:30%; right:30%; height:20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.08));
  animation: tm-strip 6s ease-in-out infinite alternate;
}
@keyframes tm-hall { 0% { background-position: 0 0 } 100% { background-position: 0 100px } }
@keyframes tm-arch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes tm-man { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tm-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-18deg) } }
@keyframes tm-sweat { 0%,100% { opacity:0 } 50% { opacity:0.7 } }
@keyframes tm-glint { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes tm-strip { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.1 } }

.scn-oligarchy-definition {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 50%, #b8a888 100%), 
              radial-gradient(ellipse at 50% 10%, #f0e8d8 0%, transparent 60%);
}
.scn-oligarchy-definition .bg-chamber {
  position: absolute; inset:0;
  background: linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 50%);
  animation: od-fade 10s ease-in-out infinite alternate;
}
.scn-oligarchy-definition .table-rich {
  position: absolute; bottom:10%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  animation: od-table 8s ease-in-out infinite alternate;
}
.scn-oligarchy-definition .coins {
  position: absolute; bottom:15%; left:30%; right:30%; height:15%;
  background: radial-gradient(circle at 20% 50%, #c8a040 0%, transparent 30%) ,
              radial-gradient(circle at 60% 30%, #b09030 0%, transparent 30%) ,
              radial-gradient(circle at 80% 70%, #d4b050 0%, transparent 30%);
  animation: od-coins 5s ease-in-out infinite alternate;
}
.scn-oligarchy-definition .scales {
  position: absolute; bottom:20%; left:40%; width:40px; height:40px;
  background: radial-gradient(ellipse at 50% 20%, #a89878 0%, #706040 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: od-scales 6s ease-in-out infinite;
}
.scn-oligarchy-definition .hands-poor {
  position: absolute; bottom:12%; left:25%; width:14px; height:18px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(10deg);
  animation: od-hands 4s ease-in-out infinite alternate;
}
.scn-oligarchy-definition .chain {
  position: absolute; bottom:22%; left:35%; width:40px; height:2px;
  background: repeating-linear-gradient(90deg, #706040, #706040 4px, transparent 4px, transparent 6px);
  animation: od-chain 3s ease-in-out infinite alternate;
}
@keyframes od-fade { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes od-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes od-coins { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes od-scales { 0% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-4deg) } 100% { transform: rotate(0deg) } }
@keyframes od-hands { 0% { transform: translate(0,0) rotate(10deg) } 50% { transform: translate(3px,-1px) rotate(15deg) } 100% { transform: translate(0,0) rotate(10deg) } }
@keyframes od-chain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-no-legislation-details { background: linear-gradient(180deg, #f5f0e8 0%, #e8dfc8 40%, #d4c9ae 100%), radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%); }

.scn-no-legislation-details .wall-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #d9d0b8 0%, #c4b89a 100%); animation: nld-wall 12s ease-in-out infinite alternate; }
.scn-no-legislation-details .desk { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #8b7a5e 0%, #6b5a3e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3); animation: nld-desk 8s ease-in-out infinite; }
.scn-no-legislation-details .scholar { position: absolute; bottom: 25%; left: 35%; width: 40px; 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: nld-scholar 5s ease-in-out infinite alternate; }
.scn-no-legislation-details .scroll { position: absolute; bottom: 20%; left: 40%; width: 80px; height: 12px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 50%; transform: rotate(-5deg); animation: nld-scroll 10s ease-in-out infinite; }
.scn-no-legislation-details .lamp { position: absolute; bottom: 28%; left: 55%; width: 16px; height: 30px; background: linear-gradient(180deg, #c0a040 0%, #806020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: nld-lamp 4s ease-in-out infinite alternate; }
.scn-no-legislation-details .lamp-glow { position: absolute; bottom: 30%; left: 54%; width: 40px; height: 40px; background: radial-gradient(circle, #ffd680 0%, #ffb040 40%, transparent 70%); border-radius: 50%; animation: nld-glow 3s ease-in-out infinite alternate; }
.scn-no-legislation-details .window-fill { position: absolute; top: 10%; right: 10%; width: 90px; height: 120px; background: linear-gradient(135deg, #e8f0ff 0%, #b0c8e0 100%); border: 6px solid #a09078; border-radius: 4%; animation: nld-window 15s ease-in-out infinite alternate; }
.scn-no-legislation-details .curtain-left { position: absolute; top: 8%; right: 40%; width: 30px; height: 130px; background: linear-gradient(180deg, #b08868 0%, #8a6040 100%); border-radius: 0 0 40% 40%; animation: nld-curtain-l 8s ease-in-out infinite alternate; }
.scn-no-legislation-details .curtain-right { position: absolute; top: 8%; left: 40%; width: 30px; height: 130px; background: linear-gradient(180deg, #b08868 0%, #8a6040 100%); border-radius: 0 0 40% 40%; animation: nld-curtain-r 8s ease-in-out infinite alternate; }

@keyframes nld-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes nld-desk { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes nld-scholar { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes nld-scroll { 0%, 100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(5px) } }
@keyframes nld-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.97) } }
@keyframes nld-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.8; transform: scale(1.05) } }
@keyframes nld-window { 0% { background: #e8f0ff; } 50% { background: #d0e0ff; } 100% { background: #f0f8ff; } }
@keyframes nld-curtain-l { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(10px) scaleX(0.9) } }
@keyframes nld-curtain-r { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-10px) scaleX(0.9) } }

.scn-perpetual-law-making { background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a89880 100%), radial-gradient(ellipse at 30% 70%, #fff0c0 0%, transparent 50%); }

.scn-perpetual-law-making .floor-tiles { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, #b0a090 0px, #b0a090 4px, #c0b0a0 4px, #c0b0a0 8px); opacity: 0.3; animation: plm-floor 1s linear infinite; }
.scn-perpetual-law-making .table { position: absolute; bottom: 15%; left: 25%; right: 25%; height: 18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.4); animation: plm-table 0.5s ease-in-out infinite alternate; }
.scn-perpetual-law-making .scribe { position: absolute; bottom: 28%; left: 40%; width: 36px; 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: plm-scribe 0.3s ease-in-out infinite alternate; }
.scn-perpetual-law-making .scroll-stack { position: absolute; bottom: 18%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #e8d0b0 0%, #b89878 100%); border-radius: 10%; transform: rotate(-10deg); animation: plm-stack 2s ease-in-out infinite alternate; }
.scn-perpetual-law-making .inkwell { position: absolute; bottom: 20%; left: 50%; width: 20px; height: 24px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; animation: plm-ink 0.6s ease-in-out infinite; }
.scn-perpetual-law-making .sand-timer { position: absolute; bottom: 22%; right: 30%; width: 18px; height: 36px; background: linear-gradient(180deg, #c0a060 0%, #a08040 50%, #806020 100%); border-radius: 30%; animation: plm-timer 5s linear infinite; }
.scn-perpetual-law-making .candle { position: absolute; bottom: 28%; left: 60%; width: 8px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20%; animation: plm-candle 2s ease-in-out infinite alternate; }
.scn-perpetual-law-making .candle-flicker { position: absolute; bottom: 32%; left: 59%; width: 20px; height: 20px; background: radial-gradient(circle, #ffcc40 0%, #ff8800 50%, transparent 80%); border-radius: 50%; animation: plm-flicker 0.15s steps(2) infinite; }

@keyframes plm-floor { 0% { background-position: 0 0 } 100% { background-position: 8px 8px } }
@keyframes plm-table { 0% { transform: translateY(0) rotate(-0.5deg) } 100% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes plm-scribe { 0% { transform: translateY(0) rotate(-3deg) scaleX(1) } 50% { transform: translateY(-1px) rotate(2deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(-1deg) scaleX(0.98) } }
@keyframes plm-stack { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(8px) } 100% { transform: rotate(-12deg) translateX(-5px) } }
@keyframes plm-ink { 0%, 100% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } }
@keyframes plm-timer { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes plm-candle { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.9) } }
@keyframes plm-flicker { 0% { opacity: 1 } 50% { opacity: 0.7 } 100% { opacity: 0.9 } }

.scn-states-equal-invalids { background: linear-gradient(180deg, #c8d0d8 0%, #a0b0b8 40%, #788890 100%), radial-gradient(ellipse at 60% 30%, #e0e8f0 0%, transparent 70%); }

.scn-states-equal-invalids .room-shadow { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.4) 100%); animation: sei-shadow 20s ease-in-out infinite alternate; }
.scn-states-equal-invalids .sickbed { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); animation: sei-bed 12s ease-in-out infinite; }
.scn-states-equal-invalids .invalid-figure { position: absolute; bottom: 28%; left: 38%; width: 44px; height: 60px; background: linear-gradient(180deg, #5a5a4a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sei-figure 6s ease-in-out infinite alternate; }
.scn-states-equal-invalids .medicine-bottle { position: absolute; bottom: 22%; right: 25%; width: 18px; height: 30px; background: linear-gradient(180deg, #80a080 0%, #507050 100%); border-radius: 20% 20% 10% 10%; animation: sei-bottle 10s ease-in-out infinite; }
.scn-states-equal-invalids .water-glass { position: absolute; bottom: 20%; left: 25%; width: 16px; height: 24px; background: linear-gradient(180deg, #d0e0e8 0%, #a0b0c0 100%); border-radius: 10%; animation: sei-glass 8s ease-in-out infinite alternate; }
.scn-states-equal-invalids .doctor-silhouette { position: absolute; bottom: 32%; right: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sei-doctor 15s ease-in-out infinite; }
.scn-states-equal-invalids .window-blinds { position: absolute; top: 10%; left: 10%; width: 70px; height: 100px; background: repeating-linear-gradient(180deg, #c8b8a8 0px, #c8b8a8 6px, #a89080 6px, #a89080 8px); border: 4px solid #7a6a5a; animation: sei-blinds 20s ease-in-out infinite alternate; }
.scn-states-equal-invalids .vial-glow { position: absolute; bottom: 24%; right: 24%; width: 10px; height: 10px; background: radial-gradient(circle, #88ff88 0%, #40cc40 50%, transparent 80%); border-radius: 50%; animation: sei-vial 4s ease-in-out infinite alternate; }

@keyframes sei-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }
@keyframes sei-bed { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sei-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) scale(1.01) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sei-bottle { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-4deg) } }
@keyframes sei-glass { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.9; transform: scale(0.95) } }
@keyframes sei-doctor { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }
@keyframes sei-blinds { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }
@keyframes sei-vial { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: 0.7; transform: scale(0.9) } }

.scn-hydra-of-legislation { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c8b890 100%), radial-gradient(ellipse at 70% 40%, #ffe8a0 0%, transparent 60%); }

.scn-hydra-of-legislation .stage-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); animation: hol-bg 20s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .hydra-body { position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 80px; height: 70px; background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%); border-radius: 50% 50% 40% 40%; animation: hol-body 4s ease-in-out infinite; }
.scn-hydra-of-legislation .head-1 { position: absolute; bottom: 45%; left: 42%; width: 30px; height: 30px; background: linear-gradient(180deg, #c8553d 0%, #a04030 100%); border-radius: 50%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: hol-head1 1s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .head-2 { position: absolute; bottom: 48%; left: 50%; width: 28px; height: 28px; background: linear-gradient(180deg, #d89848 0%, #b87830 100%); border-radius: 50%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: hol-head2 1.2s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .head-3 { position: absolute; bottom: 42%; left: 58%; width: 32px; height: 32px; background: linear-gradient(180deg, #70a0c0 0%, #5080a0 100%); border-radius: 50%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: hol-head3 0.9s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .quill-1 { position: absolute; bottom: 50%; left: 40%; width: 24px; height: 6px; background: linear-gradient(90deg, #e8d0a0 0%, #c8a870 100%); border-radius: 40%; transform: rotate(30deg); animation: hol-quill1 0.6s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .quill-2 { position: absolute; bottom: 52%; left: 50%; width: 22px; height: 5px; background: linear-gradient(90deg, #e8d0a0 0%, #c8a870 100%); border-radius: 40%; transform: rotate(-20deg); animation: hol-quill2 0.7s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .quill-3 { position: absolute; bottom: 48%; right: 38%; width: 26px; height: 6px; background: linear-gradient(90deg, #e8d0a0 0%, #c8a870 100%); border-radius: 40%; transform: rotate(10deg); animation: hol-quill3 0.5s ease-in-out infinite alternate; }
.scn-hydra-of-legislation .paper-storm { position: absolute; top: 15%; left: 20%; right: 20%; bottom: 40%; background: repeating-linear-gradient(45deg, #f8f0e0 0px, #f8f0e0 8px, #e8dcc8 8px, #e8dcc8 16px); opacity: 0.6; animation: hol-paper 3s linear infinite; }

@keyframes hol-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hol-body { 0%, 100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes hol-head1 { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-10px) rotate(10deg) } }
@keyframes hol-head2 { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-8px) rotate(-10deg) } }
@keyframes hol-head3 { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-12px) rotate(5deg) } }
@keyframes hol-quill1 { 0% { transform: rotate(30deg) translateY(0) } 100% { transform: rotate(35deg) translateY(-5px) } }
@keyframes hol-quill2 { 0% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(-15deg) translateY(-4px) } }
@keyframes hol-quill3 { 0% { transform: rotate(10deg) translateY(0) } 100% { transform: rotate(15deg) translateY(-6px) } }
@keyframes hol-paper { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }

.scn-the-object-of-opinion {
  background: 
    linear-gradient(180deg, #f5eddd 0%, #e6d9c4 40%, #d4c4ac 100%),
    radial-gradient(ellipse at 50% 100%, #b8a58c 0%, transparent 70%);
}
.scn-the-object-of-opinion .wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #f5eddd 0%, #e6d9c4 100%); }
.scn-the-object-of-opinion .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #d4c4ac 0%, #b8a58c 100%); }
.scn-the-object-of-opinion .window { position:absolute; top:15%; left:50%; width:120px; height:160px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0d8a0 70%, #d4b880 100%); border-radius:10px; box-shadow:inset 0 0 40px rgba(255,248,224,0.5), 0 0 80px rgba(240,216,160,0.3); animation: obj1-window 6s ease-in-out infinite alternate; }
.scn-the-object-of-opinion .table { position:absolute; bottom:28%; left:50%; width:140px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.3); }
.scn-the-object-of-opinion .book { position:absolute; bottom:33%; left:calc(50% - 20px); width:40px; height:30px; background:linear-gradient(180deg, #8a6a50 0%, #5a3a2a 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,0.4); animation: obj1-book 8s ease-in-out infinite; }
.scn-the-object-of-opinion .glowing-orb { position:absolute; bottom:35%; left:calc(50% + 30px); width:24px; height:24px; background:radial-gradient(circle, #ffe080 0%, #f0b840 100%); border-radius:50%; box-shadow:0 0 30px 10px #f0b840, 0 0 60px 20px rgba(240,184,64,0.4); animation: obj1-orb 3s ease-in-out infinite alternate; }
.scn-the-object-of-opinion .dust-a, .dust-b { position:absolute; width:4px; height:4px; background:rgba(255,255,255,0.6); border-radius:50%; filter:blur(1px); }
.scn-the-object-of-opinion .dust-a { top:20%; left:30%; animation: obj1-dust 15s linear infinite; }
.scn-the-object-of-opinion .dust-b { top:35%; left:60%; animation: obj1-dust 20s linear infinite reverse; }
@keyframes obj1-window {
  0% { opacity:0.9; box-shadow:inset 0 0 40px rgba(255,248,224,0.5), 0 0 80px rgba(240,216,160,0.3); }
  50% { opacity:1; box-shadow:inset 0 0 50px rgba(255,248,224,0.7), 0 0 100px rgba(240,216,160,0.5); }
  100% { opacity:0.95; box-shadow:inset 0 0 30px rgba(255,248,224,0.4), 0 0 70px rgba(240,216,160,0.25); }
}
@keyframes obj1-book {
  0%,100% { transform:rotate(-5deg) translateY(0); }
  50% { transform:rotate(-5deg) translateY(-2px); }
}
@keyframes obj1-orb {
  0% { transform:scale(1); opacity:0.8; }
  50% { transform:scale(1.15); opacity:1; }
  100% { transform:scale(0.95); opacity:0.9; }
}
@keyframes obj1-dust {
  0% { transform:translateX(0) translateY(0) scale(1); opacity:0; }
  10% { opacity:1; }
  90% { opacity:1; }
  100% { transform:translateX(120px) translateY(-40px) scale(0.5); opacity:0; }
}

.scn-lovers-of-opinion {
  background:
    linear-gradient(180deg, #f2e6d8 0%, #e0d0bc 50%, #ccb8a0 100%),
    radial-gradient(ellipse at 50% 0%, #e0d0bc 0%, transparent 70%);
}
.scn-lovers-of-opinion .bg-hall { position:absolute; inset:0; background:linear-gradient(90deg, #f2e6d8 0%, #faf0e0 25%, #eaddce 75%, #cdbba8 100%); }
.scn-lovers-of-opinion .left-figure { position:absolute; bottom:25%; left:30%; width:30px; height:80px; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lov2-figure-l 6s ease-in-out infinite; }
.scn-lovers-of-opinion .right-figure { position:absolute; bottom:25%; right:30%; width:30px; height:80px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lov2-figure-r 6s ease-in-out infinite reverse; }
.scn-lovers-of-opinion .opinion-a, .opinion-b { position:absolute; width:18px; height:18px; border-radius:50%; background:radial-gradient(circle, #f8d080 0%, #d0a050 80%); box-shadow:0 0 20px 8px rgba(200,160,80,0.3); animation: lov2-float 10s ease-in-out infinite; }
.scn-lovers-of-opinion .opinion-a { top:30%; left:40%; animation-duration:10s; }
.scn-lovers-of-opinion .opinion-b { top:45%; left:55%; animation-duration:15s; background:radial-gradient(circle, #b0d0f0 0%, #7090b0 80%); box-shadow:0 0 20px 8px rgba(112,144,176,0.3); }
.scn-lovers-of-opinion .pedestal { position:absolute; bottom:28%; left:50%; width:80px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:4px; box-shadow:0 3px 6px rgba(0,0,0,0.2); }
.scn-lovers-of-opinion .chandelier { position:absolute; top:10%; left:50%; width:100px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #d0c0a8 0%, #b8a48c 100%); border-radius:50% 50% 0 0; clip-path:polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); filter:drop-shadow(0 8px 12px rgba(0,0,0,0.2)); animation: lov2-chandelier 4s ease-in-out infinite alternate; }
@keyframes lov2-figure-l {
  0%,100% { transform:translateX(0) rotate(0deg); }
  25% { transform:translateX(8px) rotate(3deg); }
  50% { transform:translateX(0) rotate(-2deg); }
  75% { transform:translateX(-6px) rotate(2deg); }
}
@keyframes lov2-figure-r {
  0%,100% { transform:translateX(0) rotate(0deg); }
  25% { transform:translateX(-8px) rotate(-3deg); }
  50% { transform:translateX(0) rotate(2deg); }
  75% { transform:translateX(6px) rotate(-2deg); }
}
@keyframes lov2-float {
  0% { transform:translateY(0) scale(1); opacity:0.7; }
  25% { transform:translateY(-20px) scale(1.1); opacity:1; }
  50% { transform:translateY(10px) scale(0.9); opacity:0.8; }
  75% { transform:translateY(-15px) scale(1.05); opacity:1; }
  100% { transform:translateY(0) scale(1); opacity:0.7; }
}
@keyframes lov2-chandelier {
  0% { transform:translateX(-50%) rotate(0deg); }
  100% { transform:translateX(-50%) rotate(2deg); }
}

.scn-philosophers-as-guardians {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #c8b8a4 40%, #a89480 100%),
    radial-gradient(ellipse at 50% 100%, #a89480 0%, transparent 60%);
}
.scn-philosophers-as-guardians .bg-room { position:absolute; inset:0; background:linear-gradient(90deg, #d8ccc0 0%, #e8ddd0 25%, #d8ccc0 75%, #c0b0a0 100%); }
.scn-philosophers-as-guardians .col-left { position:absolute; left:20%; top:0; bottom:0; width:30px; background:linear-gradient(90deg, #b0a090 0%, #c0b0a0 100%); box-shadow:inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-philosophers-as-guardians .col-right { position:absolute; right:20%; top:0; bottom:0; width:30px; background:linear-gradient(90deg, #c0b0a0 0%, #b0a090 100%); box-shadow:inset 4px 0 8px rgba(0,0,0,0.2); }
.scn-philosophers-as-guardians .guardian { position:absolute; bottom:25%; left:50%; width:36px; height:90px; transform:translateX(-50%); background:linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: phil3-guardian 4s ease-in-out infinite; }
.scn-philosophers-as-guardians .spear { position:absolute; bottom:33%; left:calc(50% + 20px); width:4px; height:70px; background:linear-gradient(180deg, #aaa 0%, #666 100%); border-radius:2px; transform:rotate(-10deg); transform-origin:bottom; animation: phil3-spear 4s ease-in-out infinite; }
.scn-philosophers-as-guardians .eternal-orb { position:absolute; top:12%; left:50%; width:40px; height:40px; transform:translateX(-50%); background:radial-gradient(circle, #f8e8c0 0%, #d8b060 80%, #a08040 100%); border-radius:50%; box-shadow:0 0 40px 15px #d8b060; animation: phil3-orb 8s linear infinite; }
.scn-philosophers-as-guardians .chaos-spark { position:absolute; top:40%; left:30%; width:6px; height:6px; background:radial-gradient(circle, #f8f0a0 0%, #d0b060 100%); border-radius:50%; box-shadow:0 0 10px 2px #d0b060; animation: phil3-spark 0.6s ease-in-out infinite alternate; }
.scn-philosophers-as-guardians .shadow { position:absolute; bottom:22%; left:40%; width:80px; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); transform:translateX(-50%); animation: phil3-shadow 4s ease-in-out infinite; }
@keyframes phil3-guardian {
  0%,100% { transform:translateX(-50%) rotate(0deg); }
  50% { transform:translateX(-50%) rotate(-2deg); }
}
@keyframes phil3-spear {
  0%,100% { transform:rotate(-10deg) translateY(0); }
  50% { transform:rotate(-10deg) translateY(-3px); }
}
@keyframes phil3-orb {
  0% { transform:translateX(-50%) scale(1); opacity:0.9; }
  25% { transform:translateX(-50%) scale(1.05); opacity:1; }
  50% { transform:translateX(-50%) scale(0.95); opacity:0.85; }
  75% { transform:translateX(-50%) scale(1.02); opacity:0.95; }
  100% { transform:translateX(-50%) scale(1); opacity:0.9; }
}
@keyframes phil3-spark {
  0% { transform:translate(0,0) scale(1); opacity:0.5; }
  100% { transform:translate(8px,-8px) scale(1.3); opacity:1; }
}
@keyframes phil3-shadow {
  0%,100% { transform:translateX(-50%) scaleX(1); }
  50% { transform:translateX(-50%) scaleX(0.8); }
}

.scn-philosopher-virtues {
  background:
    linear-gradient(180deg, #f7efde 0%, #ede0ce 40%, #dcccb8 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-philosopher-virtues .bg-study { position:absolute; inset:0; background:linear-gradient(180deg, #f7efde 0%, #ede0ce 60%, #dcccb8 100%); }
.scn-philosopher-virtues .figure-kneeling { position:absolute; bottom:20%; left:50%; width:32px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: virt4-kneel 8s ease-in-out infinite; }
.scn-philosopher-virtues .truth-orb { position:absolute; top:15%; left:50%; width:36px; height:36px; transform:translateX(-50%); background:radial-gradient(circle, #f8e8c0 0%, #e0c080 70%, #b89860 100%); border-radius:50%; box-shadow:0 0 50px 20px #e0c080, 0 0 80px 40px rgba(200,160,100,0.3); animation: virt4-orb 5s ease-in-out infinite alternate; }
.scn-philosopher-virtues .rays { position:absolute; top:10%; left:50%; width:200px; height:200px; transform:translate(-50%, -50%); background:radial-gradient(circle, rgba(240,216,160,0.1) 0%, transparent 80%); animation: virt4-rays 10s linear infinite; }
.scn-philosopher-virtues .step { position:absolute; bottom:28%; left:50%; width:60px; height:8px; transform:translateX(-50%); background:linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.2); }
.scn-philosopher-virtues .scroll { position:absolute; bottom:22%; left:calc(50% - 40px); width:20px; height:40px; background:linear-gradient(180deg, #d8c8b0 0%, #b8a088 100%); border-radius:2px; transform:rotate(15deg); box-shadow:0 2px 6px rgba(0,0,0,0.3); animation: virt4-scroll 6s ease-in-out infinite; }
.scn-philosopher-virtues .lamp { position:absolute; bottom:30%; left:calc(50% + 50px); width:10px; height:14px; background:linear-gradient(180deg, #f0d8a0 0%, #d0b070 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px rgba(200,160,80,0.4); animation: virt4-lamp 3s ease-in-out infinite alternate; }
@keyframes virt4-kneel {
  0%,100% { transform:translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform:translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes virt4-orb {
  0% { transform:translateX(-50%) scale(1); opacity:0.85; }
  50% { transform:translateX(-50%) scale(1.08); opacity:1; }
  100% { transform:translateX(-50%) scale(0.95); opacity:0.9; }
}
@keyframes virt4-rays {
  0% { transform:translate(-50%, -50%) rotate(0deg) scale(1); opacity:0.5; }
  50% { transform:translate(-50%, -50%) rotate(180deg) scale(1.1); opacity:0.8; }
  100% { transform:translate(-50%, -50%) rotate(360deg) scale(1); opacity:0.5; }
}
@keyframes virt4-scroll {
  0%,100% { transform:rotate(15deg) translateY(0); }
  50% { transform:rotate(15deg) translateY(-2px); }
}
@keyframes virt4-lamp {
  0% { box-shadow:0 0 20px 6px rgba(200,160,80,0.4); opacity:0.9; }
  100% { box-shadow:0 0 30px 10px rgba(200,160,80,0.6); opacity:1; }
}

.scn-one-philosopher-ruler {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 60%, #d4bc8a 100%),
              radial-gradient(ellipse at 70% 30%, #fff7e0 0%, transparent 60%);
}
.scn-one-philosopher-ruler .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #c4a87b 0%, #a8855c 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-one-philosopher-ruler .wall {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(90deg, #dcc8a0 0%, #e8d5b0 40%, #dcc8a0 100%);
}
.scn-one-philosopher-ruler .throne {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6b4a 0%, #5e4028 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 8% 8%;
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  animation: phr-throne 8s ease-in-out infinite;
}
.scn-one-philosopher-ruler .ruler-figure {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: phr-figure 5s ease-in-out infinite alternate;
}
.scn-one-philosopher-ruler .window {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #fffde0 0%, #f5e8b0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe080, 0 0 30px rgba(255,224,128,.3);
}
.scn-one-philosopher-ruler .sunbeam {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,180,.6) 0%, transparent 100%);
  transform: rotate(-10deg);
  transform-origin: top center;
  filter: blur(8px);
  animation: phr-sunbeam 12s ease-in-out infinite alternate;
}
.scn-one-philosopher-ruler .scroll {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 12px;
  background: #d4b88a;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: phr-scroll 6s ease-in-out infinite;
}
.scn-one-philosopher-ruler .pillar {
  position: absolute; bottom: 18%; left: 22%; width: 12px; height: 70%;
  background: linear-gradient(90deg, #c4a87b 0%, #dcc8a0 40%, #c4a87b 100%);
  border-radius: 3px;
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
}
@keyframes phr-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes phr-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes phr-sunbeam {
  0% { opacity: .6; transform: rotate(-10deg) scaleX(1); }
  100% { opacity: 1; transform: rotate(-8deg) scaleX(1.05); }
}
@keyframes phr-scroll {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.scn-highest-knowledge-is-good {
  background: linear-gradient(180deg, #d4873a 0%, #b56a2e 40%, #4a2a12 100%),
              radial-gradient(ellipse at 50% 0%, #f5b060 0%, transparent 60%);
}
.scn-highest-knowledge-is-good .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(90deg, #6a3a1a 0%, #8a4a2a 30%, #6a3a1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.scn-highest-knowledge-is-good .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, #5a2a12 0px, #5a2a12 2px, #7a3a1a 2px, #7a3a1a 4px);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-highest-knowledge-is-good .figure {
  position: absolute; bottom: 10%; left: 50%; width: 28px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hkg-figure 3s ease-in-out infinite alternate;
}
.scn-highest-knowledge-is-good .lamp {
  position: absolute; top: 5%; left: 60%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffcc60 0%, #b58030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,200,80,.4);
  animation: hkg-lamp 2s ease-in-out infinite alternate;
}
.scn-highest-knowledge-is-good .ladder {
  position: absolute; bottom: 10%; left: 25%; width: 6px; height: 40%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a12 100%);
  border-radius: 2px;
  box-shadow: 10px 0 0 #6a3a1a, 20px 0 0 #6a3a1a;
  transform: rotate(-5deg);
  animation: hkg-ladder 4s ease-in-out infinite;
}
.scn-highest-knowledge-is-good .chain {
  position: absolute; top: 12%; left: 35%; width: 4px; height: 60px;
  background: repeating-linear-gradient(180deg, #8a7040 0px, #8a7040 4px, transparent 4px, transparent 8px);
  animation: hkg-chain 1.5s ease-in-out infinite;
}
.scn-highest-knowledge-is-good .shadow-x {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 2px;
  transform: translateX(-50%) rotate(-10deg);
  background: rgba(0,0,0,.8);
  filter: blur(4px);
  animation: hkg-shadow 3s ease-in-out infinite alternate;
}
.scn-highest-knowledge-is-good .glint {
  position: absolute; top: 18%; left: 45%; width: 8px; height: 8px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,255,200,.6);
  animation: hkg-glint 1s ease-in-out infinite alternate;
}
@keyframes hkg-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(2deg) scaleY(1.03); }
}
@keyframes hkg-lamp {
  0% { opacity: .7; box-shadow: 0 0 30px 10px rgba(255,200,80,.3); }
  100% { opacity: 1; box-shadow: 0 0 60px 25px rgba(255,200,80,.6); }
}
@keyframes hkg-ladder {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-4px); }
}
@keyframes hkg-chain {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}
@keyframes hkg-shadow {
  0% { transform: translateX(-50%) rotate(-10deg) scaleX(1); }
  100% { transform: translateX(-50%) rotate(-8deg) scaleX(1.2); }
}
@keyframes hkg-glint {
  0% { opacity: .3; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

.scn-pleasure-and-knowledge {
  background: linear-gradient(180deg, #f0dfc0 0%, #e0c8a0 50%, #c8a880 100%),
              radial-gradient(ellipse at 50% 100%, #f5e8d0 0%, transparent 70%);
}
.scn-pleasure-and-knowledge .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #b88a5a 0%, #8a6030 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  transform: perspective(200px) rotateX(10deg);
}
.scn-pleasure-and-knowledge .figure-pleasure {
  position: absolute; bottom: 28%; left: 32%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pnk-figure-a 6s ease-in-out infinite;
}
.scn-pleasure-and-knowledge .figure-knowledge {
  position: absolute; bottom: 28%; right: 32%; width: 30px; height: 50px;
  transform: translateX(50%);
  background: linear-gradient(180deg, #503a28 0%, #281c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pnk-figure-b 6s ease-in-out infinite;
}
.scn-pleasure-and-knowledge .cup {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #c0804a 0%, #8a5a30 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pnk-cup 4s ease-in-out infinite;
}
.scn-pleasure-and-knowledge .book {
  position: absolute; bottom: 28%; right: 38%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #c8a060 0%, #a07840 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: pnk-book 5s ease-in-out infinite alternate;
}
.scn-pleasure-and-knowledge .window-arch {
  position: absolute; top: 8%; left: 38%; right: 38%; height: 35%;
  background: linear-gradient(180deg, #fffbe0 0%, #f0e0b0 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px #ffe080, 0 0 40px rgba(255,224,128,.2);
}
.scn-pleasure-and-knowledge .sunbeam {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,180,.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: pnk-sunbeam 10s ease-in-out infinite;
}
.scn-pleasure-and-knowledge .bg-room {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,.3) 0%, transparent 70%);
  pointer-events: none;
}
@keyframes pnk-figure-a {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
}
@keyframes pnk-figure-b {
  0%,100% { transform: translateX(50%) rotate(0deg); }
  50% { transform: translateX(50%) rotate(-3deg) translateY(-2px); }
}
@keyframes pnk-cup {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes pnk-book {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(3deg); }
}
@keyframes pnk-sunbeam {
  0%,100% { opacity: .6; }
  50% { opacity: 1; }
}

.scn-child-of-good {
  background: linear-gradient(180deg, #f5e8cc 0%, #e0c8a0 60%, #c8a880 100%),
              radial-gradient(ellipse at 50% 100%, #fff7e0 0%, transparent 70%);
}
.scn-child-of-good .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b89a70 0%, #9a7a50 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-child-of-good .wall-left {
  position: absolute; top: 0; bottom: 15%; left: 0; width: 25%;
  background: linear-gradient(90deg, #d4be98 0%, #c8ae80 100%);
  box-shadow: inset -6px 0 20px rgba(0,0,0,.1);
}
.scn-child-of-good .wall-right {
  position: absolute; top: 0; bottom: 15%; right: 0; width: 25%;
  background: linear-gradient(90deg, #c8ae80 0%, #d4be98 100%);
  box-shadow: inset 6px 0 20px rgba(0,0,0,.1);
}
.scn-child-of-good .path {
  position: absolute; bottom: 15%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #c8a070 0%, #b08858 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: cog-path 6s ease-in-out infinite;
}
.scn-child-of-good .child {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 32px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cog-child 4s ease-in-out infinite;
}
.scn-child-of-good .staff {
  position: absolute; bottom: 32%; left: 48%; width: 3px; height: 40px;
  background: #6a4a2a;
  transform: rotate(10deg);
  transform-origin: bottom center;
  border-radius: 1px;
  animation: cog-staff 4s ease-in-out infinite;
}
.scn-child-of-good .lamp-distant {
  position: absolute; bottom: 50%; right: 30%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffe680 0%, #c8a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,220,100,.5), 0 0 80px 30px rgba(255,220,100,.2);
  animation: cog-lamp 5s ease-in-out infinite alternate;
}
.scn-child-of-good .glow-circle {
  position: absolute; bottom: 48%; right: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,100,.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cog-glow 5s ease-in-out infinite alternate;
}
@keyframes cog-path {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes cog-child {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-52%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes cog-staff {
  0%,100% { transform: rotate(10deg); }
  50% { transform: rotate(12deg); }
}
@keyframes cog-lamp {
  0% { opacity: .8; box-shadow: 0 0 30px 10px rgba(255,220,100,.4); }
  100% { opacity: 1; box-shadow: 0 0 60px 25px rgba(255,220,100,.6); }
}
@keyframes cog-glow {
  0% { opacity: .5; transform: scale(1); }
  100% { opacity: .8; transform: scale(1.1); }
}

/*
SCENE: myth-of-er-ardiaeus – dark dim interior, chains, condemned spirits, ember glow
*/
.scn-myth-of-er-ardiaeus { background: linear-gradient(180deg, #1a0f1a 0%, #2a1420 30%, #1a0a10 60%, #0f0508 100%), radial-gradient(ellipse at 30% 50%, #3b1a2a 0%, transparent 60%); }
.scn-myth-of-er-ardiaeus .bg-void { position:absolute; inset:0; background:radial-gradient(circle at 50% 70%, #1f0f1a 0%, #080205 100%); animation: er-void 20s ease-in-out infinite alternate; }
.scn-myth-of-er-ardiaeus .bg-shaft { position:absolute; top:5%; bottom:20%; left:40%; width:20%; background:linear-gradient(180deg, #2a1620 0%, #1a0a10 100%); border-radius:10% / 50%; box-shadow:inset 0 0 30px rgba(0,0,0,0.8); animation: er-shaft 25s ease-in-out infinite; }
.scn-myth-of-er-ardiaeus .chains { position:absolute; top:10%; left:30%; right:30%; height:70%; background: repeating-linear-gradient(0deg, transparent 0px, #3a2a2a 2px, #3a2a2a 4px, transparent 8px); opacity:0.5; animation: er-chains 8s ease-in-out infinite; }
.scn-myth-of-er-ardiaeus .figure-spirit { position:absolute; top:20%; left:35%; width:60px; height:90px; background:radial-gradient(ellipse at 30% 40%, #4a3a3a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(-5deg); animation: er-spirit 6s ease-in-out infinite alternate; }
.scn-myth-of-er-ardiaeus .figure-condemned { position:absolute; bottom:20%; left:50%; width:70px; height:100px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0808 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform:translateX(-50%) scale(0.9); animation: er-condemned 10s ease-in-out infinite; }
.scn-myth-of-er-ardiaeus .ember { position:absolute; top:60%; left:30%; width:8px; height:8px; background:#c8553d; border-radius:50%; box-shadow:0 0 12px 4px #a0461a, 0 0 30px 8px rgba(160,70,26,0.3); animation: er-ember 3s ease-in-out infinite alternate; }
.scn-myth-of-er-ardiaeus .smoke { position:absolute; top:50%; left:45%; width:40px; height:60px; background:radial-gradient(ellipse at 50% 100%, rgba(60,50,50,0.3) 0%, transparent 100%); border-radius:50%; filter:blur(8px); animation: er-smoke 15s linear infinite; }
@keyframes er-void { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes er-shaft { 0% { transform:scaleX(1) translateX(0); } 50% { transform:scaleX(1.05) translateX(-2px); } 100% { transform:scaleX(0.95) translateX(2px); } }
@keyframes er-chains { 0% { opacity:0.3; transform:translateY(0); } 50% { opacity:0.6; transform:translateY(5px); } 100% { opacity:0.3; transform:translateY(-5px); } }
@keyframes er-spirit { 0% { transform:rotate(-5deg) translateY(0) scaleX(1); } 50% { transform:rotate(3deg) translateY(-10px) scaleX(0.95); } 100% { transform:rotate(-2deg) translateY(-5px) scaleX(1.02); } }
@keyframes er-condemned { 0% { transform:translateX(-50%) scale(0.9) translateY(0); } 50% { transform:translateX(-50%) scale(1) translateY(-8px); } 100% { transform:translateX(-50%) scale(0.85) translateY(5px); } }
@keyframes er-ember { 0% { transform:translate(0,0) scale(1); opacity:0.7; } 50% { transform:translate(15px,-20px) scale(1.3); opacity:1; } 100% { transform:translate(-10px,-10px) scale(0.8); opacity:0.5; } }
@keyframes er-smoke { 0% { transform:translateY(0) scale(1); opacity:0.5; } 50% { transform:translateY(-40px) scale(1.5); opacity:0.2; } 100% { transform:translateY(-80px) scale(2); opacity:0; } }

/*
SCENE: spindle-of-necessity – bright interior, heavenly light, spindle with whorls
*/
.scn-spindle-of-necessity { background: linear-gradient(180deg, #e8e0f0 0%, #c8c0dc 40%, #a098c0 100%), radial-gradient(circle at 40% 30%, #ffffff 0%, #a098c0 70%); }
.scn-spindle-of-necessity .bg-heaven { position:absolute; inset:0; background:radial-gradient(ellipse at 70% 20%, #fffbe8 0%, #e8e0f0 60%); animation: sp-heaven 30s ease-in-out infinite alternate; }
.scn-spindle-of-necessity .bg-whorl { position:absolute; top:10%; bottom:10%; left:30%; right:30%; background:radial-gradient(ellipse at 50% 50%, #b0a8c8 0%, #7870a0 100%); border-radius:50%; box-shadow:inset 0 0 40px rgba(255,255,255,0.4); animation: sp-whorl 20s linear infinite; }
.scn-spindle-of-necessity .spindle.shaft { position:absolute; top:5%; left:48%; width:4%; height:90%; background:linear-gradient(180deg, #a0a0b0 0%, #606070 50%, #a0a0b0 100%); border-radius:40%; box-shadow:0 0 20px rgba(255,255,255,0.5); animation: sp-shaft 12s ease-in-out infinite; }
.scn-spindle-of-necessity .spindle.hook { position:absolute; top:3%; left:50%; width:6px; height:20px; background:#505060; border-radius:50% 50% 0 0; transform:translateX(-50%) rotate(-20deg); transform-origin: bottom center; animation: sp-hook 8s ease-in-out infinite; }
.scn-spindle-of-necessity .whorl-ring { position:absolute; top:35%; left:35%; width:30%; height:30%; background:transparent; border:4px solid #8080a0; border-radius:50%; box-shadow:0 0 15px rgba(200,200,255,0.3); animation: sp-ring 15s linear infinite reverse; }
.scn-spindle-of-necessity .light-ray { position:absolute; top:0; left:45%; width:10%; height:100%; background:linear-gradient(180deg, #ffffff 0%, transparent 100%); opacity:0.3; animation: sp-ray 7s ease-in-out infinite alternate; }
.scn-spindle-of-necessity .star { position:absolute; top:15%; left:20%; width:12px; height:12px; background:#fffde0; clip-path:polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); box-shadow:0 0 20px #fff8c0; animation: sp-star 5s ease-in-out infinite; }
@keyframes sp-heaven { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sp-whorl { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(180deg) scale(1.02); } 100% { transform:rotate(360deg) scale(0.98); } }
@keyframes sp-shaft { 0% { transform:scaleY(1) translateX(0); } 50% { transform:scaleY(1.02) translateX(1px); } 100% { transform:scaleY(0.98) translateX(-1px); } }
@keyframes sp-hook { 0% { transform:translateX(-50%) rotate(-20deg); } 50% { transform:translateX(-50%) rotate(10deg); } 100% { transform:translateX(-50%) rotate(-15deg); } }
@keyframes sp-ring { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(-180deg) scale(1.05); } 100% { transform:rotate(-360deg) scale(0.95); } }
@keyframes sp-ray { 0% { opacity:0.2; transform:scaleY(0.8); } 50% { opacity:0.4; transform:scaleY(1); } 100% { opacity:0.3; transform:scaleY(0.9); } }
@keyframes sp-star { 0% { transform:translate(0,0) scale(1); opacity:0.7; } 50% { transform:translate(5px,-10px) scale(1.2); opacity:1; } 100% { transform:translate(-3px,3px) scale(0.9); opacity:0.6; } }

/*
SCENE: choice-of-lives – bright interior, temple with pulpit, souls and lots
*/
.scn-choice-of-lives { background: linear-gradient(180deg, #fef8e8 0%, #f0e0c0 50%, #d8c8a0 100%), radial-gradient(circle at 30% 40%, #fff8e0 0%, #d8c8a0 70%); }
.scn-choice-of-lives .bg-temple { position:absolute; inset:0; background:repeating-linear-gradient(90deg, #e8d8b8 0px, #e8d8b8 2px, #f0e0c0 4px, #f0e0c0 6px); opacity:0.3; animation: ch-temple 40s linear infinite; }
.scn-choice-of-lives .bg-pulpit { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background:linear-gradient(180deg, #d0b890 0%, #a08060 100%); border-radius:10% 10% 0 0; box-shadow:0 0 30px rgba(255,200,100,0.4); animation: ch-pulpit 12s ease-in-out infinite; }
.scn-choice-of-lives .prophet { position:absolute; bottom:55%; left:45%; width:30px; height:80px; background:linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: ch-prophet 10s ease-in-out infinite alternate; }
.scn-choice-of-lives .souls.left { position:absolute; bottom:20%; left:20%; width:50px; height:60px; background:radial-gradient(ellipse at 40% 40%, #e8d8c0 0%, #b8a088 100%); border-radius:50% 50% 30% 30%; opacity:0.8; animation: ch-souls-left 8s ease-in-out infinite; }
.scn-choice-of-lives .souls.right { position:absolute; bottom:20%; right:20%; width:50px; height:60px; background:radial-gradient(ellipse at 40% 40%, #e8d8c0 0%, #b8a088 100%); border-radius:50% 50% 30% 30%; opacity:0.8; animation: ch-souls-right 9s ease-in-out infinite; animation-delay:-3s; }
.scn-choice-of-lives .sample-life { position:absolute; bottom:50%; left:30%; width:20px; height:30px; background:#c8b090; border-radius:20%; box-shadow:0 0 10px rgba(200,180,150,0.5); animation: ch-sample 6s ease-in-out infinite; }
.scn-choice-of-lives .lot { position:absolute; bottom:40%; left:55%; width:15px; height:15px; background:#b09070; border-radius:0 50% 50% 50%; transform:rotate(45deg); animation: ch-lot 7s ease-in-out infinite alternate; }
.scn-choice-of-lives .glow-pulpit { position:absolute; bottom:45%; left:43%; width:14%; height:30%; background:radial-gradient(ellipse at 50% 0%, #ffeea0 0%, transparent 100%); opacity:0.3; animation: ch-glow 5s ease-in-out infinite alternate; }
@keyframes ch-temple { 0% { background-position-x:0; } 100% { background-position-x:100px; } }
@keyframes ch-pulpit { 0% { transform:scaleY(1) translateX(0); } 50% { transform:scaleY(1.02) translateX(2px); } 100% { transform:scaleY(0.98) translateX(-2px); } }
@keyframes ch-prophet { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-5px); } 100% { transform:rotate(-1deg) translateY(3px); } }
@keyframes ch-souls-left { 0% { transform:translate(0,0) rotate(0deg); opacity:0.7; } 50% { transform:translate(15px,-10px) rotate(3deg); opacity:1; } 100% { transform:translate(-10px,5px) rotate(-2deg); opacity:0.8; } }
@keyframes ch-souls-right { 0% { transform:translate(0,0) rotate(0deg); opacity:0.7; } 50% { transform:translate(-15px,-10px) rotate(-3deg); opacity:1; } 100% { transform:translate(10px,5px) rotate(2deg); opacity:0.8; } }
@keyframes ch-sample { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-15px) scale(1.2); } 100% { transform:translateY(5px) scale(0.9); } }
@keyframes ch-lot { 0% { transform:rotate(45deg) translate(0,0); } 50% { transform:rotate(35deg) translate(10px,-5px); } 100% { transform:rotate(55deg) translate(-5px,5px); } }
@keyframes ch-glow { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.3; } }

/*
SCENE: river-of-forgetfulness – dark, river, soul falling into oblivion
*/
.scn-river-of-forgetfulness { background: linear-gradient(180deg, #0a0510 0%, #0f081a 30%, #081020 70%, #02050a 100%), radial-gradient(ellipse at 50% 80%, #0f1830 0%, transparent 70%); }
.scn-river-of-forgetfulness .bg-night { position:absolute; inset:0; background:radial-gradient(circle at 50% 30%, #14102a 0%, #050208 100%); animation: ri-night 25s ease-in-out infinite alternate; }
.scn-river-of-forgetfulness .bg-river { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, #0a1828 0%, #081420 50%, #040810 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: ri-river 15s ease-in-out infinite; }
.scn-river-of-forgetfulness .ripple { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: repeating-linear-gradient(90deg, transparent 0px, #1a2a3a 1px, transparent 2px); opacity:0.3; animation: ri-ripple 6s ease-in-out infinite; }
.scn-river-of-forgetfulness .soul-falling { position:absolute; top:10%; left:45%; width:40px; height:70px; background:linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation: ri-fall 12s ease-in-out infinite; }
.scn-river-of-forgetfulness .lily { position:absolute; bottom:30%; left:20%; width:30px; height:20px; background:radial-gradient(ellipse at 50% 40%, #4a5a6a 0%, #2a3a4a 100%); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation: ri-lily 8s ease-in-out infinite alternate; }
.scn-river-of-forgetfulness .reed { position:absolute; bottom:25%; right:25%; width:6px; height:50px; background: #2a3a3a; border-radius:50% / 30% 30% 10% 10%; transform:rotate(5deg); transform-origin: bottom; animation: ri-reed 5s ease-in-out infinite; }
.scn-river-of-forgetfulness .mist { position:absolute; bottom:40%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(60,80,100,0.2) 0%, transparent 100%); filter:blur(15px); animation: ri-mist 20s linear infinite; }
.scn-river-of-forgetfulness .light-far { position:absolute; top:15%; left:50%; width:8px; height:8px; background:#5a7a9a; border-radius:50%; box-shadow:0 0 20px 6px #4a6a8a, 0 0 50px 15px rgba(60,80,120,0.3); animation: ri-light 4s ease-in-out infinite alternate; }
@keyframes ri-night { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ri-river { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.02) translateY(-3px); } 100% { transform:scaleY(0.98) translateY(2px); } }
@keyframes ri-ripple { 0% { transform:translateX(0); opacity:0.2; } 50% { transform:translateX(20px); opacity:0.4; } 100% { transform:translateX(-20px); opacity:0.2; } }
@keyframes ri-fall { 0% { transform:rotate(15deg) translateY(0) scale(1); } 50% { transform:rotate(-10deg) translateY(40px) scale(0.9); } 100% { transform:rotate(5deg) translateY(70px) scale(0.8); opacity:0.3; } }
@keyframes ri-lily { 0% { transform:rotate(-10deg) translate(0,0); } 50% { transform:rotate(5deg) translate(5px,-5px); } 100% { transform:rotate(-5deg) translate(-5px,2px); } }
@keyframes ri-reed { 0% { transform:rotate(5deg) scaleY(1); } 50% { transform:rotate(-3deg) scaleY(1.1); } 100% { transform:rotate(2deg) scaleY(0.95); } }
@keyframes ri-mist { 0% { transform:translateX(0) scaleX(1); opacity:0.3; } 50% { transform:translateX(30px) scaleX(1.2); opacity:0.5; } 100% { transform:translateX(-30px) scaleX(0.8); opacity:0.2; } }
@keyframes ri-light { 0% { transform:scale(1) translate(0,0); opacity:0.6; } 50% { transform:scale(1.5) translate(10px,-5px); opacity:1; } 100% { transform:scale(0.8) translate(-5px,3px); opacity:0.4; } }

.scn-prisoners-in-cave {
  background:
    linear-gradient(135deg, #1a1210 0%, #2a1a12 40%, #1a0e0a 80%, #0e0604 100%),
    radial-gradient(ellipse at 60% 60%, #8a3a1a 0%, transparent 60%);
}
.scn-prisoners-in-cave .cave-wall {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #1a1210 0%, #2a1a12 30%, #1a0e0a 70%, #0e0604 100%);
  border-radius: 30% 40% 20% 20% / 10% 15% 5% 5%;
  transform: scaleY(.92); transform-origin: bottom;
  animation: pc-wall 20s ease-in-out infinite alternate;
}
.scn-prisoners-in-cave .fire {
  position: absolute; bottom: 20%; left: 55%; width: 25px; height: 45px;
  background: radial-gradient(ellipse at 50% 60%, #c8553d 0%, #a0461a 40%, #5e2a0e 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: pc-fire 2.5s ease-in-out infinite alternate;
  box-shadow: 0 -10px 40px 20px rgba(200,85,61,.3), 0 0 80px 40px rgba(160,70,26,.15);
}
.scn-prisoners-in-cave .chain-left {
  position: absolute; bottom: 36%; left: 30%; width: 32px; height: 8px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 6px);
  border-radius: 0 0 50% 50%;
  transform: rotate(-5deg);
  animation: pc-chain 4s ease-in-out infinite alternate;
}
.scn-prisoners-in-cave .chain-right {
  position: absolute; bottom: 36%; right: 30%; width: 32px; height: 8px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 6px);
  border-radius: 0 0 50% 50%;
  transform: rotate(5deg);
  animation: pc-chain 4s ease-in-out infinite alternate-reverse;
}
.scn-prisoners-in-cave .prisoner-a {
  position: absolute; bottom: 25%; left: 28%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0604 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 6s ease-in-out infinite alternate;
}
.scn-prisoners-in-cave .prisoner-b {
  position: absolute; bottom: 22%; right: 26%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0604 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pc-figure 7s ease-in-out infinite alternate-reverse;
}
.scn-prisoners-in-cave .shadow-pillar {
  position: absolute; bottom: 15%; left: 65%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #0e0604 0%, transparent 80%);
  filter: blur(8px);
  opacity: .6;
  animation: pc-shadow 12s ease-in-out infinite alternate;
}
@keyframes pc-wall { 0% { transform: scaleY(.92) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(.91) } }
@keyframes pc-fire { 0% { transform: translate(0,0) scale(1,1) rotate(-1deg); opacity: .8 } 50% { transform: translate(1px,-2px) scale(1.08,1.05) rotate(1deg); opacity: 1 } 100% { transform: translate(-1px,1px) scale(.95,.97) rotate(0); opacity: .85 } }
@keyframes pc-chain { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes pc-figure { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-3px) rotate(0) } 100% { transform: translate(-1px,1px) rotate(1deg) } }
@keyframes pc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(.98) } }

.scn-ascent-from-cave {
  background:
    linear-gradient(180deg, #f2d8b0 0%, #e8c090 30%, #c8a070 70%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-ascent-from-cave .sky-glow {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce8d0 0%, #e8c8a0 50%, transparent 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  animation: ac-sky 10s ease-in-out infinite alternate;
}
.scn-ascent-from-cave .sun-core {
  position: absolute; top: 12%; left: 45%; width: 45px; height: 45px;
  background: radial-gradient(circle at 50% 50%, #fff4d0 0%, #f0c080 30%, #d0a060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,128,.4), 0 0 120px 60px rgba(208,160,96,.2);
  animation: ac-sun 8s ease-in-out infinite alternate;
}
.scn-ascent-from-cave .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-ascent-from-cave .figure-climb {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ac-figure 6s ease-in-out infinite;
}
.scn-ascent-from-cave .cave-mouth {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 90px;
  background: radial-gradient(ellipse at 50% 60%, #1a120a 0%, #0e0804 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ac-mouth 20s ease-in-out infinite alternate;
}
.scn-ascent-from-cave .cast-shadow {
  position: absolute; bottom: 10%; left: 52%; width: 50px; height: 12px;
  background: linear-gradient(90deg, rgba(0,0,0,.3), transparent);
  border-radius: 50%;
  filter: blur(2px);
  transform: skewX(-20deg);
  animation: ac-shadow 6s ease-in-out infinite alternate;
}
@keyframes ac-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes ac-sun { 0% { transform: scale(1,1) rotate(0); opacity: .9 } 50% { transform: scale(1.05,1.03) rotate(2deg); opacity: 1 } 100% { transform: scale(.98,.99) rotate(-1deg); opacity: .92 } }
@keyframes ac-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-6px) rotate(2deg) } 50% { transform: translateX(8px) translateY(-12px) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-18px) rotate(3deg) } 100% { transform: translateX(16px) translateY(-24px) rotate(0) } }
@keyframes ac-mouth { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1.02) } }
@keyframes ac-shadow { 0% { transform: skewX(-20deg) scaleX(1) } 50% { transform: skewX(-18deg) scaleX(1.02) } 100% { transform: skewX(-22deg) scaleX(.98) } }

.scn-unwillingness-to-descend {
  background:
    linear-gradient(180deg, #f5eed0 0%, #e0d4b0 40%, #b0a080 70%, #6a5a40 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a30 0%, transparent 70%);
}
.scn-unwillingness-to-descend .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #fff8e0 0%, rgba(255,248,224,.03) 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: wd-beam 3s ease-in-out infinite alternate;
}
.scn-unwillingness-to-descend .door-frame {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #7a6a50 0%, #4a3a20 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-unwillingness-to-descend .figure-risen {
  position: absolute; bottom: 50%; left: 48%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1e10 0%, #0e0800 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: wd-up 4s ease-in-out infinite alternate;
}
.scn-unwillingness-to-descend .figure-below {
  position: absolute; bottom: 10%; left: 32%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1e10 0%, #0e0800 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: wd-down 6s ease-in-out infinite alternate;
}
.scn-unwillingness-to-descend .ladder {
  position: absolute; bottom: 0; left: 45%; width: 12px; height: 70%;
  background: repeating-linear-gradient(0deg, #4a3a20 0px, #4a3a20 3px, transparent 3px, transparent 12px);
  border-left: 2px solid #4a3a20; border-right: 2px solid #4a3a20;
  border-radius: 2px;
  animation: wd-ladder 8s ease-in-out infinite;
}
.scn-unwillingness-to-descend .shadow-lance {
  position: absolute; top: 0; left: 50%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.2) 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: wd-lance 2.5s ease-in-out infinite alternate;
}
@keyframes wd-beam { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: .6; transform: scaleY(.98) } }
@keyframes wd-up { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(2deg) } 100% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes wd-down { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(5px) rotate(-2deg) } 100% { transform: translateY(1px) rotate(1deg) } }
@keyframes wd-ladder { 0% { transform: rotate(0) } 50% { transform: rotate(.5deg) } 100% { transform: rotate(-.5deg) } }
@keyframes wd-lance { 0% { transform: skewX(0) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(2deg) } }

.scn-virtue-of-wisdom-conversion {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc4 40%, #c8bca0 80%, #a09880 100%),
    radial-gradient(ellipse at 70% 30%, #fff8f0 0%, transparent 60%);
}
.scn-virtue-of-wisdom-conversion .window-glow {
  position: absolute; top: 10%; left: 30%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #fff4e0 0%, #e8d8b0 60%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px #d0c0a0;
  animation: vw-window 12s ease-in-out infinite alternate;
}
.scn-virtue-of-wisdom-conversion .figure-pensive {
  position: absolute; bottom: 18%; left: 46%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3020 0%, #1a140a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: vw-figure 8s ease-in-out infinite alternate;
}
.scn-virtue-of-wisdom-conversion .open-book {
  position: absolute; bottom: 10%; left: 44%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8bca0 100%);
  border-radius: 4px;
  transform: perspective(80px) rotateX(10deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.1);
  animation: vw-book 20s ease-in-out infinite alternate;
}
.scn-virtue-of-wisdom-conversion .candle {
  position: absolute; bottom: 15%; left: 38%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px 2px 4px 4px;
  animation: vw-candle 5s ease-in-out infinite alternate;
}
.scn-virtue-of-wisdom-conversion .candle::after {
  content: ''; position: absolute; top: -6px; left: 2px; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: vw-flame 3s ease-in-out infinite alternate;
}
.scn-virtue-of-wisdom-conversion .soft-halo {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 48% 45%, rgba(255,248,240,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: vw-halo 15s ease-in-out infinite alternate;
}
@keyframes vw-window { 0% { opacity: .9; transform: scale(1,1) } 50% { opacity: 1; transform: scale(1.02,1.01) } 100% { opacity: .92; transform: scale(.98,.99) } }
@keyframes vw-figure { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(2px,-3px) rotate(1deg) } 100% { transform: translate(-1px,1px) rotate(0) } }
@keyframes vw-book { 0% { transform: perspective(80px) rotateX(10deg) } 50% { transform: perspective(80px) rotateX(12deg) } 100% { transform: perspective(80px) rotateX(8deg) } }
@keyframes vw-candle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes vw-flame { 0% { transform: scale(1,1) rotate(-2deg) } 50% { transform: scale(1.1,1.05) rotate(2deg) } 100% { transform: scale(.95,.98) rotate(-1deg) } }
@keyframes vw-halo { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .45 } }

.scn-light-and-sight {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 50%, #d4c8b0 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}

.scn-light-and-sight .window {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 40%;
  height: 50%;
  border: 6px solid #b8a88a;
  border-radius: 4px;
  background: rgba(255, 250, 240, 0.3);
  animation: li1-window 12s ease-in-out infinite alternate;
}

.scn-light-and-sight .pane {
  position: absolute;
  top: 22%;
  left: 32%;
  width: 36%;
  height: 46%;
  background: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, rgba(200,190,170,0.2) 100%);
  border-radius: 2px;
  animation: li1-pane 6s ease-in-out infinite alternate;
}

.scn-light-and-sight .iris {
  position: absolute;
  top: 45%;
  left: 45%;
  width: 10%;
  height: 12%;
  background: radial-gradient(circle, #5b7a5b 0%, #3a5a3a 70%);
  border-radius: 50%;
  animation: li1-iris 8s ease-in-out infinite alternate;
}

.scn-light-and-sight .pupil {
  position: absolute;
  top: 48%;
  left: 48%;
  width: 4%;
  height: 5%;
  background: radial-gradient(circle, #1a1a1a 0%, #000 100%);
  border-radius: 50%;
  animation: li1-pupil 4s ease-in-out infinite alternate;
}

.scn-light-and-sight .beam {
  position: absolute;
  top: 22%;
  left: 30%;
  width: 2%;
  height: 30%;
  background: linear-gradient(180deg, rgba(255,230,150,0.8) 0%, transparent 100%);
  transform-origin: top center;
  animation: li1-beam 5s ease-in-out infinite alternate;
}

.scn-light-and-sight .shadow {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 15%;
  height: 10%;
  background: rgba(80,70,60,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: li1-shadow 10s ease-in-out infinite alternate;
}

@keyframes li1-window {
  0% { transform: translateX(0) rotate(-0.5deg); }
  50% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(-1px) rotate(-0.3deg); }
}

@keyframes li1-pane {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes li1-iris {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(0.97) rotate(-2deg); }
}

@keyframes li1-pupil {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); }
  100% { transform: scale(0.85); }
}

@keyframes li1-beam {
  0% { transform: rotate(-5deg) scaleY(1); opacity: 0.6; }
  50% { transform: rotate(0deg) scaleY(1.1); opacity: 1; }
  100% { transform: rotate(5deg) scaleY(0.95); opacity: 0.7; }
}

@keyframes li1-shadow {
  0% { transform: translateY(0) scale(1); opacity: 0.15; }
  50% { transform: translateY(-3px) scale(1.05); opacity: 0.3; }
  100% { transform: translateY(2px) scale(0.95); opacity: 0.2; }
}

/* ----- scene 2 ----- */

.scn-divided-line {
  background:
    linear-gradient(180deg, #f0ebe3 0%, #e4d9cc 50%, #d0c0a8 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 70%);
}

.scn-divided-line .line {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 2px;
  height: 80%;
  background: linear-gradient(180deg, #a09080 0%, #807060 50%, #a09080 100%);
  transform: translateX(-50%);
  animation: li2-line 8s ease-in-out infinite alternate;
}

.scn-divided-line .left-realm {
  position: absolute;
  top: 15%;
  left: 5%;
  width: 40%;
  height: 70%;
  background: linear-gradient(135deg, rgba(255,240,220,0.3) 0%, rgba(200,190,170,0.1) 100%);
  border-radius: 10px;
  animation: li2-realm 12s ease-in-out infinite alternate;
}

.scn-divided-line .right-realm {
  position: absolute;
  top: 15%;
  right: 5%;
  width: 40%;
  height: 70%;
  background: linear-gradient(225deg, rgba(220,210,200,0.3) 0%, rgba(180,170,160,0.1) 100%);
  border-radius: 10px;
  animation: li2-realm 12s ease-in-out infinite alternate-reverse;
}

.scn-divided-line .symbol-left {
  position: absolute;
  top: 35%;
  left: 22%;
  width: 6%;
  height: 6%;
  background: radial-gradient(circle, #f0d060 0%, #d0b040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(240,208,96,0.4);
  animation: li2-symbol 4s ease-in-out infinite alternate;
}

.scn-divided-line .symbol-right {
  position: absolute;
  top: 35%;
  right: 22%;
  width: 6%;
  height: 6%;
  background: radial-gradient(circle, #b0a090 0%, #908070 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,140,120,0.3);
  animation: li2-symbol 4s ease-in-out infinite alternate-reverse;
}

.scn-divided-line .glow {
  position: absolute;
  top: 30%;
  left: 42%;
  width: 16%;
  height: 20%;
  background: radial-gradient(ellipse, rgba(255,220,150,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: li2-glow 7s ease-in-out infinite alternate;
}

@keyframes li2-line {
  0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}

@keyframes li2-realm {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes li2-symbol {
  0% { transform: scale(0.9) rotate(-5deg); opacity: 0.7; }
  50% { transform: scale(1.1) rotate(0deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(5deg); opacity: 0.8; }
}

@keyframes li2-glow {
  0% { transform: scale(0.9) translateY(-2px); opacity: 0.5; }
  50% { transform: scale(1.1) translateY(0); opacity: 0.8; }
  100% { transform: scale(1) translateY(2px); opacity: 0.6; }
}

/* ----- scene 3 ----- */

.scn-geometry-hypotheses {
  background:
    linear-gradient(180deg, #efe9dc 0%, #ddd3c0 50%, #c8bca4 100%),
    radial-gradient(ellipse at 30% 50%, #fff4d4 0%, transparent 50%);
}

.scn-geometry-hypotheses .board {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 80%;
  height: 70%;
  background: linear-gradient(135deg, #d4c8b0 0%, #c0b098 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15), 0 4px 12px rgba(0,0,0,0.1);
  animation: li3-board 10s ease-in-out infinite alternate;
}

.scn-geometry-hypotheses .square {
  position: absolute;
  top: 25%;
  left: 25%;
  width: 20%;
  height: 20%;
  background: linear-gradient(135deg, #a09080 0%, #807060 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: li3-square 6s ease-in-out infinite alternate;
}

.scn-geometry-hypotheses .circle {
  position: absolute;
  top: 30%;
  right: 25%;
  width: 18%;
  height: 18%;
  background: radial-gradient(circle, #b0a090 0%, #908070 70%);
  border-radius: 50%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.15);
  animation: li3-circle 8s ease-in-out infinite alternate;
}

.scn-geometry-hypotheses .diameter {
  position: absolute;
  top: 30%;
  right: 25%;
  width: 18%;
  height: 2px;
  background: #605040;
  transform-origin: center;
  animation: li3-diameter 8s ease-in-out infinite alternate;
}

.scn-geometry-hypotheses .triangle {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 0;
  height: 0;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-bottom: 100px solid #807060;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
  animation: li3-triangle 7s ease-in-out infinite alternate;
}

.scn-geometry-hypotheses .point {
  position: absolute;
  bottom: 40%;
  right: 30%;
  width: 3%;
  height: 3%;
  background: radial-gradient(circle, #504030 0%, #302010 100%);
  border-radius: 50%;
  animation: li3-point 5s ease-in-out infinite alternate;
}

@keyframes li3-board {
  0% { transform: translateY(0) scale(0.98); }
  50% { transform: translateY(-2px) scale(1); }
  100% { transform: translateY(1px) scale(0.99); }
}

@keyframes li3-square {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(0.98); }
}

@keyframes li3-circle {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.03) translateX(3px); }
  100% { transform: scale(0.97) translateX(-2px); }
}

@keyframes li3-diameter {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(0deg) scaleX(1.05); }
  100% { transform: rotate(10deg) scaleX(0.95); }
}

@keyframes li3-triangle {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(2px) rotate(2deg); }
}

@keyframes li3-point {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

/* ----- scene 4 ----- */

.scn-four-faculties {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 30%, #d4c8b0 100%),
    radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%);
}

.scn-four-faculties .frame {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 60%;
  height: 80%;
  border: 4px solid #b0a090;
  border-radius: 6px;
  background: rgba(255,250,240,0.15);
  animation: li4-frame 12s ease-in-out infinite alternate;
}

.scn-four-faculties .layer-reason {
  position: absolute;
  top: 12%;
  left: 22%;
  width: 56%;
  height: 18%;
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: li4-layer 6s ease-in-out infinite alternate;
}

.scn-four-faculties .layer-understanding {
  position: absolute;
  top: 32%;
  left: 22%;
  width: 56%;
  height: 16%;
  background: linear-gradient(180deg, #e0d4bc 0%, #d0c0a8 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: li4-layer 6s ease-in-out infinite alternate-reverse;
}

.scn-four-faculties .layer-faith {
  position: absolute;
  top: 50%;
  left: 22%;
  width: 56%;
  height: 14%;
  background: linear-gradient(180deg, #d0c0a8 0%, #c0b098 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: li4-layer 6s ease-in-out infinite alternate;
}

.scn-four-faculties .layer-shadows {
  position: absolute;
  bottom: 12%;
  left: 22%;
  width: 56%;
  height: 12%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: li4-layer 6s ease-in-out infinite alternate-reverse;
}

.scn-four-faculties .line-divider {
  position: absolute;
  top: 30%;
  left: 22%;
  width: 56%;
  height: 2px;
  background: #a09080;
  animation: li4-line 8s ease-in-out infinite alternate;
}

@keyframes li4-frame {
  0% { transform: scale(0.98) translateY(0); opacity: 0.9; }
  50% { transform: scale(1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.99) translateY(1px); opacity: 0.95; }
}

@keyframes li4-layer {
  0% { transform: scaleY(0.95) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(1px); opacity: 0.9; }
}

@keyframes li4-line {
  0% { transform: scaleX(0.9); opacity: 0.5; }
  50% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(0.95); opacity: 0.7; }
}

.scn-theft-force-enchantment { 
  background: 
    linear-gradient(180deg, #f2e8d5 0%, #d9c9a8 40%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 80%, #e6dcc0 0%, transparent 60%);
}
.scn-theft-force-enchantment .wall { 
  position:absolute; inset:0 0 35% 0; 
  background: linear-gradient(180deg, #e0d4b8 0%, #c8b898 100%); 
  animation: tfe-wall 12s ease-in-out infinite alternate; 
}
.scn-theft-force-enchantment .floor { 
  position:absolute; bottom:0; left:0; right:0; height:35%; 
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-theft-force-enchantment .table { 
  position:absolute; bottom:22%; left:50%; width:120px; height:30px; 
  transform:translateX(-50%); 
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a3a 100%); 
  border-radius: 4px; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: tfe-table 5s ease-in-out infinite;
}
.scn-theft-force-enchantment .orb { 
  position:absolute; bottom:36%; left:50%; width:30px; height:30px; 
  transform:translateX(-50%); 
  background: radial-gradient(circle at 40% 40%, #ffeaa0 0%, #f0c060 50%, #b08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e0b050, 0 0 60px 20px rgba(224,176,80,0.3);
  animation: tfe-orb 3s ease-in-out infinite alternate;
}
.scn-theft-force-enchantment .figure { 
  position:absolute; bottom:18%; left:35%; width:24px; height:50px; 
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfe-figure 4s ease-in-out infinite;
}
.scn-theft-force-enchantment .glow { 
  position:absolute; bottom:28%; left:50%; width:80px; height:80px; 
  transform:translateX(-50%); 
  background: radial-gradient(circle, rgba(255,224,160,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: tfe-glow 2s ease-in-out infinite alternate;
}
.scn-theft-force-enchantment .shadow { 
  position:absolute; bottom:16%; left:30%; width:80px; height:12px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: tfe-shadow 4s ease-in-out infinite;
}
.scn-theft-force-enchantment .sparkle-a { 
  position:absolute; top:25%; left:65%; width:6px; height:6px; 
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffe080;
  animation: tfe-sparkle 3s ease-in-out infinite;
}
.scn-theft-force-enchantment .sparkle-b { 
  position:absolute; top:30%; left:70%; width:4px; height:4px; 
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #ffe080;
  animation: tfe-sparkle 4s ease-in-out infinite;
  animation-delay: 1.5s;
}
@keyframes tfe-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tfe-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes tfe-orb { 0% { box-shadow: 0 0 20px 6px #d0a040; transform:translateX(-50%) scale(0.95); opacity:0.9 } 50% { box-shadow: 0 0 40px 14px #ffd060; transform:translateX(-50%) scale(1.05); opacity:1 } 100% { box-shadow: 0 0 30px 10px #e0b050; transform:translateX(-50%) scale(1); opacity:0.95 } }
@keyframes tfe-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes tfe-glow { 0% { opacity:0.6; transform:translateX(-50%) scale(0.9) } 100% { opacity:1; transform:translateX(-50%) scale(1.1) } }
@keyframes tfe-shadow { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(6px) scaleX(0.85) } }
@keyframes tfe-sparkle { 0%,100% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.2) } }

.scn-selection-through-trials { 
  background: 
    linear-gradient(180deg, #d4c8b0 0%, #b8a890 40%, #9a887a 100%),
    radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 60%);
}
.scn-selection-through-trials .bg-arch { 
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #c8b898 0%, #a89880 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: stt-arch 15s ease-in-out infinite alternate;
}
.scn-selection-through-trials .pillar-l { 
  position:absolute; bottom:30%; left:15%; width:20px; height:120px; 
  background: linear-gradient(90deg, #9a887a 0%, #b8a890 50%, #8a786a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: stt-pillar 8s ease-in-out infinite;
}
.scn-selection-through-trials .pillar-r { 
  position:absolute; bottom:30%; right:15%; width:20px; height:120px; 
  background: linear-gradient(90deg, #9a887a 0%, #b8a890 50%, #8a786a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: stt-pillar 8s ease-in-out infinite;
  animation-delay: 1.5s;
}
.scn-selection-through-trials .floor-tiles { 
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: repeating-linear-gradient(90deg, #7a6a5a 0px, #7a6a5a 20px, #8a7a6a 20px, #8a7a6a 40px);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-selection-through-trials .figure-trial { 
  position:absolute; bottom:14%; left:50%; width:30px; height:60px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: stt-figure 6s ease-in-out infinite;
}
.scn-selection-through-trials .trial-fire { 
  position:absolute; bottom:32%; left:50%; width:50px; height:80px; 
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, #c04010 80%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(4px);
  animation: stt-fire 2s ease-in-out infinite alternate;
}
.scn-selection-through-trials .trial-shadow { 
  position:absolute; bottom:12%; left:35%; width:100px; height:20px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: stt-shadow 6s ease-in-out infinite;
}
.scn-selection-through-trials .particle-1 { 
  position:absolute; bottom:40%; left:30%; width:5px; height:5px; 
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #ffd060;
  animation: stt-particle 3s ease-in-out infinite;
}
.scn-selection-through-trials .particle-2 { 
  position:absolute; bottom:45%; left:65%; width:4px; height:4px; 
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #ffd060;
  animation: stt-particle 4s ease-in-out infinite;
  animation-delay: 1.2s;
}
@keyframes stt-arch { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes stt-pillar { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.02) } }
@keyframes stt-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes stt-fire { 0% { opacity:0.8; transform: translateX(-50%) scaleX(0.9) } 50% { opacity:1; transform: translateX(-50%) scaleX(1.1) } 100% { opacity:0.9; transform: translateX(-50%) scaleX(1) } }
@keyframes stt-shadow { 0%,100% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.3; transform: scaleX(0.8) } }
@keyframes stt-particle { 0%,100% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(-30px) } }

.scn-gold-furnace-test { 
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #7a4a2a 0%, transparent 60%);
}
.scn-gold-furnace-test .furnace-body { 
  position:absolute; bottom:10%; left:50%; width:160px; height:120px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 0 30px 6px rgba(200,100,30,0.3);
  animation: gft-body 10s ease-in-out infinite alternate;
}
.scn-gold-furnace-test .furnace-door { 
  position:absolute; bottom:22%; left:50%; width:60px; height:70px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(200,80,20,0.8);
  animation: gft-door 3s ease-in-out infinite alternate;
}
.scn-gold-furnace-test .molten-glow { 
  position:absolute; bottom:28%; left:50%; width:80px; height:80px; 
  transform:translateX(-50%);
  background: radial-gradient(circle, #ff8030 0%, #ff6020 40%, #c04010 80%, transparent 100%);
  filter: blur(10px);
  animation: gft-glow 1.5s ease-in-out infinite alternate;
}
.scn-gold-furnace-test .anvil { 
  position:absolute; bottom:14%; left:30%; width:50px; height:30px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gft-anvil 8s ease-in-out infinite;
}
.scn-gold-furnace-test .hammer { 
  position:absolute; bottom:20%; left:40%; width:8px; height:40px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: gft-hammer 1.2s ease-in-out infinite;
}
.scn-gold-furnace-test .spark-1 { 
  position:absolute; bottom:38%; left:45%; width:4px; height:4px; 
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffd060;
  animation: gft-spark 0.8s ease-out infinite;
}
.scn-gold-furnace-test .spark-2 { 
  position:absolute; bottom:40%; left:55%; width:3px; height:3px; 
  background: radial-gradient(circle, #ffb040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #ffb040;
  animation: gft-spark 1s ease-out infinite;
  animation-delay: 0.3s;
}
.scn-gold-furnace-test .spark-3 { 
  position:absolute; bottom:36%; left:50%; width:5px; height:5px; 
  background: radial-gradient(circle, #ff8030 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ff8030;
  animation: gft-spark 1.2s ease-out infinite;
  animation-delay: 0.6s;
}
@keyframes gft-body { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes gft-door { 0% { box-shadow: inset 0 0 20px rgba(200,80,20,0.6); } 50% { box-shadow: inset 0 0 40px rgba(255,128,40,0.9); } 100% { box-shadow: inset 0 0 20px rgba(200,80,20,0.7); } }
@keyframes gft-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.8; transform: translateX(-50%) scale(1) } }
@keyframes gft-anvil { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes gft-hammer { 0% { transform: rotate(-30deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-30deg) } }
@keyframes gft-spark { 0% { opacity:1; transform: translate(0,0) scale(1) } 100% { opacity:0; transform: translate(20px,-40px) scale(0.2) } }

.scn-guardian-appointment { 
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4aa 30%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 70%, #dcc8a8 0%, transparent 60%);
}
.scn-guardian-appointment .throne-bg { 
  position:absolute; inset:0 0 25% 0; 
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  border-radius: 60% 60% 0 0 / 30% 30% 0 0;
  animation: gua-bg 15s ease-in-out infinite alternate;
}
.scn-guardian-appointment .throne { 
  position:absolute; bottom:32%; left:50%; width:100px; height:80px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: gua-throne 8s ease-in-out infinite;
}
.scn-guardian-appointment .figure-kneeling { 
  position:absolute; bottom:16%; left:50%; width:28px; height:50px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gua-figure 5s ease-in-out infinite;
}
.scn-guardian-appointment .crown { 
  position:absolute; bottom:62%; left:50%; width:30px; height:20px; 
  transform:translateX(-50%);
  background: linear-gradient(180deg, #d4a860 0%, #b08040 100%);
  border-radius: 12% 12% 4% 4% / 40% 40% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(200,160,80,0.4);
  animation: gua-crown 4s ease-in-out infinite alternate;
}
.scn-guardian-appointment .ray-left { 
  position:absolute; top:5%; left:10%; width:40px; height:200px; 
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: rotate(-15deg);
  filter: blur(8px);
  animation: gua-ray 6s ease-in-out infinite alternate;
}
.scn-guardian-appointment .ray-right { 
  position:absolute; top:5%; right:10%; width:40px; height:200px; 
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: gua-ray 6s ease-in-out infinite alternate-reverse;
}
.scn-guardian-appointment .banner-l { 
  position:absolute; bottom:38%; left:15%; width:10px; height:60px; 
  background: linear-gradient(180deg, #a0402a 0%, #70301a 100%); /* terracotta, not crimson */
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gua-banner 10s ease-in-out infinite;
}
.scn-guardian-appointment .banner-r { 
  position:absolute; bottom:38%; right:15%; width:10px; height:60px; 
  background: linear-gradient(180deg, #a0402a 0%, #70301a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gua-banner 10s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes gua-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gua-throne { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes gua-figure { 0% { transform: translateX(-50%) translateY(0) 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(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes gua-crown { 0% { box-shadow: 0 0 10px 2px rgba(200,160,80,0.3); transform: translateX(-50%) scale(0.95) } 50% { box-shadow: 0 0 24px 8px rgba(200,160,80,0.5); transform: translateX(-50%) scale(1.05) } 100% { box-shadow: 0 0 16px 4px rgba(200,160,80,0.4); transform: translateX(-50%) scale(1) } }
@keyframes gua-ray { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes gua-banner { 0%,100% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-4px) skewX(3deg) } }

/* Scene: immortality-soul-intro */
.scn-immortality-soul-intro {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2a 40%, #3a2a2a 100%);
}
.scn-immortality-soul-intro .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1e2a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.4);
}
.scn-immortality-soul-intro .floor {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1423 100%);
}
.scn-immortality-soul-intro .lamp {
  position: absolute; bottom:48%; left:50%; width:16px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
}
.scn-immortality-soul-intro .glow-lamp {
  position: absolute; bottom:48%; left:50%; width:60px; height:60px;
  transform: translate(-50%, -30%);
  background: radial-gradient(circle, #d4a050 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(180,120,40,.5);
  animation: im1-glow 4s ease-in-out infinite alternate;
}
.scn-immortality-soul-intro .figure-left {
  position: absolute; bottom:30%; left:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im1-breathe-left 6s ease-in-out infinite;
}
.scn-immortality-soul-intro .figure-right {
  position: absolute; bottom:30%; right:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im1-breathe-right 6s ease-in-out infinite;
}
.scn-immortality-soul-intro .shadow-left {
  position: absolute; bottom:28%; left:calc(30% - 10px); width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: im1-shadow 6s ease-in-out infinite;
}
.scn-immortality-soul-intro .shadow-right {
  position: absolute; bottom:28%; right:calc(30% - 10px); width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: im1-shadow 6s ease-in-out infinite reverse;
}
@keyframes im1-glow {
  0%   { opacity:.7; transform: translate(-50%, -30%) scale(1); }
  50%  { opacity:1; transform: translate(-50%, -30%) scale(1.1); }
  100% { opacity:.8; transform: translate(-50%, -30%) scale(.95); }
}
@keyframes im1-breathe-left {
  0%   { transform: translateY(0) rotate(-2deg); }
  50%  { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes im1-breathe-right {
  0%   { transform: translateY(0) rotate(2deg); }
  50%  { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes im1-shadow {
  0%   { opacity:.3; transform: scaleX(1); }
  50%  { opacity:.5; transform: scaleX(1.2); }
  100% { opacity:.3; transform: scaleX(1); }
}

/* Scene: immortality-soul-argument */
.scn-immortality-soul-argument {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2a 40%, #3a2a2a 100%);
}
.scn-immortality-soul-argument .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1e2a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.4);
}
.scn-immortality-soul-argument .floor {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1423 100%);
}
.scn-immortality-soul-argument .table {
  position: absolute; bottom:30%; left:35%; right:35%; height:30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-immortality-soul-argument .lamp {
  position: absolute; bottom:45%; left:50%; width:14px; height:36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  animation: im2-lamp-bob 5s ease-in-out infinite;
}
.scn-immortality-soul-argument .glow-lamp {
  position: absolute; bottom:45%; left:50%; width:50px; height:50px;
  transform: translate(-50%, -40%);
  background: radial-gradient(circle, #d4a050 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(180,120,40,.5);
  animation: im2-glow 4s ease-in-out infinite alternate;
}
.scn-immortality-soul-argument .figure-seated {
  position: absolute; bottom:15%; left:38%; width:50px; height:90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im2-seated 7s ease-in-out infinite;
}
.scn-immortality-soul-argument .hand-gesture {
  position: absolute; bottom:40%; left:58%; width:12px; height:20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: im2-hand 4s ease-in-out infinite;
}
.scn-immortality-soul-argument .shadow-figure {
  position: absolute; bottom:12%; left:36%; width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: im2-shadow 7s ease-in-out infinite;
}
@keyframes im2-glow {
  0%   { opacity:.8; transform: translate(-50%, -40%) scale(1); }
  50%  { opacity:1; transform: translate(-50%, -40%) scale(1.08); }
  100% { opacity:.85; transform: translate(-50%, -40%) scale(.95); }
}
@keyframes im2-lamp-bob {
  0%   { transform: translateX(-50%) rotate(-1deg); }
  50%  { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes im2-seated {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes im2-hand {
  0%   { transform: rotate(-20deg) translateY(0); }
  50%  { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes im2-shadow {
  0%   { opacity:.4; transform: scaleX(1); }
  50%  { opacity:.6; transform: scaleX(1.1); }
  100% { opacity:.4; transform: scaleX(1); }
}

/* Scene: immortality-conclusion */
.scn-immortality-conclusion {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2a 40%, #3a2a2a 100%);
}
.scn-immortality-conclusion .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1e2a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.4);
}
.scn-immortality-conclusion .floor {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1423 100%);
}
.scn-immortality-conclusion .mirror-oval {
  position: absolute; bottom:30%; left:50%; width:60px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3);
  animation: im3-mirror 8s ease-in-out infinite;
}
.scn-immortality-conclusion .lamp {
  position: absolute; bottom:45%; left:30%; width:14px; height:36px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
}
.scn-immortality-conclusion .glow-lamp {
  position: absolute; bottom:45%; left:30%; width:40px; height:40px;
  transform: translate(-50%, -40%);
  background: radial-gradient(circle, #d4a050 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(180,120,40,.5);
  animation: im3-glow 5s ease-in-out infinite alternate;
}
.scn-immortality-conclusion .figure-standing {
  position: absolute; bottom:15%; left:38%; width:40px; height:100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im3-stand 6s ease-in-out infinite;
}
.scn-immortality-conclusion .figure-reflection {
  position: absolute; bottom:15%; right:38%; width:40px; height:100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im3-reflect 6s ease-in-out infinite reverse;
  opacity:0.6;
}
.scn-immortality-conclusion .shadow-mirror {
  position: absolute; bottom:38%; left:50%; width:80px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(5px);
}
@keyframes im3-glow {
  0%   { opacity:.8; transform: translate(-50%, -40%) scale(1); }
  50%  { opacity:1; transform: translate(-50%, -40%) scale(1.1); }
  100% { opacity:.85; transform: translate(-50%, -40%) scale(.95); }
}
@keyframes im3-mirror {
  0%   { transform: translateX(-50%) rotate(0deg); }
  50%  { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes im3-stand {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes im3-reflect {
  0%   { transform: translateY(0) rotate(0deg) scaleX(-1); }
  50%  { transform: translateY(2px) rotate(1deg) scaleX(-1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(-1); }
}

/* Scene: soul-true-nature */
.scn-soul-true-nature {
  background: linear-gradient(180deg, #0e0a18 0%, #1a1423 50%, #2a1e2a 100%);
}
.scn-soul-true-nature .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1423 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,.5);
}
.scn-soul-true-nature .floor {
  position: absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1a1423 0%, #0e0a18 100%);
}
.scn-soul-true-nature .figure-kneeling {
  position: absolute; bottom:22%; left:50%; width:50px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: im4-knee 8s ease-in-out infinite;
}
.scn-soul-true-nature .glow-soul {
  position: absolute; bottom:50%; left:50%; width:100px; height:100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #c8a070 0%, #a08050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(160,128,80,.6);
  animation: im4-glow 9s ease-in-out infinite alternate;
}
.scn-soul-true-nature .ray {
  position: absolute; bottom:50%; left:50%;
  width:2px; height:80px;
  background: linear-gradient(180deg, rgba(200,160,112,.8) 0%, transparent 100%);
  transform-origin: bottom center;
}
.scn-soul-true-nature .ray-1 {
  transform: translate(-50%, -100%) rotate(-30deg);
  animation: im4-ray1 12s ease-in-out infinite;
}
.scn-soul-true-nature .ray-2 {
  transform: translate(-50%, -100%) rotate(0deg);
  animation: im4-ray2 10s ease-in-out infinite;
  height:100px;
}
.scn-soul-true-nature .ray-3 {
  transform: translate(-50%, -100%) rotate(30deg);
  animation: im4-ray3 14s ease-in-out infinite;
}
.scn-soul-true-nature .particle {
  position: absolute; bottom:40%; left:50%;
  width:6px; height:6px;
  background: #d4b080;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(212,176,128,.5);
}
.scn-soul-true-nature .particle-a {
  animation: im4-float1 15s linear infinite;
}
.scn-soul-true-nature .particle-b {
  animation: im4-float2 18s linear infinite;
  width:4px; height:4px;
}
@keyframes im4-glow {
  0%   { opacity:.6; transform: translate(-50%, -50%) scale(1); }
  50%  { opacity:.9; transform: translate(-50%, -50%) scale(1.12); }
  100% { opacity:.7; transform: translate(-50%, -50%) scale(.9); }
}
@keyframes im4-knee {
  0%   { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50%  { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes im4-ray1 {
  0%   { opacity:.3; transform: translate(-50%, -100%) rotate(-30deg) scaleY(1); }
  50%  { opacity:.7; transform: translate(-50%, -100%) rotate(-25deg) scaleY(1.2); }
  100% { opacity:.4; transform: translate(-50%, -100%) rotate(-30deg) scaleY(1); }
}
@keyframes im4-ray2 {
  0%   { opacity:.4; transform: translate(-50%, -100%) rotate(0deg) scaleY(1); }
  50%  { opacity:.8; transform: translate(-50%, -100%) rotate(5deg) scaleY(1.1); }
  100% { opacity:.5; transform: translate(-50%, -100%) rotate(0deg) scaleY(1); }
}
@keyframes im4-ray3 {
  0%   { opacity:.3; transform: translate(-50%, -100%) rotate(30deg) scaleY(1); }
  50%  { opacity:.6; transform: translate(-50%, -100%) rotate(35deg) scaleY(1.15); }
  100% { opacity:.35; transform: translate(-50%, -100%) rotate(30deg) scaleY(1); }
}
@keyframes im4-float1 {
  0%   { transform: translate(0px, 0px); opacity:0; }
  10%  { opacity:1; }
  50%  { transform: translate(30px, -40px); opacity:.8; }
  90%  { opacity:1; }
  100% { transform: translate(60px, -80px); opacity:0; }
}
@keyframes im4-float2 {
  0%   { transform: translate(0px, 0px); opacity:0; }
  10%  { opacity:.8; }
  50%  { transform: translate(-40px, -30px); opacity:.6; }
  90%  { opacity:.8; }
  100% { transform: translate(-80px, -60px); opacity:0; }
}

/* rulers-must-descend – tense, bright interior */
.scn-rulers-must-descend {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #dcc29e 40%, #b8926a 100%),
    radial-gradient(ellipse at 30% 70%, rgba(180,130,70,0.3) 0%, transparent 60%);
}
.scn-rulers-must-descend .wall-left {
  position: absolute; inset: 0 55% 0 0;
  background: linear-gradient(180deg, #d6ba8f 0%, #c8a779 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.15);
  animation: rmd-wallsh 12s ease-in-out infinite alternate;
}
.scn-rulers-must-descend .wall-right {
  position: absolute; inset: 0 0 0 55%;
  background: linear-gradient(180deg, #dcc29e 0%, #c8a779 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.1);
  animation: rmd-wallsh 12s ease-in-out infinite alternate-reverse;
}
.scn-rulers-must-descend .staircase {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 45%;
  background: linear-gradient(180deg, #8a6e4a 0%, #6b5330 100%);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: 0 -10px 25px rgba(0,0,0,0.3);
  animation: rmd-stairs 6s ease-in-out infinite alternate;
}
@keyframes rmd-stairs { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes rmd-wallsh { 0% { opacity: 0.9; } 100% { opacity: 1; } }
.scn-rulers-must-descend .figure-descending {
  position: absolute; bottom: 20%; left: 47%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1f1a1a 0%, #0d0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rmd-figure 2.5s ease-in-out infinite alternate;
}
@keyframes rmd-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-rulers-must-descend .shadow-stair {
  position: absolute; bottom: 18%; left: 44%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.2); border-radius: 50%;
  filter: blur(4px);
  animation: rmd-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes rmd-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(0.7); opacity: 0.2; } 100% { transform: scaleX(1); opacity: 0.3; } }
.scn-rulers-must-descend .light-beam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,235,180,0.4) 0%, transparent 80%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: rmd-beam 8s ease-in-out infinite alternate;
}
@keyframes rmd-beam { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
.scn-rulers-must-descend .column-left {
  position: absolute; bottom: 0; left: 20%; width: 18px; height: 70%;
  background: linear-gradient(180deg, #bfa580 0%, #9c7d5a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: rmd-column 15s linear infinite;
}
@keyframes rmd-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
.scn-rulers-must-descend .column-right {
  position: absolute; bottom: 0; right: 20%; width: 18px; height: 70%;
  background: linear-gradient(180deg, #bfa580 0%, #9c7d5a 100%);
  border-radius: 4px;
  box-shadow: -4px 0 10px rgba(0,0,0,0.2);
  animation: rmd-column 15s linear infinite reverse;
}

/* reluctant-rulers-best – calm, bright interior */
.scn-reluctant-rulers-best {
  background:
    linear-gradient(180deg, #f7eed0 0%, #e6d4a0 40%, #c4ab78 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,215,140,0.4) 0%, transparent 60%);
}
.scn-reluctant-rulers-best .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8965a 0%, #8a6e3e 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: rrb-floor 8s ease-in-out infinite alternate;
}
@keyframes rrb-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
.scn-reluctant-rulers-best .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e0b8 0%, #dcc49a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.05);
}
.scn-reluctant-rulers-best .throne {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0805a 0%, #6b4f30 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  clip-path: polygon(10% 0%, 90% 0%, 100% 80%, 85% 100%, 15% 100%, 0% 80%);
  animation: rrb-throne 6s ease-in-out infinite alternate;
}
@keyframes rrb-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
.scn-reluctant-rulers-best .figure-standing {
  position: absolute; bottom: 32%; left: 44%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1f1a2a 0%, #0e0a12 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rrb-figure 3s ease-in-out infinite alternate;
}
@keyframes rrb-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-reluctant-rulers-best .light-from-above {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.5) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: rrb-light 10s ease-in-out infinite alternate;
}
@keyframes rrb-light { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
.scn-reluctant-rulers-best .scroll-table {
  position: absolute; bottom: 34%; left: 58%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #8a6e4a 0%, #5c4228 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: rrb-scroll 7s ease-in-out infinite alternate;
}
@keyframes rrb-scroll { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
.scn-reluctant-rulers-best .candle-holder {
  position: absolute; bottom: 36%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #9a7a3a 100%);
  border-radius: 30%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
  animation: rrb-candle 4s ease-in-out infinite alternate;
}
@keyframes rrb-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }

/* number-and-calculation – calm, bright interior */
.scn-number-and-calculation {
  background:
    linear-gradient(180deg, #f5e4b5 0%, #dcc89a 50%, #b89a68 100%),
    radial-gradient(circle at 70% 30%, rgba(255,230,150,0.3) 0%, transparent 50%);
}
.scn-number-and-calculation .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #9c7a4a 0%, #6b5128 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.2);
  animation: nac-desk 10s ease-in-out infinite alternate;
}
@keyframes nac-desk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
.scn-number-and-calculation .scroll-pile {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #d6b880 0%, #b0905a 100%);
  border-radius: 2px 2px 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: nac-scroll 6s ease-in-out infinite alternate;
}
@keyframes nac-scroll { 0% { transform: rotate(-3deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
.scn-number-and-calculation .abacus {
  position: absolute; bottom: 34%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #b0905a 0%, #7a5c30 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: nac-abacus 5s ease-in-out infinite alternate;
}
@keyframes nac-abacus { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
.scn-number-and-calculation .counting-hand {
  position: absolute; bottom: 32%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #d4a878 0%, #b08050 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: nac-hand 2s ease-in-out infinite alternate;
}
@keyframes nac-hand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-number-and-calculation .window-with-ships {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a0c4e8 0%, #7aa0c0 100%);
  border: 3px solid #6b4f30;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,200,0.3);
  overflow: hidden;
  animation: nac-window 15s ease-in-out infinite alternate;
}
@keyframes nac-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
.scn-number-and-calculation .oil-lamp {
  position: absolute; bottom: 38%; left: 58%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.6);
  animation: nac-lamp 3s ease-in-out infinite alternate;
}
@keyframes nac-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px rgba(255,200,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(255,200,80,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 18px 5px rgba(255,200,80,0.5); } }
.scn-number-and-calculation .parchment-shadow {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 4px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: nac-shadow 6s ease-in-out infinite alternate;
}
@keyframes nac-shadow { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }

/* opposites-invite-thought – calm, bright interior */
.scn-opposites-invite-thought {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 50%, #b09870 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-opposites-invite-thought .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b48a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.08);
  animation: oit-wall 14s ease-in-out infinite alternate;
}
@keyframes oit-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
.scn-opposites-invite-thought .hand-left {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d4a878 0%, #b08050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: oit-hand-l 4s ease-in-out infinite alternate;
}
@keyframes oit-hand-l {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(6deg) scale(1.02); }
  100% { transform: rotate(10deg) scale(1); }
}
.scn-opposites-invite-thought .hand-right {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d4a878 0%, #b08050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: oit-hand-r 4s ease-in-out infinite alternate-reverse;
}
@keyframes oit-hand-r {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-6deg) scale(1.02); }
  100% { transform: rotate(-10deg) scale(1); }
}
.scn-opposites-invite-thought .shadow-dark {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: oit-shadow 6s ease-in-out infinite alternate;
}
@keyframes oit-shadow { 0% { transform: scaleX(0.9); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.35; } }
.scn-opposites-invite-thought .book-shelf {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #7a5c30 0%, #4a3218 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  overflow: hidden;
}
.scn-opposites-invite-thought .book-shelf::before {
  content: '';
  position: absolute; top: 50%; left: 10%; width: 80%; height: 4px;
  background: #5c4228;
  box-shadow: 0 12px 0 #5c4228, 0 -12px 0 #5c4228;
}
.scn-opposites-invite-thought .desk-lamp {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,200,80,0.5);
  animation: oit-lamp 3s ease-in-out infinite alternate;
}
@keyframes oit-lamp { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
.scn-opposites-invite-thought .open-book {
  position: absolute; bottom: 18%; left: 42%; width: 36px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c4a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: perspective(50px) rotateX(5deg);
  animation: oit-book 8s ease-in-out infinite alternate;
}
@keyframes oit-book { 0% { transform: perspective(50px) rotateX(5deg); } 50% { transform: perspective(50px) rotateX(8deg); } 100% { transform: perspective(50px) rotateX(5deg); } }
.scn-opposites-invite-thought .finger-pointing {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d4a878 0%, #b08050 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: oit-finger 2.5s ease-in-out infinite alternate;
}
@keyframes oit-finger { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }

/* ===== drones-in-state (bright interior, tense) ===== */
.scn-drones-in-state {
  background: linear-gradient(135deg, #f7e8c0 0%, #d4a86a 30%, #b88344 60%, #7a5320 100%),
              radial-gradient(circle at 30% 70%, #ffd48a 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(120,70,20,0.5);
}
.scn-drones-in-state .hive-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(60deg, transparent 0px, transparent 20px, rgba(180,130,70,0.15) 20px, rgba(180,130,70,0.15) 22px);
  animation: drones-hive-shift 20s linear infinite;
}
.scn-drones-in-state .hex {
  position: absolute; width: 70px; height: 80px; background: linear-gradient(135deg, #e8c680, #c09450); clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  box-shadow: inset 0 0 15px rgba(255,200,100,0.3), 0 4px 10px rgba(0,0,0,0.4);
  animation: drones-hex-pulse 6s ease-in-out infinite alternate;
}
.scn-drones-in-state .hex-1 { top: 12%; left: 20%; }
.scn-drones-in-state .hex-2 { top: 35%; left: 65%; width: 60px; height: 70px; animation-delay: -2s; }
.scn-drones-in-state .hex-3 { bottom: 15%; left: 40%; width: 80px; height: 90px; animation-delay: -4s; }
.scn-drones-in-state .drone {
  position: absolute; width: 12px; height: 20px; background: linear-gradient(180deg, #3a2a1a, #5a3a2a, #2a1a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: drones-fly 4s ease-in-out infinite;
}
.scn-drones-in-state .drone-1 { top: 25%; left: 45%; animation-delay: 0s; }
.scn-drones-in-state .drone-2 { top: 50%; left: 30%; animation-delay: -1.3s; transform: scale(0.8); }
.scn-drones-in-state .drone-3 { top: 70%; left: 60%; animation-delay: -2.7s; transform: scale(1.1); }
.scn-drones-in-state .glow-pulse {
  position: absolute; top: 40%; left: 50%; width: 60px; height: 60px; transform: translate(-50%,-50%);
  background: radial-gradient(circle, #ffd080 0%, #ffb050 40%, transparent 70%);
  animation: drones-glow 3s ease-in-out infinite alternate;
}
.scn-drones-in-state .shadow-bar {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.5));
  animation: drones-shadow 8s ease-in-out infinite alternate;
}
@keyframes drones-hive-shift { 0% { background-position: 0 0; } 100% { background-position: 40px 30px; } }
@keyframes drones-hex-pulse { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes drones-fly { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(4px, -3px) rotate(1deg); } 50% { transform: translate(8px, 1px) rotate(-1deg); } 75% { transform: translate(2px, -2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes drones-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px #ffb050; } 50% { opacity: 1; box-shadow: 0 0 40px 20px #ffb050, 0 0 60px 30px rgba(255,176,80,0.3); } 100% { opacity: 0.7; box-shadow: 0 0 25px 12px #ffa040; } }
@keyframes drones-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* ===== tyrant-wolf-analogy (dim interior, tense) ===== */
.scn-tyrant-wolf-analogy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 30%, #1a0a10 60%, #0a0505 100%),
              radial-gradient(ellipse at 70% 30%, #3a2a3a 0%, transparent 60%);
}
.scn-tyrant-wolf-analogy .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(50,30,30,0.3) 0%, transparent 50%, rgba(10,5,5,0.5) 100%);
  animation: tywolf-shift 12s ease-in-out infinite alternate;
}
.scn-tyrant-wolf-analogy .figure-sil {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 70px; transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a, #1a1a1a 50%, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tywolf-figure 6s ease-in-out infinite;
}
.scn-tyrant-wolf-analogy .wolf-head {
  position: absolute; bottom: 47%; left: 50%; width: 26px; height: 22px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 60%, 80% 100%, 20% 100%, 0% 60%);
  animation: tywolf-head 6s ease-in-out infinite;
}
.scn-tyrant-wolf-analogy .claw {
  position: absolute; bottom: 25%; width: 12px; height: 30px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 50% 0 0;
  animation: tywolf-claw 2s ease-in-out infinite alternate;
}
.scn-tyrant-wolf-analogy .claw-l { left: 38%; transform: rotate(-15deg); animation-delay: 0s; }
.scn-tyrant-wolf-analogy .claw-r { right: 38%; transform: rotate(15deg); animation-delay: -1s; }
.scn-tyrant-wolf-analogy .entrails-shadow {
  position: absolute; bottom: 8%; left: 45%; width: 40px; height: 20px; background: radial-gradient(ellipse, #2a0a0a 0%, transparent 70%);
  filter: blur(4px); animation: tywolf-pool 8s ease-in-out infinite alternate;
}
.scn-tyrant-wolf-analogy .moon-beam {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 200px; background: linear-gradient(180deg, rgba(200,200,255,0.15) 0%, transparent 60%);
  transform: rotate(25deg); filter: blur(3px); animation: tywolf-beam 6s ease-in-out infinite alternate;
}
.scn-tyrant-wolf-analogy .dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.05) 0%, transparent 70%);
  background-size: 40px 40px; animation: tywolf-dust 20s linear infinite;
}
@keyframes tywolf-shift { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tywolf-figure { 0% { transform: translateX(-50%) scaleY(1); } 30% { transform: translateX(-50%) scaleY(1.1); } 60% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes tywolf-head { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.1); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes tywolf-claw { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.3); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes tywolf-pool { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes tywolf-beam { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }
@keyframes tywolf-dust { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }

/* ===== tyrant-bodyguard-request (dim interior, calm) ===== */
.scn-tyrant-bodyguard-request {
  background: linear-gradient(180deg, #2a2018 0%, #3a2e22 30%, #2a2018 70%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-tyrant-bodyguard-request .study-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(60,45,30,0.2) 0%, transparent 50%, rgba(20,15,10,0.4) 100%);
  animation: tyguard-bg 20s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .candle {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 20px; background: linear-gradient(180deg, #e8c880 0%, #8a6a3a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #e8c880; animation: tyguard-candle 4s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .glow-circle {
  position: absolute; top: 30%; left: 20%; width: 80px; height: 80px; transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(232,200,128,0.4) 0%, transparent 70%);
  animation: tyguard-glow 5s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .figure-left {
  position: absolute; bottom: 22%; left: 15%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tyguard-figure-l 8s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .figure-right {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tyguard-figure-r 8s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .book-stack {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #6a4a2a, #4a2a10, #5a3a20, #3a1a0a); border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: tyguard-books 12s ease-in-out infinite alternate;
}
.scn-tyrant-bodyguard-request .shadow-slow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.4));
  animation: tyguard-shadow 15s ease-in-out infinite alternate;
}
@keyframes tyguard-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tyguard-candle { 0% { transform: scaleY(0.95); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.9; } }
@keyframes tyguard-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(0.95); } }
@keyframes tyguard-figure-l { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes tyguard-figure-r { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(1px) scale(0.98); } }
@keyframes tyguard-books { 0% { transform: scale(0.98); } 50% { transform: scale(1.03); } 100% { transform: scale(0.99); } }
@keyframes tyguard-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }

/* ===== tyrant-war-taxation (dim interior, tense) ===== */
.scn-tyrant-war-taxation {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1018 30%, #0a0508 60%, #000000 100%),
              radial-gradient(ellipse at 30% 20%, #1a1a2e 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(100,0,0,0.2);
}
.scn-tyrant-war-taxation .dark-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(30,20,25,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: tywar-chamber 15s ease-in-out infinite alternate;
}
.scn-tyrant-war-taxation .map-scroll {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 70px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a, #4a3a2a, #2a1a0a); border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.8); animation: tywar-map 8s ease-in-out infinite alternate;
}
.scn-tyrant-war-taxation .hand-tyrant {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-10deg); animation: tywar-hand 3s ease-in-out infinite alternate;
}
.scn-tyrant-war-taxation .war-token {
  position: absolute; width: 10px; height: 10px; border-radius: 50%; background: linear-gradient(135deg, #8a6a3a, #5a3a1a);
  box-shadow: 0 0 6px rgba(200,150,80,0.3); animation: tywar-token 5s ease-in-out infinite alternate;
}
.scn-tyrant-war-taxation .token-1 { bottom: 30%; left: 35%; animation-delay: 0s; }
.scn-tyrant-war-taxation .token-2 { bottom: 28%; left: 45%; animation-delay: -1.7s; }
.scn-tyrant-war-taxation .token-3 { bottom: 32%; left: 55%; animation-delay: -3.3s; }
.scn-tyrant-war-taxation .coin-pile {
  position: absolute; bottom: 12%; left: 45%; width: 50px; height: 30px;
  background: repeating-linear-gradient(0deg, #6a5a3a 0px, #8a7a5a 2px, #4a3a1a 4px, #6a5a3a 6px);
  border-radius: 50% 50% 0 0; box-shadow: 0 -2px 10px rgba(200,150,80,0.3), inset 0 2px 6px rgba(0,0,0,0.5);
  animation: tywar-coin 6s ease-in-out infinite;
}
.scn-tyrant-war-taxation .shadow-dagger {
  position: absolute; top: 20%; left: 30%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%); transform: rotate(-30deg);
  animation: tywar-dagger 4s ease-in-out infinite alternate;
}
.scn-tyrant-war-taxation .smoke-wisp {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,80,60,0.2) 0%, transparent 70%);
  filter: blur(6px); animation: tywar-smoke 10s ease-in-out infinite alternate;
}
@keyframes tywar-chamber { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tywar-map { 0% { transform: translateX(-50%) scale(0.97); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes tywar-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(1px); } }
@keyframes tywar-token { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.85); opacity: 0.7; } }
@keyframes tywar-coin { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1.05); } }
@keyframes tywar-dagger { 0% { transform: rotate(-30deg) translateX(0); opacity: 0.3; } 50% { transform: rotate(-25deg) translateX(5px); opacity: 0.8; } 100% { transform: rotate(-30deg) translateX(0); opacity: 0.4; } }
@keyframes tywar-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.1; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(10px) scale(0.8); opacity: 0.15; } }

/* --- what-is-imitation --- */
.scn-what-is-imitation {
  background: 
    linear-gradient(180deg, #2b241c 0%, #1f1a14 40%, #14100c 100%),
    radial-gradient(ellipse at 50% 100%, #3a2f24 0%, transparent 60%);
}
.scn-what-is-imitation .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #2b241c 0%, #1a1510 50%, #14100c 100%); animation: wi-room 20s ease-in-out infinite alternate; }
.scn-what-is-imitation .table-wood { position:absolute; bottom:20%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #6a4e36 0%, #4a3422 100%); border-radius: 6px 6px 3px 3px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: wi-table 6s ease-in-out infinite; }
.scn-what-is-imitation .lamp-glow { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: radial-gradient(circle at 50% 30%, #d4a56a 0%, #b8834a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,150,80,0.3); animation: wi-lamp 4s ease-in-out infinite alternate; }
.scn-what-is-imitation .figure-questioner { position:absolute; bottom:18%; left:20%; width:22px; height:60px; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wi-questioner 8s ease-in-out infinite; }
.scn-what-is-imitation .figure-listener  { position:absolute; bottom:18%; left:55%; width:20px; height:55px; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wi-listener 8s ease-in-out infinite alternate; }
.scn-what-is-imitation .shadow-shape { position:absolute; bottom:15%; left:35%; width:80px; height:40px; background: radial-gradient(ellipse, #0a0806 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: wi-shadow 6s ease-in-out infinite; }
.scn-what-is-imitation .scroll-roll { position:absolute; bottom:22%; left:38%; width:40px; height:8px; background: linear-gradient(90deg, #bca482 0%, #8a704e 100%); border-radius: 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: wi-scroll 12s linear infinite alternate; }
@keyframes wi-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wi-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wi-lamp { 0% { transform: scale(1) rotate(-2deg); opacity:0.7 } 50% { transform: scale(1.05) rotate(0deg); opacity:1 } 100% { transform: scale(0.98) rotate(2deg); opacity:0.8 } }
@keyframes wi-questioner { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(6px) rotate(1deg) } }
@keyframes wi-listener { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(2px) rotate(2deg) } }
@keyframes wi-shadow { 0%,100% { transform: scale(1) translateX(0); opacity:0.4 } 50% { transform: scale(1.1) translateX(5px); opacity:0.7 } }
@keyframes wi-scroll { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(20px) scaleX(0.9) } }

/* --- idea-of-bed-table --- */
.scn-idea-of-bed-table {
  background: 
    linear-gradient(180deg, #1c1a16 0%, #2c241e 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 0%, #3a3026 0%, transparent 60%);
}
.scn-idea-of-bed-table .back-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2c241e 0%, #1c1814 100%); animation: ib-wall 15s ease-in-out infinite alternate; }
.scn-idea-of-bed-table .bed-frame { position:absolute; bottom:20%; left:10%; width:35%; height:18%; background: linear-gradient(180deg, #5a422e 0%, #3a2a1a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); animation: ib-bed 8s ease-in-out infinite; }
.scn-idea-of-bed-table .bed-mattress { position:absolute; bottom:21%; left:12%; width:31%; height:14%; background: linear-gradient(180deg, #7a5a3e 0%, #4a3422 100%); border-radius: 2px 2px 4px 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: ib-mattress 6s ease-in-out infinite alternate; }
.scn-idea-of-bed-table .table-surface { position:absolute; bottom:28%; right:15%; width:25%; height:8%; background: linear-gradient(180deg, #704e32 0%, #503620 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ib-table 10s ease-in-out infinite; }
.scn-idea-of-bed-table .table-legs { position:absolute; bottom:20%; right:18%; width:6%; height:8%; background: linear-gradient(180deg, #4a3422 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ib-legs 10s ease-in-out infinite; }
.scn-idea-of-bed-table .carpenter-shadow { position:absolute; bottom:12%; left:45%; width:30px; height:50px; background: radial-gradient(ellipse, #0a0806 0%, transparent 60%); border-radius: 50%; filter: blur(6px); animation: ib-carp 12s ease-in-out infinite; }
.scn-idea-of-bed-table .tool-rack { position:absolute; top:15%; left:5%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ib-rack 20s linear infinite alternate; }
.scn-idea-of-bed-table .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(200,170,130,0.15) 0%, transparent 40%); filter: blur(8px); animation: ib-dust 25s ease-in-out infinite; }
@keyframes ib-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ib-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ib-mattress { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.02) } }
@keyframes ib-table { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes ib-legs { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ib-carp { 0%,100% { transform: scale(1) translateX(0); opacity:0.3 } 50% { transform: scale(1.2) translateX(8px); opacity:0.6 } }
@keyframes ib-rack { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes ib-dust { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.9) } }

/* --- mirror-appearance-painter --- */
.scn-mirror-appearance-painter {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1e1612 40%, #16100c 100%),
    radial-gradient(ellipse at 40% 60%, #3a2c20 0%, transparent 70%);
}
.scn-mirror-appearance-painter .studio-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2018 0%, #1e1612 50%, #16100c 100%); animation: mp-wall 18s ease-in-out infinite alternate; }
.scn-mirror-appearance-painter .easel-frame { position:absolute; bottom:16%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #503620 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: mp-easel 6s ease-in-out infinite; }
.scn-mirror-appearance-painter .canvas-surface { position:absolute; bottom:20%; left:22%; width:34px; height:40px; background: linear-gradient(135deg, #8a7a66 0%, #6a5a4a 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: mp-canvas 7s ease-in-out infinite alternate; }
.scn-mirror-appearance-painter .painter-silhouette { position:absolute; bottom:14%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-painter 10s ease-in-out infinite; }
.scn-mirror-appearance-painter .mirror-oval { position:absolute; top:12%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(180,160,140,0.4) 0%, rgba(100,80,60,0.2) 60%, transparent 100%); border: 2px solid #4a3422; border-radius: 50%; box-shadow: 0 0 30px 10px rgba(150,130,100,0.2); animation: mp-mirror 15s ease-in-out infinite alternate; }
.scn-mirror-appearance-painter .paint-brush { position:absolute; bottom:22%; left:35%; width:4px; height:20px; background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%); border-radius: 1px; transform: rotate(20deg); animation: mp-brush 4s ease-in-out infinite; }
.scn-mirror-appearance-painter .palette-blob { position:absolute; bottom:18%; left:48%; width:28px; height:16px; background: radial-gradient(ellipse, #8a6a4e 0%, #503620 100%); border-radius: 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mp-palette 8s ease-in-out infinite; }
@keyframes mp-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mp-easel { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes mp-canvas { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(-1deg) } 100% { transform: scale(0.98) rotate(1deg) } }
@keyframes mp-painter { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 75% { transform: translateX(5px) rotate(1deg) } }
@keyframes mp-mirror { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.05) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes mp-brush { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes mp-palette { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }

/* --- three-kinds-of-beds --- */
.scn-three-kinds-of-beds {
  background: 
    linear-gradient(180deg, #1c1a1e 0%, #2c2428 40%, #1a1418 100%),
    radial-gradient(ellipse at 50% 0%, #3a2e34 0%, transparent 60%);
}
.scn-three-kinds-of-beds .temple-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c1a1e 0%, #2c2428 50%, #1a1418 100%); animation: tk-temple 20s ease-in-out infinite alternate; }
.scn-three-kinds-of-beds .divine-bed { position:absolute; top:10%; left:5%; width:25%; height:20%; background: linear-gradient(135deg, #e8d8c0 0%, #c8b498 100%); border-radius: 6px; box-shadow: 0 0 40px 15px rgba(255,220,160,0.15); animation: tk-divine 12s ease-in-out infinite; }
.scn-three-kinds-of-beds .carpenter-bed { position:absolute; top:10%; left:37%; width:25%; height:18%; background: linear-gradient(180deg, #6a4e36 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: tk-carp 12s ease-in-out infinite alternate; }
.scn-three-kinds-of-beds .painter-bed { position:absolute; top:10%; right:5%; width:25%; height:16%; background: linear-gradient(135deg, #9a8a76 0%, #6a5a4a 100%); border-radius: 4px; opacity:0.8; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: tk-paint 12s ease-in-out infinite; }
.scn-three-kinds-of-beds .heavenly-glow { position:absolute; top:8%; left:12%; width:12%; height:8%; background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: tk-glow 8s ease-in-out infinite alternate; }
.scn-three-kinds-of-beds .wood-shaving { position:absolute; bottom:20%; left:40%; width:3px; height:12px; background: #4a3422; border-radius: 50%; animation: tk-shaving 9s linear infinite; }
.scn-three-kinds-of-beds .paint-splatter { position:absolute; bottom:25%; right:20%; width:20px; height:12px; background: radial-gradient(ellipse, #8a6a4e 0%, transparent 60%); border-radius: 50%; filter: blur(2px); animation: tk-splatter 7s ease-in-out infinite; }
@keyframes tk-temple { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tk-divine { 0%,100% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-3px) scale(1.03); opacity:1 } }
@keyframes tk-carp { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes tk-paint { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes tk-glow { 0% { opacity:0.1; transform: scale(1) } 50% { opacity:0.4; transform: scale(1.3) } 100% { opacity:0.2; transform: scale(0.9) } }
@keyframes tk-shaving { 0% { transform: translateY(0) rotate(0deg); opacity:0.8 } 100% { transform: translateY(-60px) rotate(180deg); opacity:0 } }
@keyframes tk-splatter { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.2) translateX(5px) } }

.scn-world-cannot-be-philosopher {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #e8d5a8 30%, #c9b88a 60%, #b8a070 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,235,180,0.6) 0%, transparent 60%);
}
.scn-world-cannot-be-philosopher .wcp-window {
  position: absolute; top: 6%; left: 8%; right: 8%; height: 52%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 30%, #d0e8f8 70%, #e0f0ff 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 60px rgba(255,235,150,0.3);
  animation: wcp-window 8s ease-in-out infinite alternate;
}
.scn-world-cannot-be-philosopher .wcp-light-beam {
  position: absolute; top: 8%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.35) 0%, rgba(255,240,180,0.08) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: wcp-beam 6s ease-in-out infinite alternate;
}
.scn-world-cannot-be-philosopher .wcp-desk {
  position: absolute; bottom: 6%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #8b6914 0%, #6b4e10 100%);
  border-radius: 2px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.scn-world-cannot-be-philosopher .wcp-figure {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: wcp-figure 5s ease-in-out infinite alternate;
}
.scn-world-cannot-be-philosopher .wcp-shelf {
  position: absolute; top: 60%; left: 60%; right: 6%; height: 4px;
  background: #5a3e1a;
  box-shadow: 0 20px 0 #5a3e1a, 0 40px 0 #5a3e1a;
  border-radius: 1px;
}
.scn-world-cannot-be-philosopher .wcp-book {
  position: absolute; width: 10px; height: 18px; border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-world-cannot-be-philosopher .wcp-book-a { top: 62%; left: 62%; background: #702243; animation: wcp-book 12s ease-in-out infinite; }
.scn-world-cannot-be-philosopher .wcp-book-b { top: 62%; left: 68%; background: #2a5a3a; height: 20px; animation: wcp-book 12s ease-in-out 2s infinite; }
.scn-world-cannot-be-philosopher .wcp-book-c { top: 62%; left: 74%; background: #b87878; height: 16px; animation: wcp-book 12s ease-in-out 4s infinite; }
.scn-world-cannot-be-philosopher .wcp-hourglass {
  position: absolute; bottom: 22%; left: 26%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4a060 0%, #c08040 50%, #a06020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 8px rgba(192,128,64,0.3);
  animation: wcp-hourglass 9s ease-in-out infinite alternate;
}
@keyframes wcp-window { 0% { opacity: 0.85; box-shadow: inset 0 0 40px rgba(255,235,150,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 80px rgba(255,235,150,0.4); } 100% { opacity: 0.9; box-shadow: inset 0 0 50px rgba(255,235,150,0.25); } }
@keyframes wcp-beam { 0% { opacity: 0.3; transform: skewX(-2deg); } 50% { opacity: 0.6; transform: skewX(1deg); } 100% { opacity: 0.35; transform: skewX(-1deg); } }
@keyframes wcp-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes wcp-book { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes wcp-hourglass { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(1deg); } }

.scn-flattery-prevents-philosophy {
  background:
    linear-gradient(135deg, #d4c8a8 0%, #b8a888 30%, #8a7a5a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(200,180,120,0.4) 0%, transparent 60%);
}
.scn-flattery-prevents-philosophy .fpp-backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(90,74,58,0.3) 0%, transparent 40%, rgba(0,0,0,0.2) 100%);
  animation: fpp-backdrop 7s ease-in-out infinite alternate;
}
.scn-flattery-prevents-philosophy .fpp-figure {
  position: absolute; bottom: 18%; left: 50%; width: 32px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e140a 0%, #0a0604 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  box-shadow: 0 0 30px rgba(200,180,120,0.2);
  animation: fpp-figure 4s ease-in-out infinite alternate;
}
.scn-flattery-prevents-philosophy .fpp-hand {
  position: absolute; bottom: 24%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-flattery-prevents-philosophy .fpp-hand-l { left: 12%; animation: fpp-hand-l 3s ease-in-out infinite alternate; }
.scn-flattery-prevents-philosophy .fpp-hand-r { right: 12%; animation: fpp-hand-r 3s ease-in-out infinite alternate; }
.scn-flattery-prevents-philosophy .fpp-shadow {
  position: absolute; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 100%);
  animation: fpp-shadow 5s ease-in-out infinite alternate;
}
.scn-flattery-prevents-philosophy .fpp-shadow-a { left: 5%; right: 85%; }
.scn-flattery-prevents-philosophy .fpp-shadow-b { left: 85%; right: 5%; animation-delay: 2.5s; }
.scn-flattery-prevents-philosophy .fpp-glow {
  position: absolute; top: 5%; left: 35%; right: 35%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,200,150,0.5) 0%, transparent 70%);
  animation: fpp-glow 6s ease-in-out infinite alternate;
}
@keyframes fpp-backdrop { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fpp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fpp-hand-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(10deg); } 100% { transform: translateX(2px) rotate(5deg); } }
@keyframes fpp-hand-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-10deg); } 100% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes fpp-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.98); } }
@keyframes fpp-glow { 0% { opacity: 0.4; filter: blur(10px); } 50% { opacity: 0.8; filter: blur(15px); } 100% { opacity: 0.5; filter: blur(12px); } }

.scn-bald-tinker-parable {
  background:
    linear-gradient(135deg, #f0d080 0%, #d8b060 30%, #c09040 60%, #a07030 100%),
    radial-gradient(ellipse at 70% 50%, rgba(240,200,100,0.5) 0%, transparent 50%);
}
.scn-bald-tinker-parable .btp-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,160,80,0.2) 0%, rgba(160,120,60,0.4) 100%);
  animation: btp-bg 6s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-tinker {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  box-shadow: 0 0 20px rgba(200,80,60,0.3);
  animation: btp-tinker 3s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-tinker::before {
  content: ''; position: absolute; top: 8%; left: 50%; width: 18px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #f0e0b0 0%, #d0b080 100%);
  border-radius: 50%;
  animation: btp-head 3s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-coat {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a8a 0%, #3a1a5a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: btp-coat 4s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-coins {
  position: absolute; bottom: 14%; left: 55%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #ffd700 0%, #b8860b 60%, #8b6508 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 30px rgba(255,215,0,0.5);
  animation: btp-coins 2s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-bath {
  position: absolute; bottom: 6%; left: 20%; right: 60%; height: 10%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
}
.scn-bald-tinker-parable .btp-bride-veil {
  position: absolute; top: 10%; left: 44%; width: 50px; height: 40px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(240,220,200,0.2) 100%);
  clip-path: polygon(20% 0, 80% 0, 90% 100%, 10% 100%);
  filter: blur(3px);
  animation: btp-veil 5s ease-in-out infinite alternate;
}
.scn-bald-tinker-parable .btp-sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8c0 0%, rgba(255,248,192,0) 70%);
  border-radius: 50%;
}
.scn-bald-tinker-parable .btp-sparkle-a { top: 20%; left: 50%; animation: btp-sparkle 3s ease-in-out infinite; }
.scn-bald-tinker-parable .btp-sparkle-b { top: 35%; left: 40%; animation: btp-sparkle 3s ease-in-out 1.5s infinite; }
@keyframes btp-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes btp-tinker { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes btp-head { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes btp-coat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes btp-coins { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes btp-veil { 0% { opacity: 0.2; transform: translateY(0) rotate(-2deg); } 50% { opacity: 0.5; transform: translateY(-5px) rotate(2deg); } 100% { opacity: 0.3; transform: translateY(0) rotate(0deg); } }
@keyframes btp-sparkle { 0%,100% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-philosopher-finding-suitable-state {
  background:
    linear-gradient(180deg, #87c8e8 0%, #b0d8f0 20%, #d0e8f8 40%, #e8f0e0 60%, #c0b080 80%, #a09060 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,240,180,0.4) 0%, transparent 50%);
}
.scn-philosopher-finding-suitable-state .pfs-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 50%, #e0f0ff 100%);
  animation: pfs-sky 10s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-sun {
  position: absolute; top: 8%; left: 25%; width: 32px; height: 32px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd700 40%, #ffa500 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px rgba(255,215,0,0.5), 0 0 120px rgba(255,215,0,0.2);
  animation: pfs-sun 8s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-hill {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a8a4a 0%, #3a6a2a 50%, #2a4a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: pfs-hill 14s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-figure {
  position: absolute; bottom: 32%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pfs-figure 6s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-city {
  position: absolute; bottom: 28%; left: 55%; right: 5%; height: 14%;
  background:
    linear-gradient(180deg, #c0a870 0%, #a08050 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 6px, #8a6a3a 6px, #8a6a3a 7px, transparent 7px, transparent 14px);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px rgba(192,168,112,0.3);
  animation: pfs-city 12s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-path {
  position: absolute; bottom: 22%; left: 28%; right: 50%; height: 6%;
  background: linear-gradient(90deg, #8a7a5a 0%, #a09060 50%, #8a7a5a 100%);
  clip-path: polygon(0 20%, 100% 0, 95% 100%, 5% 80%);
  animation: pfs-path 8s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-tree {
  position: absolute; bottom: 28%; left: 15%; width: 30px; height: 50px;
  background:
    linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  box-shadow: 0 0 20px rgba(42,74,26,0.3);
  animation: pfs-tree 9s ease-in-out infinite alternate;
}
.scn-philosopher-finding-suitable-state .pfs-tree::before {
  content: ''; position: absolute; bottom: 0; left: 50%; width: 6px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
@keyframes pfs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pfs-sun { 0% { transform: translateX(0) scale(0.95); box-shadow: 0 0 40px rgba(255,215,0,0.4); } 50% { transform: translateX(8px) scale(1.05); box-shadow: 0 0 80px rgba(255,215,0,0.6); } 100% { transform: translateX(0) scale(0.98); box-shadow: 0 0 50px rgba(255,215,0,0.45); } }
@keyframes pfs-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pfs-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pfs-city { 0% { opacity: 0.7; transform: scale(0.98); } 50% { opacity: 0.9; transform: scale(1.01); } 100% { opacity: 0.75; transform: scale(0.99); } }
@keyframes pfs-path { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.6; transform: scaleY(1); } }
@keyframes pfs-tree { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* rewards-justice: calm dim-interior, balance scales */
.scn-rewards-justice {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1f1610 40%, #0d0a07 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-rewards-justice .rj-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(90,70,40,0.15) 0%, transparent 60%, rgba(0,0,0,0.6) 100%); }
.scn-rewards-justice .rj-table { position:absolute; bottom:18%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-rewards-justice .rj-scale-stand { position:absolute; bottom:40%; left:50%; width:8px; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #8a7054 0%, #5a4430 100%); border-radius: 20% 20% 0 0; }
.scn-rewards-justice .rj-scale-left { position:absolute; bottom:48%; left:38%; width:24%; height:6%; background: linear-gradient(180deg, #d4b88a 0%, #a8885a 100%); border-radius: 50% 50% 0 0; transform-origin: 100% 50%; animation: rj-pan-left 6s ease-in-out infinite alternate; }
.scn-rewards-justice .rj-scale-right { position:absolute; bottom:48%; left:38%; width:24%; height:6%; background: linear-gradient(180deg, #d4b88a 0%, #a8885a 100%); border-radius: 50% 50% 0 0; transform-origin: 0% 50%; animation: rj-pan-right 6s ease-in-out infinite alternate; }
.scn-rewards-justice .rj-glow-light { position:absolute; bottom:44%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,200,80,0.6); animation: rj-flicker 3s ease-in-out infinite alternate; }

@keyframes rj-pan-left {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(0deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes rj-pan-right {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  100% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes rj-flicker {
  0% { opacity:0.7; transform:scale(1) translateY(0); }
  50% { opacity:1; transform:scale(1.05) translateY(-2px); }
  100% { opacity:0.8; transform:scale(0.95) translateY(0); }
}

/* myth-of-er-intro: funeral pyre, laid body, soft smoke */
.scn-myth-of-er-intro {
  background: 
    linear-gradient(180deg, #1a1c2a 0%, #0e101c 50%, #05060a 100%),
    radial-gradient(ellipse at 50% 70%, #2a2e44 0%, transparent 60%);
}
.scn-myth-of-er-intro .mi-bg { position:absolute; inset:0; background: linear-gradient(0deg, rgba(40,50,80,0.2) 0%, transparent 50%, rgba(0,0,0,0.6) 100%); }
.scn-myth-of-er-intro .mi-pyre-logs { position:absolute; bottom:20%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #4a3420 0%, #281a0e 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.8); }
.scn-myth-of-er-intro .mi-figure { position:absolute; bottom:30%; left:38%; width:24%; height:18%; background: linear-gradient(180deg, #d4c8b0 0%, #a89880 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.5); }
.scn-myth-of-er-intro .mi-flame { position:absolute; bottom:50%; left:46%; width:8%; height:12%; background: radial-gradient(circle, #ffb060 0%, #c06030 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,176,96,0.5); animation: mi-flame 2s ease-in-out infinite alternate; }
.scn-myth-of-er-intro .mi-glow { position:absolute; bottom:40%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,176,96,0.3) 0%, transparent 70%); animation: mi-glow-pulse 8s ease-in-out infinite alternate; }
.scn-myth-of-er-intro .mi-smoke { position:absolute; top:15%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, rgba(200,200,220,0.05) 100%); border-radius: 50%; filter: blur(12px); animation: mi-smoke-drift 15s linear infinite; }

@keyframes mi-flame {
  0% { transform: scaleY(1) translateY(0); opacity:0.6; }
  50% { transform: scaleY(1.15) translateY(-4px) scaleX(0.9); opacity:1; }
  100% { transform: scaleY(0.95) translateY(2px); opacity:0.7; }
}
@keyframes mi-glow-pulse {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.2; }
}
@keyframes mi-smoke-drift {
  0% { transform: translateX(-20px) translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateX(10px) translateY(-30px) scale(1.2); opacity:0.5; }
  100% { transform: translateX(40px) translateY(-60px) scale(1.4); opacity:0; }
}

/* myth-of-er-intermediate: judge on throne, two paths */
.scn-myth-of-er-intermediate {
  background: 
    linear-gradient(180deg, #121524 0%, #1a1e38 40%, #0e1020 100%),
    radial-gradient(ellipse at 50% 40%, #2a3050 0%, transparent 70%);
}
.scn-myth-of-er-intermediate .mi2-bg { position:absolute; inset:0; background: linear-gradient(0deg, rgba(20,30,60,0.3) 0%, transparent 50%); }
.scn-myth-of-er-intermediate .mi2-judge { position:absolute; bottom:30%; left:43%; width:14%; height:40%; background: linear-gradient(180deg, #2a3040 0%, #101420 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(60,80,120,0.5); }
.scn-myth-of-er-intermediate .mi2-path-right { position:absolute; bottom:20%; right:8%; width:12%; height:50%; background: linear-gradient(180deg, rgba(200,220,255,0.25) 0%, rgba(200,220,255,0.05) 100%); border-radius: 0 50% 0 0; transform-origin: bottom left; animation: mi2-path-rise 12s ease-in-out infinite alternate; }
.scn-myth-of-er-intermediate .mi2-path-left { position:absolute; bottom:20%; left:8%; width:12%; height:50%; background: linear-gradient(180deg, rgba(50,40,60,0.4) 0%, rgba(20,15,30,0.8) 100%); border-radius: 50% 0 0 0; transform-origin: bottom right; animation: mi2-path-fall 14s ease-in-out infinite alternate; }
.scn-myth-of-er-intermediate .mi2-halo { position:absolute; bottom:55%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(180,200,255,0.2) 0%, transparent 70%); animation: mi2-halo-pulse 8s ease-in-out infinite alternate; }
.scn-myth-of-er-intermediate .mi2-figure-ascend { position:absolute; bottom:20%; right:16%; width:6%; height:8%; background: linear-gradient(180deg, #b8bcd0 0%, #707488 100%); border-radius: 50% 50% 30% 30%; animation: mi2-ascend 20s linear infinite; }
.scn-myth-of-er-intermediate .mi2-figure-descend { position:absolute; bottom:20%; left:16%; width:6%; height:8%; background: linear-gradient(180deg, #3a3040 0%, #1a1020 100%); border-radius: 50% 50% 30% 30%; animation: mi2-descend 18s linear infinite; }

@keyframes mi2-path-rise {
  0% { transform: translateY(0) scaleY(1); opacity:0.3; }
  50% { transform: translateY(-10px) scaleY(1.1); opacity:0.7; }
  100% { transform: translateY(-5px) scaleY(1.05); opacity:0.5; }
}
@keyframes mi2-path-fall {
  0% { transform: translateY(0) scaleY(1); opacity:0.6; }
  50% { transform: translateY(10px) scaleY(0.9); opacity:0.9; }
  100% { transform: translateY(5px) scaleY(0.95); opacity:0.7; }
}
@keyframes mi2-halo-pulse {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.5; transform: scale(1.2); }
  100% { opacity:0.3; transform: scale(0.9); }
}
@keyframes mi2-ascend {
  0% { transform: translateY(0) translateX(0); opacity:0; }
  20% { opacity:0.8; }
  50% { transform: translateY(-60px) translateX(10px); opacity:0.6; }
  100% { transform: translateY(-120px) translateX(20px); opacity:0; }
}
@keyframes mi2-descend {
  0% { transform: translateY(0) translateX(0); opacity:0; }
  20% { opacity:0.9; }
  50% { transform: translateY(60px) translateX(-10px); opacity:0.7; }
  100% { transform: translateY(120px) translateX(-20px); opacity:0; }
}

/* myth-of-er-retribution: dark, punishment and reward scales, figure kneeling */
.scn-myth-of-er-retribution {
  background: 
    linear-gradient(180deg, #0a0508 0%, #140a10 40%, #1a0e14 100%),
    radial-gradient(ellipse at 50% 50%, #2a101c 0%, transparent 70%);
}
.scn-myth-of-er-retribution .mr-bg { position:absolute; inset:0; background: linear-gradient(0deg, rgba(30,10,20,0.4) 0%, transparent 50%, rgba(0,0,0,0.7) 100%); }
.scn-myth-of-er-retribution .mr-column-right { position:absolute; top:10%; right:15%; width:12%; height:70%; background: linear-gradient(180deg, rgba(255,200,150,0.25) 0%, rgba(200,120,80,0.1) 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 40px 10px rgba(255,180,120,0.2); animation: mr-light-column 10s ease-in-out infinite alternate; }
.scn-myth-of-er-retribution .mr-column-left { position:absolute; top:10%; left:15%; width:12%; height:70%; background: linear-gradient(180deg, rgba(80,20,40,0.5) 0%, rgba(40,10,20,0.8) 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px 5px rgba(80,20,40,0.4); animation: mr-dark-column 14s ease-in-out infinite alternate; }
.scn-myth-of-er-retribution .mr-figure { position:absolute; bottom:15%; left:36%; width:28%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0606 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: mr-figure-tremble 0.8s ease-in-out infinite alternate; }
.scn-myth-of-er-retribution .mr-judge { position:absolute; top:5%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #1a1420 0%, #0a0610 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(60,10,30,0.6); animation: mr-judge-glow 6s ease-in-out infinite alternate; }
.scn-myth-of-er-retribution .mr-flames { position:absolute; bottom:20%; left:10%; width:8%; height:15%; background: radial-gradient(circle, #ff6030 0%, #801000 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,60,30,0.5); animation: mr-flame-flicker 1.5s ease-in-out infinite alternate; }
.scn-myth-of-er-retribution .mr-shadow { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%); }

@keyframes mr-light-column {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.7; transform: scaleX(1.05); }
  100% { opacity:0.4; transform: scaleX(0.95); }
}
@keyframes mr-dark-column {
  0% { opacity:0.6; transform: scaleX(1); }
  50% { opacity:0.9; transform: scaleX(0.9); }
  100% { opacity:0.7; transform: scaleX(1.1); }
}
@keyframes mr-figure-tremble {
  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(1px) rotate(0.5deg); }
}
@keyframes mr-judge-glow {
  0% { box-shadow: 0 0 20px 5px rgba(60,10,30,0.5); }
  50% { box-shadow: 0 0 40px 15px rgba(80,20,40,0.8); }
  100% { box-shadow: 0 0 15px 3px rgba(60,10,30,0.4); }
}
@keyframes mr-flame-flicker {
  0% { transform: scaleY(1) translateY(0); opacity:0.6; }
  50% { transform: scaleY(1.2) translateY(-3px) scaleX(0.9); opacity:1; }
  100% { transform: scaleY(0.9) translateY(2px); opacity:0.5; }
}

/* wealth-poverty-degeneration (wpd) */
.scn-wealth-poverty-degeneration {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 70%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 20%, #c8b8a8 0%, transparent 50%);
}
.scn-wealth-poverty-degeneration .scene-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,160,140,0.4) 0%, transparent 60%);
}
.scn-wealth-poverty-degeneration .window-lit {
  position: absolute; top: 8%; right: 15%;
  width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 40%, #ffe8c0 0%, #d4b08a 60%, #8a7050 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,232,192,0.6);
  animation: wpd-window 8s ease-in-out infinite alternate;
}
.scn-wealth-poverty-degeneration .potter {
  position: absolute; bottom: 30%; left: 35%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wpd-potter 5s ease-in-out infinite;
}
.scn-wealth-poverty-degeneration .wheel {
  position: absolute; bottom: 28%; left: 35%;
  width: 50px; height: 10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: wpd-wheel 3s linear infinite;
}
.scn-wealth-poverty-degeneration .pot-clay {
  position: absolute; bottom: 40%; left: 38%;
  width: 20px; height: 22px;
  background: radial-gradient(circle at 50% 60%, #c8553d 0%, #8a4530 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: wpd-pot 4s ease-in-out infinite alternate;
}
.scn-wealth-poverty-degeneration .coin-pile {
  position: absolute; bottom: 28%; right: 20%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #d4a83a 0%, #b8902a 60%, #8a6a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: wpd-coin 10s ease-in-out infinite alternate;
}
.scn-wealth-poverty-degeneration .crack-line {
  position: absolute; bottom: 45%; left: 45%;
  width: 2px; height: 30px;
  background: #2a1a0a;
  transform: rotate(15deg);
  animation: wpd-crack 6s ease-in-out infinite;
}
.scn-wealth-poverty-degeneration .shadow-drama {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: wpd-shadow 12s ease-in-out infinite alternate;
}
@keyframes wpd-window {
  0% { opacity: 0.8; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.02) rotate(2deg); box-shadow: 0 0 40px 15px rgba(255,232,192,0.8); }
  100% { opacity: 0.7; transform: scale(0.98) rotate(-1deg); }
}
@keyframes wpd-potter {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(5px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wpd-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes wpd-pot {
  0% { transform: scale(1) translateY(0); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
  50% { transform: scale(1.05) translateY(-2px); border-radius: 40% 60% 40% 40% / 70% 50% 50% 30%; }
  100% { transform: scale(0.95) translateY(1px); border-radius: 55% 45% 25% 35% / 50% 70% 40% 40%; }
}
@keyframes wpd-coin {
  0% { opacity: 0.6; transform: translateY(0) scale(1); }
  50% { opacity: 1; transform: translateY(-3px) scale(1.1); box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
  100% { opacity: 0.5; transform: translateY(0) scale(0.9); }
}
@keyframes wpd-crack {
  0% { opacity: 0.3; transform: rotate(15deg) scaleY(1); }
  50% { opacity: 0.8; transform: rotate(20deg) scaleY(1.2); }
  100% { opacity: 0.2; transform: rotate(10deg) scaleY(0.8); }
}
@keyframes wpd-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* war-without-wealth (www) */
.scn-war-without-wealth {
  background: 
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, #6a7a8a 70%, #4a5a6a 100%),
    radial-gradient(ellipse at 30% 40%, #8a9aaa 0%, transparent 60%);
}
.scn-war-without-wealth .scene-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,210,220,0.3) 0%, transparent 50%);
}
.scn-war-without-wealth .map-table {
  position: absolute; bottom: 25%; left: 20%; right: 20%;
  height: 30px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7050 50%, #5a4a3a 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: www-table 15s ease-in-out infinite alternate;
}
.scn-war-without-wealth .warrior {
  position: absolute; bottom: 30%; left: 25%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: www-warrior 6s ease-in-out infinite;
}
.scn-war-without-wealth .rich-soldier {
  position: absolute; bottom: 30%; right: 25%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #b89860 0%, #8a7040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: www-rich 8s ease-in-out infinite reverse;
}
.scn-war-without-wealth .spear {
  position: absolute; bottom: 42%; left: 30%;
  width: 3px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: www-spear 4s ease-in-out infinite alternate;
}
.scn-war-without-wealth .scroll-map {
  position: absolute; bottom: 30%; left: 50%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #d4c8b0 0%, #a89878 100%);
  border-radius: 5% 5% 20% 20%;
  transform: translateX(-50%) rotate(-5deg);
  animation: www-scroll 12s ease-in-out infinite;
}
.scn-war-without-wealth .flag-war {
  position: absolute; bottom: 55%; left: 22%;
  width: 4px; height: 30px;
  background: #4a5a6a;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: www-flag 7s ease-in-out infinite;
}
.scn-war-without-wealth .flag-rich {
  position: absolute; bottom: 55%; right: 22%;
  width: 4px; height: 30px;
  background: #d4a83a;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: www-flag 7s ease-in-out infinite reverse;
}
@keyframes www-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes www-warrior {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes www-rich {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-2deg); }
  50% { transform: translateX(-16px) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes www-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes www-scroll {
  0% { opacity: 0.7; transform: translateX(-50%) rotate(-5deg) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) rotate(0deg) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) rotate(-8deg) scale(0.95); }
}
@keyframes www-flag {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.2); }
  100% { transform: rotate(-10deg) scaleY(0.9); }
}

/* embassy-to-rich-city (erc) */
.scn-embassy-to-rich-city {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #f8f0e0 30%, #d8d0c0 70%, #c8c0b0 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-embassy-to-rich-city .scene-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, transparent 50%);
}
.scn-embassy-to-rich-city .ambassador {
  position: absolute; bottom: 30%; left: 20%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a6a8a 0%, #3a5a7a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: erc-ambassador 3s ease-in-out infinite;
}
.scn-embassy-to-rich-city .scribe {
  position: absolute; bottom: 28%; left: 30%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: erc-scribe 4s ease-in-out infinite alternate;
}
.scn-embassy-to-rich-city .banner {
  position: absolute; bottom: 50%; left: 22%;
  width: 3px; height: 35px;
  background: #b8903a;
  animation: erc-banner 5s ease-in-out infinite;
}
.scn-embassy-to-rich-city .gift-box {
  position: absolute; bottom: 26%; left: 35%;
  width: 25px; height: 20px;
  background: linear-gradient(180deg, #c06040 0%, #a04030 100%);
  border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: erc-gift 6s ease-in-out infinite alternate;
}
.scn-embassy-to-rich-city .rich-ruler {
  position: absolute; bottom: 30%; right: 20%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #c8a060 0%, #a88040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: erc-ruler 8s ease-in-out infinite;
}
.scn-embassy-to-rich-city .throne {
  position: absolute; bottom: 26%; right: 18%;
  width: 40px; height: 35px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5020 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  animation: erc-throne 10s ease-in-out infinite alternate;
}
.scn-embassy-to-rich-city .coin-bribe {
  position: absolute; bottom: 30%; left: 40%;
  width: 15px; height: 12px;
  background: radial-gradient(circle, #f0d04a 0%, #c0a02a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: erc-coin 4s ease-in-out infinite;
}
@keyframes erc-ambassador {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes erc-scribe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes erc-banner {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.3); }
  100% { transform: rotate(-5deg) scaleY(0.9); }
}
@keyframes erc-gift {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.1) translateY(-3px); box-shadow: 0 8px 12px rgba(0,0,0,0.4); }
  100% { transform: scale(0.9) translateY(1px); }
}
@keyframes erc-ruler {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-3deg); }
  50% { transform: translateX(-16px) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes erc-throne {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.05) scaleY(1.02); }
  100% { transform: scaleX(0.95) scaleY(0.98); }
}
@keyframes erc-coin {
  0% { opacity: 0.6; transform: translateY(0) rotate(0deg); }
  50% { opacity: 1; transform: translateY(-5px) rotate(180deg); }
  100% { opacity: 0.5; transform: translateY(0) rotate(360deg); }
}

/* state-size-unity (ssu) */
.scn-state-size-unity {
  background: 
    linear-gradient(180deg, #a8c8d8 0%, #c8e0f0 40%, #e8f0f8 80%, #d0e0e8 100%),
    radial-gradient(ellipse at 70% 30%, #e0f0f8 0%, transparent 50%);
}
.scn-state-size-unity .scene-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 50%);
}
.scn-state-size-unity .sun {
  position: absolute; top: 10%; left: 60%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0e090 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,224,144,0.3);
  animation: ssu-sun 20s ease-in-out infinite alternate;
}
.scn-state-size-unity .city-wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%;
  height: 30px;
  background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.1);
  animation: ssu-wall 30s ease-in-out infinite alternate;
}
.scn-state-size-unity .house-a {
  position: absolute; bottom: 32%; left: 15%;
  width: 40px; height: 45px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: ssu-house 25s ease-in-out infinite;
}
.scn-state-size-unity .house-b {
  position: absolute; bottom: 32%; left: 45%;
  width: 50px; height: 55px;
  background: linear-gradient(180deg, #b8a888 0%, #989868 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: ssu-house 25s ease-in-out infinite reverse;
}
.scn-state-size-unity .tree {
  position: absolute; bottom: 33%; left: 70%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 40% 40%;
  transform-origin: bottom center;
  animation: ssu-tree 18s ease-in-out infinite alternate;
}
.scn-state-size-unity .citizen {
  position: absolute; bottom: 32%; left: 30%;
  width: 16px; height: 35px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ssu-citizen 12s ease-in-out infinite;
}
.scn-state-size-unity .cloud-ssu {
  position: absolute; top: 15%; left: 10%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ssu-cloud 40s linear infinite;
}
@keyframes ssu-sun {
  0% { opacity: 0.7; transform: scale(1) translateY(0); }
  50% { opacity: 1; transform: scale(1.02) translateY(-5px); }
  100% { opacity: 0.8; transform: scale(0.98) translateY(0); }
}
@keyframes ssu-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ssu-house {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(0.98) translateY(0); }
}
@keyframes ssu-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ssu-citizen {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(10px) translateY(-2px); }
  50% { transform: translateX(20px) translateY(0); }
  75% { transform: translateX(10px) translateY(2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes ssu-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(calc(100vw + 80px)); }
}

/* Pythagorean Harmony */
.scn-pythagorean-harmony {
  background: linear-gradient(180deg, #f7efe0 0%, #e6d5b8 60%, #d4bfa0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-pythagorean-harmony .room-wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #eedcc0 0%, #d9c4a0 100%); animation: ph-wall 8s ease-in-out infinite alternate;
}
.scn-pythagorean-harmony .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #b59a7a 0%, #c9af8e 40%, #e0cbb0 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: ph-floor 12s ease-in-out infinite;
}
.scn-pythagorean-harmony .window {
  position: absolute; top: 15%; left: 60%; width: 30%; height: 50%; background: linear-gradient(135deg, #ffffff 0%, #dfd0b8 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.6), 0 0 40px rgba(255,240,200,.3); animation: ph-window 9s ease-in-out infinite alternate;
}
.scn-pythagorean-harmony .instrument {
  position: absolute; bottom: 30%; left: 20%; width: 35%; height: 30%; background: linear-gradient(180deg, #c4a87a 0%, #8e6f48 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: ph-instr 7s ease-in-out infinite;
}
.scn-pythagorean-harmony .strings {
  position: absolute; bottom: 42%; left: 22%; width: 30%; height: 8%; background: linear-gradient(90deg, transparent 0%, #ffd700 20%, #ffecb3 50%, #ffd700 80%, transparent 100%); filter: blur(2px); box-shadow: 0 0 15px 5px rgba(255,215,0,.4); animation: ph-strings 5s ease-in-out infinite alternate;
}
.scn-pythagorean-harmony .figure-ear {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 18%; background: linear-gradient(180deg, #e8d5b8 0%, #c4a87a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ph-figure 6s ease-in-out infinite;
}
.scn-pythagorean-harmony .shadow-ear {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 18%; background: rgba(0,0,0,.1); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translate(4px,2px) scale(0.95); filter: blur(3px); animation: ph-shad 6s ease-in-out infinite;
}
.scn-pythagorean-harmony .light-ray {
  position: absolute; top: 15%; left: 60%; width: 20%; height: 40%; background: linear-gradient(135deg, rgba(255,255,230,.4) 0%, transparent 100%); transform-origin: top left; animation: ph-ray 10s ease-in-out infinite alternate;
}
@keyframes ph-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ph-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ph-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,.6), 0 0 40px rgba(255,240,200,.3) } 50% { box-shadow: inset 0 0 35px rgba(255,255,200,.9), 0 0 60px rgba(255,240,200,.5) } 100% { box-shadow: inset 0 0 25px rgba(255,255,200,.5), 0 0 50px rgba(255,240,200,.35) } }
@keyframes ph-instr { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes ph-strings { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: .7; transform: scaleY(.95) } }
@keyframes ph-figure { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(1deg) translateX(3px) } 100% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes ph-shad { 0% { opacity: .3; transform: translate(4px,2px) scale(0.95) } 50% { opacity: .5; transform: translate(6px,4px) scale(0.95) } 100% { opacity: .2; transform: translate(2px,1px) scale(0.95) } }
@keyframes ph-ray { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.2) } 100% { transform: rotate(-2deg) scaleX(.9) } }

/* Power of Dialectic */
.scn-power-of-dialectic {
  background: linear-gradient(180deg, #f2e6d0 0%, #dcc8a8 50%, #bfa88a 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-power-of-dialectic .wall-bg {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f0e2c8 0%, #d4be9e 100%); animation: pd-wall 10s ease-in-out infinite alternate;
}
.scn-power-of-dialectic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #a68d6e 0%, #bea481 40%, #d4be9e 100%); border-radius: 20% 80% 0 0 / 30% 50% 0 0; animation: pd-floor 14s ease-in-out infinite;
}
.scn-power-of-dialectic .board {
  position: absolute; bottom: 25%; left: 15%; width: 30%; height: 40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,.2); animation: pd-board 8s ease-in-out infinite alternate;
}
.scn-power-of-dialectic .diagram-circle {
  position: absolute; bottom: 45%; left: 22%; width: 8%; height: 12%; background: radial-gradient(circle, #ffd700 0%, #c8962a 70%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,215,0,.3); animation: pd-circle 6s ease-in-out infinite;
}
.scn-power-of-dialectic .diagram-line {
  position: absolute; bottom: 48%; left: 25%; width: 12%; height: 2%; background: linear-gradient(90deg, #c8962a 0%, #ffd700 50%, #c8962a 100%); transform-origin: left; animation: pd-line 5s ease-in-out infinite alternate;
}
.scn-power-of-dialectic .figure-point {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 16%; background: linear-gradient(180deg, #d4be9e 0%, #bfa88a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pd-fig 7s ease-in-out infinite;
}
.scn-power-of-dialectic .lamp-glow {
  position: absolute; top: 5%; right: 10%; width: 12%; height: 20%; background: radial-gradient(ellipse at center, rgba(255,240,200,.8) 0%, transparent 70%); animation: pd-lamp 11s ease-in-out infinite alternate;
}
.scn-power-of-dialectic .shadow-figure {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 16%; background: rgba(0,0,0,.15); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translate(5px,2px) scale(0.95); filter: blur(3px); animation: pd-shad 7s ease-in-out infinite;
}
@keyframes pd-wall { 0% { opacity: .95 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes pd-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes pd-board { 0% { box-shadow: -4px 0 12px rgba(0,0,0,.2) } 50% { box-shadow: -6px 0 18px rgba(0,0,0,.3) } 100% { box-shadow: -2px 0 8px rgba(0,0,0,.15) } }
@keyframes pd-circle { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes pd-line { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }
@keyframes pd-fig { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(5px) } 100% { transform: rotate(-2deg) translateX(-2px) } }
@keyframes pd-lamp { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(1) } }
@keyframes pd-shad { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .2 } }

/* Dialectic Alone Removes Hypotheses (tense) */
.scn-dialectic-alone-removes-hypotheses {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #b08050 0%, transparent 70%);
  animation: dh-bg 3s ease-in-out infinite alternate;
}
.scn-dialectic-alone-removes-hypotheses .pit-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(0deg, #0a0500 0%, #2a1a0a 50%, #4a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: dh-pit 2s ease-in-out infinite alternate;
}
.scn-dialectic-alone-removes-hypotheses .pit-slop {
  position: absolute; bottom: 55%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 50%; filter: blur(4px); animation: dh-slop 1.5s ease-in-out infinite alternate;
}
.scn-dialectic-alone-removes-hypotheses .figure-rising {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dh-fig 4s ease-in-out infinite;
}
.scn-dialectic-alone-removes-hypotheses .arm-reach {
  position: absolute; bottom: 40%; left: 45%; width: 4%; height: 20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: dh-arm 3s ease-in-out infinite;
}
.scn-dialectic-alone-removes-hypotheses .eye-soul {
  position: absolute; bottom: 50%; left: 46%; width: 4%; height: 4%; background: radial-gradient(circle, #ffd060 0%, #c08020 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.5); animation: dh-eye 2s ease-in-out infinite alternate;
}
.scn-dialectic-alone-removes-hypotheses .light-beam {
  position: absolute; top: 0; left: 48%; width: 4%; height: 60%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: dh-beam 1.8s ease-in-out infinite alternate;
}
.scn-dialectic-alone-removes-hypotheses .rock-edge {
  position: absolute; bottom: 55%; left: 10%; width: 20%; height: 15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%; transform: rotate(-10deg); animation: dh-rock 5s ease-in-out infinite;
}
.scn-dialectic-alone-removes-hypotheses .shadow-pit {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: rgba(0,0,0,.3); filter: blur(8px); animation: dh-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes dh-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes dh-pit { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes dh-slop { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: .5; transform: scaleY(0.8) } }
@keyframes dh-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(-10px) rotate(-1deg) } 75% { transform: translateY(-5px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dh-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes dh-eye { 0% { box-shadow: 0 0 15px 4px #ffd060, 0 0 30px 8px rgba(255,208,96,.4); opacity: .7 } 50% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,.6); opacity: 1 } 100% { box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.5); opacity: .85 } }
@keyframes dh-beam { 0% { opacity: .5; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.3) } 100% { opacity: .6; transform: scaleY(0.8) } }
@keyframes dh-rock { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } }
@keyframes dh-shadow { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .3 } }

/* Education for Rulers */
.scn-education-for-rulers {
  background: linear-gradient(180deg, #f7f0e0 0%, #e0d1b8 50%, #c5b296 100%), radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 60%);
}
.scn-education-for-rulers .room-bg {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #f2e8d0 0%, #dfceb0 100%); animation: er-bg 9s ease-in-out infinite alternate;
}
.scn-education-for-rulers .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #b09a7c 0%, #c9b598 40%, #dfceb0 100%); border-radius: 10% 90% 0 0 / 20% 40% 0 0; animation: er-floor 15s ease-in-out infinite;
}
.scn-education-for-rulers .post-pillar {
  position: absolute; bottom: 10%; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, #bba88a 0%, #a08868 100%); border-radius: 20% 20% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.2); animation: er-pillar 8s ease-in-out infinite alternate;
}
.scn-education-for-rulers .teacher-figure {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 22%; background: linear-gradient(180deg, #d4be9e 0%, #bfa88a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: er-teach 6s ease-in-out infinite;
}
.scn-education-for-rulers .student-figure {
  position: absolute; bottom: 25%; right: 25%; width: 10%; height: 18%; background: linear-gradient(180deg, #c9b598 0%, #b09a7c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: er-stud 7s ease-in-out infinite;
}
.scn-education-for-rulers .scroll-open {
  position: absolute; bottom: 30%; left: 28%; width: 10%; height: 8%; background: linear-gradient(180deg, #eedcc0 0%, #dfceb0 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: er-scroll 5s ease-in-out infinite alternate;
}
.scn-education-for-rulers .light-source {
  position: absolute; top: 5%; right: 15%; width: 15%; height: 25%; background: radial-gradient(ellipse at center, rgba(255,240,200,.8) 0%, transparent 70%); animation: er-light 12s ease-in-out infinite alternate;
}
.scn-education-for-rulers .shadow-teacher {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 22%; background: rgba(0,0,0,.1); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translate(6px,3px) scale(0.95); filter: blur(3px); animation: er-shad 6s ease-in-out infinite;
}
@keyframes er-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes er-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes er-pillar { 0% { box-shadow: 4px 0 12px rgba(0,0,0,.2) } 50% { box-shadow: 6px 0 18px rgba(0,0,0,.25) } 100% { box-shadow: 2px 0 8px rgba(0,0,0,.15) } }
@keyframes er-teach { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(-1px) } }
@keyframes er-stud { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-2px) } 100% { transform: scaleX(-1) translateY(1px) } }
@keyframes er-scroll { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.1) } 100% { transform: rotate(-7deg) scaleX(0.9) } }
@keyframes er-light { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.15) } 100% { opacity: .8; transform: scale(1) } }
@keyframes er-shad { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .25 } }

.scn-image-of-soul-chimera {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #3a2a1a 100%), radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 70%);
}
.scn-image-of-soul-chimera .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(26,26,46,0.9) 0%, rgba(42,26,46,0.7) 50%, rgba(20,20,30,0.8) 100%);
  animation: sc1-wall 20s ease-in-out infinite;
}
.scn-image-of-soul-chimera .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
  animation: sc1-floor 15s ease-in-out infinite;
}
.scn-image-of-soul-chimera .lamp {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b05820 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.3);
  animation: sc1-lamp 3s ease-in-out infinite alternate;
}
.scn-image-of-soul-chimera .body {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%;
  animation: sc1-body 6s ease-in-out infinite;
}
.scn-image-of-soul-chimera .head {
  position: absolute; width: 40px; height: 36px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc1-head 5s ease-in-out infinite;
}
.scn-image-of-soul-chimera .head-a { bottom: 60%; left: 30%; animation-delay: 0s; }
.scn-image-of-soul-chimera .head-b { bottom: 65%; left: 50%; transform: translateX(-50%); animation-delay: -1.67s; }
.scn-image-of-soul-chimera .head-c { bottom: 60%; right: 30%; animation-delay: -3.33s; }
@keyframes sc1-wall { 0%,100% { opacity: 0.9; } 50% { opacity: 0.7; } }
@keyframes sc1-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes sc1-lamp { 0% { box-shadow: 0 0 25px 8px #ffa040; } 50% { box-shadow: 0 0 40px 14px #ffc060; } 100% { box-shadow: 0 0 20px 6px #d08030; } }
@keyframes sc1-body { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes sc1-head { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(4px,-3px) rotate(5deg); } }

.scn-noble-ignoble-beast-god {
  background: linear-gradient(180deg, #151025 0%, #2a1a2e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #3a2030 0%, transparent 60%);
}
.scn-noble-ignoble-beast-god .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a1a 0%, #251025 50%, #1a1020 100%);
  animation: sc2-bg 25s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1020 0%, #0a0510 100%);
  border-radius: 20% 20% 0 0;
  animation: sc2-floor 20s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .throne {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sc2-throne 10s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .figure {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sc2-figure 6s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .head {
  position: absolute; bottom: 70%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40%;
  animation: sc2-head 4s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .wing {
  position: absolute; bottom: 30%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0510 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 20% 20%;
  animation: sc2-wing 7s ease-in-out infinite;
}
.scn-noble-ignoble-beast-god .wing-l { left: 25%; transform-origin: bottom right; animation-delay: 0s; }
.scn-noble-ignoble-beast-god .wing-r { right: 25%; transform-origin: bottom left; animation-delay: -3.5s; }
@keyframes sc2-bg { 0%,100% { opacity: 0.85; } 50% { opacity: 0.7; } }
@keyframes sc2-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes sc2-throne { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } }
@keyframes sc2-figure { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-1px); } }
@keyframes sc2-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } }
@keyframes sc2-wing { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }

.scn-profit-undetected-injustice {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 40% 70%, #3a2020 0%, transparent 60%);
}
.scn-profit-undetected-injustice .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a0a 0%, #201020 50%, #0a0510 100%);
  animation: sc3-bg 30s ease-in-out infinite;
}
.scn-profit-undetected-injustice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 15% 15% 0 0;
  animation: sc3-floor 25s ease-in-out infinite;
}
.scn-profit-undetected-injustice .beam {
  position: absolute; bottom: 50%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(90deg, #3a2a2a 0%, #4a3a3a 50%, #3a2a2a 100%);
  border-radius: 3px;
  animation: sc3-beam 5s ease-in-out infinite;
  transform-origin: center center;
}
.scn-profit-undetected-injustice .pan {
  position: absolute; width: 40px; height: 20px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-profit-undetected-injustice .pan-left {
  bottom: 40%; left: 25%;
  animation: sc3-pan 6s ease-in-out infinite;
}
.scn-profit-undetected-injustice .pan-right {
  bottom: 40%; right: 25%;
  animation: sc3-pan 6s ease-in-out infinite reverse;
}
.scn-profit-undetected-injustice .weight {
  position: absolute; width: 20px; height: 20px;
  background: radial-gradient(circle, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50%;
  animation: sc3-weight 4s ease-in-out infinite;
}
.scn-profit-undetected-injustice .weight-left {
  bottom: 36%; left: 27%;
  animation-delay: 0s;
}
.scn-profit-undetected-injustice .weight-right {
  bottom: 36%; right: 27%;
  animation-delay: -2s;
}
.scn-profit-undetected-injustice .shadow {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  animation: sc3-shadow 8s ease-in-out infinite;
}
@keyframes sc3-bg { 0%,100% { opacity: 0.9; } 50% { opacity: 0.75; } }
@keyframes sc3-floor { 0%,100% { opacity: 0.85; } 50% { opacity: 0.95; } }
@keyframes sc3-beam { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes sc3-pan { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes sc3-weight { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }
@keyframes sc3-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

.scn-poetry-rule-intro {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-poetry-rule-intro .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a1a 0%, #2a1a1a 50%, #0a0510 100%);
  animation: sc4-bg 18s ease-in-out infinite;
}
.scn-poetry-rule-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 12% 12% 0 0;
  animation: sc4-floor 22s ease-in-out infinite;
}
.scn-poetry-rule-intro .chair {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 15% 15% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: sc4-chair 14s ease-in-out infinite;
}
.scn-poetry-rule-intro .figure {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sc4-figure 6s ease-in-out infinite;
}
.scn-poetry-rule-intro .lyre {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sc4-lyre 4s ease-in-out infinite;
}
.scn-poetry-rule-intro .note {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: sc4-note 7s ease-in-out infinite;
}
.scn-poetry-rule-intro .note-1 { bottom: 50%; left: 40%; animation-delay: 0s; }
.scn-poetry-rule-intro .note-2 { bottom: 55%; left: 65%; animation-delay: -3.5s; }
@keyframes sc4-bg { 0%,100% { opacity: 0.85; } 50% { opacity: 0.7; } }
@keyframes sc4-floor { 0%,100% { opacity: 0.9; } 50% { opacity: 0.8; } }
@keyframes sc4-chair { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } }
@keyframes sc4-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes sc4-lyre { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(-2deg); } }
@keyframes sc4-note { 0%,100% { transform: translate(0,0) scale(1); opacity: 0.4; } 50% { transform: translate(-5px,10px) scale(0.8); opacity: 0.7; } }

.scn-glaucon-encourages {
  background:
    linear-gradient(180deg, #fef9e0 0%, #e6dab6 40%, #c2b28a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8d0 0%, transparent 60%);
}
.scn-glaucon-encourages .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fcf3d0 0%, #e8dbb8 100%);
  animation: gla-enc-wall 20s ease-in-out infinite alternate;
}
.scn-glaucon-encourages .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a77a 0%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: gla-enc-floor 25s ease-in-out infinite alternate;
}
.scn-glaucon-encourages .column-left {
  position: absolute;
  bottom: 35%; left: 15%;
  width: 12px; height: 45%;
  background: linear-gradient(90deg, #d4c8a0, #b8a67c, #d4c8a0);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
  animation: gla-enc-column 15s ease-in-out infinite;
}
.scn-glaucon-encourages .column-right {
  position: absolute;
  bottom: 35%; right: 15%;
  width: 12px; height: 45%;
  background: linear-gradient(90deg, #d4c8a0, #b8a67c, #d4c8a0);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
  animation: gla-enc-column 15s ease-in-out infinite reverse;
}
.scn-glaucon-encourages .window {
  position: absolute;
  top: 18%; left: 38%; width: 24%; height: 22%;
  background: linear-gradient(180deg, #e3f2fd 0%, #bbdefb 100%);
  border: 4px solid #8a7a5a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: gla-enc-window 8s ease-in-out infinite;
}
.scn-glaucon-encourages .light-ray {
  position: absolute;
  top: 18%; left: 38%; width: 24%; height: 22%;
  background: linear-gradient(135deg, rgba(255,255,220,0.5), transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: gla-enc-light 12s ease-in-out infinite alternate;
}
.scn-glaucon-encourages .figure-socrates {
  position: absolute;
  bottom: 35%; left: 25%;
  width: 28px; height: 50px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #3a2e1a 0%, #1a1208 80%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: gla-enc-fig1 4s ease-in-out infinite;
}
.scn-glaucon-encourages .figure-glaucon {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 30px; height: 52px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #3a2e1a 0%, #1a1208 80%);
  border-radius: 50% 50% 35% 35% / 70% 70% 35% 35%;
  transform-origin: bottom center;
  animation: gla-enc-fig2 5s ease-in-out infinite;
}
@keyframes gla-enc-wall {
  0%,100% { opacity: 0.95; }
  50% { opacity: 1; }
}
@keyframes gla-enc-floor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes gla-enc-column {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes gla-enc-window {
  0%,100% { opacity: 0.85; filter: brightness(0.95); }
  50% { opacity: 1; filter: brightness(1.1); }
}
@keyframes gla-enc-light {
  0% { opacity: 0.6; transform: rotate(-2deg); }
  50% { opacity: 0.9; transform: rotate(2deg); }
  100% { opacity: 0.7; transform: rotate(-1deg); }
}
@keyframes gla-enc-fig1 {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-3deg); }
  75% { transform: translateX(3px) rotate(2deg); }
}
@keyframes gla-enc-fig2 {
  0%,100% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-4px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(3deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
}

.scn-ridiculing-innovation {
  background:
    linear-gradient(180deg, #fff3b0 0%, #ffe082 40%, #ffca28 100%),
    radial-gradient(ellipse at 70% 20%, #fff9c4 0%, transparent 50%);
}
.scn-ridiculing-innovation .bg-room {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff8e1 0%, #ffe082 100%);
  animation: rid-inn-bg 20s ease-in-out infinite alternate;
}
.scn-ridiculing-innovation .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a77a 0%, #8a7a5a 100%);
  border-radius: 20% 20% 0 0;
  animation: rid-inn-floor 15s ease-in-out infinite alternate;
}
.scn-ridiculing-innovation .figure-rider {
  position: absolute;
  bottom: 30%; left: 30%;
  width: 30px; height: 50px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #c8553d 0%, #a0461a 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rid-inn-rider 1.5s ease-in-out infinite;
}
.scn-ridiculing-innovation .horse {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #5e3a1a 0%, #2e1a0a 100%);
  border-radius: 40% 60% 20% 20% / 40% 40% 20% 20%;
  animation: rid-inn-horse 2s ease-in-out infinite;
}
.scn-ridiculing-innovation .spear {
  position: absolute;
  bottom: 60%; left: 28%;
  width: 4px; height: 35px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: rid-inn-spear 1.2s ease-in-out infinite alternate;
}
.scn-ridiculing-innovation .cloak {
  position: absolute;
  bottom: 55%; left: 25%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #702243 0%, #4a1628 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: rid-inn-cloak 3s ease-in-out infinite;
}
.scn-ridiculing-innovation .sunburst {
  position: absolute;
  top: 10%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd54f 0%, #ffb300 40%, transparent 70%);
  border-radius: 50%;
  animation: rid-inn-sun 5s ease-in-out infinite alternate;
}
@keyframes rid-inn-bg {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes rid-inn-floor {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes rid-inn-rider {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-5px) rotate(0deg); }
  50% { transform: translateY(2px) rotate(5deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
}
@keyframes rid-inn-horse {
  0%,100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-3px) scaleY(1.05); }
  50% { transform: translateY(2px) scaleY(0.95); }
  75% { transform: translateY(-3px) scaleY(1.05); }
}
@keyframes rid-inn-spear {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-25deg) translateY(-5px); }
}
@keyframes rid-inn-cloak {
  0%,100% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.1); }
}
@keyframes rid-inn-sun {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

.scn-glaucon-draws-case {
  background:
    linear-gradient(135deg, #2c3e50 0%, #4a6274 40%, #7f8c8d 100%),
    radial-gradient(ellipse at 60% 70%, #5d6d7e 0%, transparent 60%);
}
.scn-glaucon-draws-case .bg-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 100%);
  animation: gla-cas-wall 10s ease-in-out infinite alternate;
}
.scn-glaucon-draws-case .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
  animation: gla-cas-floor 18s ease-in-out infinite alternate;
}
.scn-glaucon-draws-case .table {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 30%; height: 8%;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: gla-cas-table 6s ease-in-out infinite;
}
.scn-glaucon-draws-case .scroll {
  position: absolute;
  bottom: 28%; left: 42%;
  width: 16%; height: 5%;
  background: linear-gradient(90deg, #a67c52 0%, #d4a76a 50%, #a67c52 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gla-cas-scroll 4s ease-in-out infinite alternate;
}
.scn-glaucon-draws-case .figure-glaucon {
  position: absolute;
  bottom: 32%; left: 15%;
  width: 32px; height: 55px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: gla-cas-fig1 3s ease-in-out infinite;
}
.scn-glaucon-draws-case .figure-socrates {
  position: absolute;
  bottom: 32%; left: 58%;
  width: 30px; height: 52px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 35% 35% / 70% 70% 35% 35%;
  transform-origin: bottom center;
  animation: gla-cas-fig2 3.5s ease-in-out infinite;
}
.scn-glaucon-draws-case .shadow-slice {
  position: absolute;
  top: 0; left: 60%; width: 30%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  animation: gla-cas-shadow 7s ease-in-out infinite alternate;
}
.scn-glaucon-draws-case .lamp {
  position: absolute;
  top: 20%; left: 50%;
  width: 12px; height: 16px;
  background: radial-gradient(circle, #ffeb3b 0%, #f9a825 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 24px 8px rgba(249,168,37,0.6);
  animation: gla-cas-lamp 3s ease-in-out infinite alternate;
}
@keyframes gla-cas-wall {
  0%,100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes gla-cas-floor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes gla-cas-table {
  0%,100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes gla-cas-scroll {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.8; transform: scaleX(1); }
}
@keyframes gla-cas-fig1 {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  20% { transform: translateX(4px) rotate(1deg); }
  40% { transform: translateX(8px) rotate(-3deg); }
  60% { transform: translateX(4px) rotate(2deg); }
  80% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gla-cas-fig2 {
  0%,100% { transform: translateX(0) rotate(2deg); }
  20% { transform: translateX(-5px) rotate(-1deg); }
  40% { transform: translateX(-10px) rotate(3deg); }
  60% { transform: translateX(-5px) rotate(-2deg); }
  80% { transform: translateX(0) rotate(1deg); }
}
@keyframes gla-cas-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(20px); }
  100% { opacity: 0.3; transform: translateX(0); }
}
@keyframes gla-cas-lamp {
  0% { box-shadow: 0 0 16px 4px rgba(249,168,37,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 32px 10px rgba(249,168,37,0.8); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(249,168,37,0.4); opacity: 0.7; }
}

.scn-bald-hairy-example {
  background:
    linear-gradient(180deg, #fff8e1 0%, #ffe082 40%, #fdd835 100%),
    radial-gradient(ellipse at 80% 20%, #fff9c4 0%, transparent 60%);
}
.scn-bald-hairy-example .bg-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff3e0 0%, #ffe0b2 100%);
  animation: bal-hai-wall 22s ease-in-out infinite alternate;
}
.scn-bald-hairy-example .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a1887f 0%, #6d4c41 100%);
  border-radius: 15% 15% 0 0;
  animation: bal-hai-floor 18s ease-in-out infinite alternate;
}
.scn-bald-hairy-example .bald-head {
  position: absolute;
  bottom: 38%; left: 25%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #f5e6d0 0%, #d7b896 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bal-hai-bald 2.5s ease-in-out infinite;
}
.scn-bald-hairy-example .hairy-head {
  position: absolute;
  bottom: 38%; left: 55%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #a85d2a 0%, #5e3a1a 60%, #2e1a0a 100%);
  border-radius: 50%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  /* simulate hair with many small triangles? Use multiple radial gradients instead */
  background: radial-gradient(circle at 30% 20%, #a85d2a 0%, transparent 5%),
              radial-gradient(circle at 70% 15%, #a85d2a 0%, transparent 5%),
              radial-gradient(circle at 50% 10%, #a85d2a 0%, transparent 5%),
              radial-gradient(circle at 20% 40%, #5e3a1a 0%, transparent 5%),
              radial-gradient(circle at 80% 35%, #5e3a1a 0%, transparent 5%),
              radial-gradient(circle at 45% 50%, #5e3a1a 0%, transparent 5%),
              radial-gradient(circle at 25% 60%, #2e1a0a 0%, transparent 5%),
              radial-gradient(circle at 65% 70%, #2e1a0a 0%, transparent 5%),
              radial-gradient(circle at 55% 85%, #2e1a0a 0%, transparent 5%);
  background-color: #a85d2a;
  animation: bal-hai-hairy 3s ease-in-out infinite;
}
.scn-bald-hairy-example .shoe {
  position: absolute;
  bottom: 22%; left: 25%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: bal-hai-shoe 4s ease-in-out infinite alternate;
}
.scn-bald-hairy-example .awl {
  position: absolute;
  bottom: 45%; left: 20%;
  width: 4px; height: 25px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: bal-hai-awl 2s ease-in-out infinite alternate;
}
.scn-bald-hairy-example .curtain {
  position: absolute;
  top: 5%; right: 5%;
  width: 30%; height: 70%;
  background: linear-gradient(90deg, #b87878 0%, #8a4545 50%, #5e2a2a 100%);
  border-radius: 0 0 20% 20%;
  opacity: 0.6;
  animation: bal-hai-curtain 12s ease-in-out infinite alternate;
}
@keyframes bal-hai-wall {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes bal-hai-floor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes bal-hai-bald {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-5px) rotate(-3deg) scale(1.05); }
  50% { transform: translateY(0) rotate(0deg) scale(1); }
  75% { transform: translateY(-5px) rotate(3deg) scale(1.05); }
}
@keyframes bal-hai-hairy {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-6px) rotate(5deg) scale(1.1); }
  50% { transform: translateY(0) rotate(0deg) scale(1); }
  75% { transform: translateY(-6px) rotate(-5deg) scale(1.1); }
}
@keyframes bal-hai-shoe {
  0% { transform: translateY(0) rotate(-10deg); }
  100% { transform: translateY(-5px) rotate(0deg); }
}
@keyframes bal-hai-awl {
  0% { transform: rotate(15deg) translateY(0); }
  100% { transform: rotate(25deg) translateY(-3px); }
}
@keyframes bal-hai-curtain {
  0%,100% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
}

/* -- scene: painter-imitation-appearance (calm dim-interior) -- */
.scn-painter-imitation-appearance {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 30%, #1f1410 100%), radial-gradient(ellipse at 60% 70%, #4a3520 0%, transparent 75%);
}
.scn-painter-imitation-appearance .pai-wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(135deg, #3a2a1f 0%, #2a1f1a 50%, #1f1410 100%); }
.scn-painter-imitation-appearance .pai-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1f1410 0%, #0f0a08 100%); box-shadow:inset 0 12px 20px rgba(0,0,0,.5); }
.scn-painter-imitation-appearance .pai-bed {
  position:absolute; bottom:18%; left:18%; width:40%; height:32%;
  background: linear-gradient(170deg, #5a3a2a 0%, #3a2218 60%, #2a1810 100%);
  border-radius: 6% 6% 4% 4% / 12% 12% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5), inset 0 2px 4px rgba(120,80,50,.3);
  transform: perspective(600px) rotateX(8deg);
  animation: pai-bed 14s ease-in-out infinite alternate;
}
.scn-painter-imitation-appearance .pai-easel { position:absolute; bottom:26%; right:15%; width:6px; height:48%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:10%; transform:perspective(400px) rotateY(12deg); }
.scn-painter-imitation-appearance .pai-canvas { position:absolute; bottom:30%; right:12%; width:20%; height:28%; background:linear-gradient(160deg, #c8b898 0%, #a89078 60%, #887058 100%); border-radius:3% 3% 2% 2% / 4% 4% 2% 2%; box-shadow:inset 0 0 20px rgba(80,60,40,.3); animation: pai-canvas 9s ease-in-out infinite alternate; }
.scn-painter-imitation-appearance .pai-lamp { position:absolute; bottom:60%; left:45%; width:8px; height:24%; background:linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%); border-radius:10%; }
.scn-painter-imitation-appearance .pai-glow { position:absolute; bottom:58%; left:42%; width:16%; height:14%; background:radial-gradient(ellipse, #f0d080 0%, #c8a050 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: pai-glow 3s ease-in-out infinite alternate; }
.scn-painter-imitation-appearance .pai-frame-a { position:absolute; bottom:48%; left:5%; width:16%; height:22%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%); border:3px solid #5a4a3a; border-radius:2%; animation: pai-frame-a 18s ease-in-out infinite alternate; }
.scn-painter-imitation-appearance .pai-frame-b { position:absolute; bottom:50%; left:24%; width:12%; height:18%; background:linear-gradient(180deg, #3a2a1f 0%, #1f1410 100%); border:2px solid #4a3a2a; border-radius:2%; transform:perspective(300px) rotateY(-8deg); animation: pai-frame-b 22s ease-in-out infinite alternate; }
@keyframes pai-bed     { 0% { transform:perspective(600px) rotateX(6deg) translateY(0); } 50% { transform:perspective(600px) rotateX(10deg) translateY(-2px); } 100% { transform:perspective(600px) rotateX(6deg) translateY(1px); } }
@keyframes pai-canvas  { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:.8; transform:scale(.98); } }
@keyframes pai-glow    { 0% { opacity:.5; transform:scale(1) translateY(0); } 50% { opacity:1; transform:scale(1.3) translateY(-4px); } 100% { opacity:.6; transform:scale(.9) translateY(2px); } }
@keyframes pai-frame-a { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes pai-frame-b { 0% { transform:perspective(300px) rotateY(-6deg); } 50% { transform:perspective(300px) rotateY(-10deg) scale(1.01); } 100% { transform:perspective(300px) rotateY(-6deg) scale(.99); } }

/* -- scene: poet-knowledge-question (calm dim-interior) -- */
.scn-poet-knowledge-question {
  background: linear-gradient(180deg, #1a1820 0%, #2a2228 35%, #12101a 100%), radial-gradient(ellipse at 40% 65%, #3a2a3a 0%, transparent 70%);
}
.scn-poet-knowledge-question .pkq-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(135deg, #2a2228 0%, #1a1820 60%, #0a0810 100%); }
.scn-poet-knowledge-question .pkq-desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:2% 2% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-poet-knowledge-question .pkq-scrolls { position:absolute; bottom:22%; left:14%; width:16%; height:10%; background:linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:4% 4% 8% 8% / 20% 20% 10% 10%; animation:pkq-scrolls 10s ease-in-out infinite alternate; }
.scn-poet-knowledge-question .pkq-bust { position:absolute; bottom:22%; left:45%; width:12%; height:24%; background:linear-gradient(180deg, #c8b898 0%, #a89078 60%, #887058 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow:2px 0 10px rgba(0,0,0,.4); animation:pkq-bust 16s ease-in-out infinite alternate; }
.scn-poet-knowledge-question .pkq-poet { position:absolute; bottom:0; right:12%; width:20%; height:44%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:40% 40% 20% 20% / 70% 70% 30% 30%; animation:pkq-poet 12s ease-in-out infinite alternate; }
.scn-poet-knowledge-question .pkq-lamp { position:absolute; bottom:50%; left:38%; width:6px; height:18%; background:linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%); border-radius:10%; }
.scn-poet-knowledge-question .pkq-glow { position:absolute; bottom:48%; left:35%; width:18%; height:16%; background:radial-gradient(ellipse, #e8d080 0%, #c8a050 30%, transparent 70%); border-radius:50%; filter:blur(10px); animation:pkq-glow 4s ease-in-out infinite alternate; }
.scn-poet-knowledge-question .pkq-painting { position:absolute; bottom:36%; right:38%; width:14%; height:20%; background:linear-gradient(135deg, #c8b898 0%, #a89078 70%); border:3px solid #3a2a1a; border-radius:2%; box-shadow:0 4px 12px rgba(0,0,0,.5); transform:perspective(500px) rotateY(6deg); animation:pkq-painting 20s ease-in-out infinite alternate; }
@keyframes pkq-scrolls  { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-3px) scaleX(1.03); } 100% { transform:translateY(0) scaleX(.98); } }
@keyframes pkq-bust     { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(1px) rotate(0deg); } }
@keyframes pkq-poet     { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1.5deg); } 100% { transform:translateY(0) rotate(-.5deg); } }
@keyframes pkq-glow     { 0% { opacity:.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.25) translateY(-3px); } 100% { opacity:.6; transform:scale(.9) translateY(1px); } }
@keyframes pkq-painting { 0% { transform:perspective(500px) rotateY(4deg); } 50% { transform:perspective(500px) rotateY(8deg) scale(1.02); } 100% { transform:perspective(500px) rotateY(4deg) scale(.98); } }

/* -- scene: questioning-homer (calm dim-interior) -- */
.scn-questioning-homer {
  background: linear-gradient(180deg, #1e1820 0%, #2a2228 30%, #121018 100%), radial-gradient(ellipse at 50% 60%, #2a2030 0%, transparent 70%);
}
.scn-questioning-homer .qho-wall { position:absolute; inset:0 0 15% 0; background:linear-gradient(135deg, #2a2228 0%, #1a1520 60%, #0a0810 100%); }
.scn-questioning-homer .qho-column { position:absolute; bottom:15%; left:8%; width:4%; height:65%; background:linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%); border-radius:6% 6% 4% 4% / 4% 4% 2% 2%; box-shadow:2px 0 8px rgba(0,0,0,.4); }
.scn-questioning-homer .qho-homer { position:absolute; bottom:0; left:14%; width:22%; height:48%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 20% 20% / 70% 70% 30% 30%; animation:qho-homer 14s ease-in-out infinite alternate; }
.scn-questioning-homer .qho-lyre { position:absolute; bottom:20%; left:20%; width:8%; height:14%; background:linear-gradient(180deg, #c8a85a 0%, #a8883a 100%); border-radius:50% 50% 30% 30% / 60% 60% 20% 20%; transform:rotate(-15deg); animation:qho-lyre 6s ease-in-out infinite alternate; }
.scn-questioning-homer .qho-asker { position:absolute; bottom:0; right:16%; width:16%; height:36%; background:linear-gradient(180deg, #2a2228 0%, #12101a 100%); border-radius:45% 45% 20% 20% / 65% 65% 30% 30%; animation:qho-asker 16s ease-in-out infinite alternate; }
.scn-questioning-homer .qho-scroll { position:absolute; bottom:22%; right:10%; width:12%; height:8%; background:linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:4% 4% 8% 8% / 20% 20% 10% 10%; transform:rotate(5deg); animation:qho-scroll 12s ease-in-out infinite alternate; }
.scn-questioning-homer .qho-lamp { position:absolute; bottom:52%; left:48%; width:6px; height:20%; background:linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%); border-radius:10%; }
.scn-questioning-homer .qho-glow { position:absolute; bottom:50%; left:44%; width:20%; height:18%; background:radial-gradient(ellipse, #e8d080 0%, #c8a050 30%, transparent 70%); border-radius:50%; filter:blur(10px); animation:qho-glow 3.5s ease-in-out infinite alternate; }
@keyframes qho-homer    { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(1px) rotate(-.5deg); } }
@keyframes qho-lyre     { 0% { transform:rotate(-13deg) scale(1); } 50% { transform:rotate(-17deg) scale(1.02) translateY(-1px); } 100% { transform:rotate(-13deg) scale(.98); } }
@keyframes qho-asker    { 0% { transform:translateY(0) translateX(0); } 50% { transform:translateY(-2px) translateX(2px); } 100% { transform:translateY(0) translateX(0); } }
@keyframes qho-scroll   { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-2px); } 100% { transform:rotate(3deg) translateY(1px); } }
@keyframes qho-glow     { 0% { opacity:.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.2) translateY(-2px); } 100% { opacity:.6; transform:scale(.95) translateY(1px); } }

/* -- scene: poet-imitator-of-virtue (calm dim-interior) -- */
.scn-poet-imitator-of-virtue {
  background: linear-gradient(180deg, #221a18 0%, #2a1f1a 30%, #151010 100%), radial-gradient(ellipse at 45% 70%, #3a2a20 0%, transparent 70%);
}
.scn-poet-imitator-of-virtue .piv-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(135deg, #2a1f1a 0%, #1a1210 60%, #0a0808 100%); }
.scn-poet-imitator-of-virtue .piv-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1210 0%, #0a0808 100%); box-shadow:inset 0 8px 16px rgba(0,0,0,.5); }
.scn-poet-imitator-of-virtue .piv-easel { position:absolute; bottom:18%; left:18%; width:5px; height:50%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:10%; transform:perspective(400px) rotateY(-8deg); }
.scn-poet-imitator-of-virtue .piv-painter { position:absolute; bottom:0; left:6%; width:18%; height:42%; background:linear-gradient(180deg, #3a2a22 0%, #1a1010 100%); border-radius:45% 45% 20% 20% / 70% 70% 30% 30%; animation:piv-painter 15s ease-in-out infinite alternate; }
.scn-poet-imitator-of-virtue .piv-cobbler { position:absolute; bottom:0; right:14%; width:20%; height:40%; background:linear-gradient(180deg, #2a2220 0%, #12100e 100%); border-radius:50% 50% 20% 20% / 70% 70% 30% 30%; animation:piv-cobbler 18s ease-in-out infinite alternate; }
.scn-poet-imitator-of-virtue .piv-shoe { position:absolute; bottom:14%; right:20%; width:8%; height:6%; background:linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 20% 20%; transform:rotate(20deg); animation:piv-shoe 5s ease-in-out infinite alternate; }
.scn-poet-imitator-of-virtue .piv-canvas { position:absolute; bottom:24%; left:14%; width:18%; height:26%; background:linear-gradient(160deg, #c8b898 0%, #a89078 60%, #887058 100%); border-radius:3% 3% 2% 2% / 4% 4% 2% 2%; box-shadow:inset 0 0 16px rgba(80,60,40,.3); animation:piv-canvas 11s ease-in-out infinite alternate; }
.scn-poet-imitator-of-virtue .piv-lamp { position:absolute; bottom:50%; left:44%; width:6px; height:20%; background:linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%); border-radius:10%; }
.scn-poet-imitator-of-virtue .piv-glow { position:absolute; bottom:48%; left:40%; width:18%; height:16%; background:radial-gradient(ellipse, #f0d080 0%, #c8a050 30%, transparent 70%); border-radius:50%; filter:blur(10px); animation:piv-glow 3.8s ease-in-out infinite alternate; }
@keyframes piv-painter  { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg) scale(1.01); } 100% { transform:translateY(1px) rotate(-.5deg) scale(.99); } }
@keyframes piv-cobbler  { 0% { transform:translateY(0) translateX(0); } 50% { transform:translateY(-2px) translateX(2px); } 100% { transform:translateY(1px) translateX(0); } }
@keyframes piv-shoe     { 0% { transform:rotate(18deg) translateY(0); } 50% { transform:rotate(22deg) translateY(-2px); } 100% { transform:rotate(18deg) translateY(1px); } }
@keyframes piv-canvas   { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:.8; transform:scale(.98); } }
@keyframes piv-glow     { 0% { opacity:.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.25) translateY(-3px); } 100% { opacity:.6; transform:scale(.9) translateY(1px); } }

/* --- two-styles --- */
.scn-two-styles {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a24 50%, #1e1410 100%), radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 70%);
}
.scn-two-styles .bg-back { position:absolute; inset:0; background:linear-gradient(180deg,#2a1e1a 0%,#1a1210 100%); animation:ts-back 15s ease-in-out infinite; }
.scn-two-styles .bg-table { position:absolute; bottom:0; left:10%; right:10%; height:35%; background:linear-gradient(180deg,#4a3a30 0%,#2a1e18 100%); border-radius:4px 4px 0 0; box-shadow:inset 0 8px 12px rgba(0,0,0,0.5); animation:ts-table 10s ease-in-out infinite alternate; }
.scn-two-styles .lamp { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:20px; height:40px; background:linear-gradient(180deg,#c8a060 0%,#8a6020 100%); border-radius:50% 50% 10% 10%; box-shadow:0 0 30px 10px rgba(200,160,96,0.5),0 0 60px 20px rgba(200,160,96,0.2); animation:ts-lamp 4s ease-in-out infinite alternate; }
.scn-two-styles .book-left { position:absolute; bottom:22%; left:30%; width:60px; height:40px; background:linear-gradient(135deg,#a08060 0%,#80604a 50%,#604a38 100%); border-radius:4px 20px 20px 4px; transform:rotate(-5deg) translateY(0); box-shadow:2px 2px 6px rgba(0,0,0,0.4); animation:ts-books-left 6s ease-in-out infinite; }
.scn-two-styles .book-right { position:absolute; bottom:22%; left:55%; width:60px; height:40px; background:linear-gradient(225deg,#a08060 0%,#80604a 50%,#604a38 100%); border-radius:20px 4px 4px 20px; transform:rotate(5deg) translateY(0); box-shadow:-2px 2px 6px rgba(0,0,0,0.4); animation:ts-books-right 6s ease-in-out infinite; }
.scn-two-styles .figure { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40px; height:60px; background:linear-gradient(180deg,#1a1410 0%,#0e0a08 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; animation:ts-figure 8s ease-in-out infinite; }
.scn-two-styles .shadow { position:absolute; bottom:0; left:5%; right:5%; height:10%; background:radial-gradient(ellipse,rgba(0,0,0,0.6) 0%,transparent 80%); animation:ts-shadow 10s ease-in-out infinite; }
@keyframes ts-back { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes ts-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes ts-lamp { 0%{box-shadow:0 0 20px 5px rgba(200,160,96,0.4),0 0 40px 10px rgba(200,160,96,0.2);opacity:0.9} 50%{box-shadow:0 0 40px 15px rgba(200,160,96,0.7),0 0 80px 30px rgba(200,160,96,0.3);opacity:1} 100%{box-shadow:0 0 25px 8px rgba(200,160,96,0.5),0 0 50px 15px rgba(200,160,96,0.25);opacity:0.95} }
@keyframes ts-books-left { 0%{transform:rotate(-5deg) translateY(0)} 25%{transform:rotate(-6deg) translateY(-2px)} 50%{transform:rotate(-5deg) translateY(0)} 75%{transform:rotate(-4deg) translateY(-1px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes ts-books-right { 0%{transform:rotate(5deg) translateY(0)} 25%{transform:rotate(6deg) translateY(-2px)} 50%{transform:rotate(5deg) translateY(0)} 75%{transform:rotate(4deg) translateY(-1px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes ts-figure { 0%{transform:translateX(-50%) translateY(0) rotate(0deg)} 25%{transform:translateX(-50%) translateY(-2px) rotate(0.5deg)} 50%{transform:translateX(-50%) translateY(0) rotate(0deg)} 75%{transform:translateX(-50%) translateY(-1px) rotate(-0.5deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0deg)} }
@keyframes ts-shadow { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.6} }

/* --- model-narration --- */
.scn-model-narration {
  background: linear-gradient(180deg, #1e1a2a 0%, #2a2438 50%, #14101e 100%), radial-gradient(ellipse at 50% 40%, #3a2a4a 0%, transparent 70%);
}
.scn-model-narration .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg,#1e1a2a 0%,#14101e 100%); animation:mn-wall 20s ease-in-out infinite; }
.scn-model-narration .pedestal { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:60px; height:80px; background:linear-gradient(180deg,#6a5a4a 0%,#4a3a2a 100%); border-radius:10% 10% 4% 4%; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation:mn-pedestal 12s ease-in-out infinite; }
.scn-model-narration .bust { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:40px; height:50px; background:linear-gradient(180deg,#8a7a6a 0%,#5a4a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,0.3); animation:mn-bust 8s ease-in-out infinite; }
.scn-model-narration .figure { position:absolute; bottom:22%; left:30%; width:35px; height:70px; background:linear-gradient(180deg,#1a1620 0%,#0e0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(5deg); animation:mn-figure 6s ease-in-out infinite alternate; }
.scn-model-narration .scroll { position:absolute; bottom:25%; left:20%; width:50px; height:30px; background:linear-gradient(135deg,#c8b888 0%,#a89070 100%); border-radius:2px 2px 10px 10px; transform:rotate(-15deg); box-shadow:1px 1px 4px rgba(0,0,0,0.3); animation:mn-scroll 7s ease-in-out infinite; }
.scn-model-narration .lamp { position:absolute; bottom:45%; left:60%; width:15px; height:30px; background:linear-gradient(180deg,#d4a050 0%,#a07030 100%); border-radius:50% 50% 10% 10%; box-shadow:0 0 25px 8px rgba(212,160,80,0.5),0 0 50px 15px rgba(212,160,80,0.2); animation:mn-lamp 5s ease-in-out infinite alternate; }
.scn-model-narration .shadow { position:absolute; bottom:0; left:20%; right:20%; height:15%; background:radial-gradient(ellipse,rgba(0,0,0,0.5) 0%,transparent 80%); animation:mn-shadow 10s ease-in-out infinite; }
@keyframes mn-wall { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mn-pedestal { 0%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-3px)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes mn-bust { 0%{transform:translateX(-50%) rotate(0deg)} 25%{transform:translateX(-50%) rotate(2deg) translateY(-1px)} 50%{transform:translateX(-50%) rotate(0deg) translateY(0)} 75%{transform:translateX(-50%) rotate(-2deg) translateY(-1px)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes mn-figure { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(6deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes mn-scroll { 0%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-18deg) translateY(-2px)} 100%{transform:rotate(-15deg) translateY(0)} }
@keyframes mn-lamp { 0%{box-shadow:0 0 15px 4px rgba(212,160,80,0.4),0 0 30px 8px rgba(212,160,80,0.15);opacity:0.85} 50%{box-shadow:0 0 30px 12px rgba(212,160,80,0.7),0 0 60px 25px rgba(212,160,80,0.3);opacity:1} 100%{box-shadow:0 0 20px 6px rgba(212,160,80,0.5),0 0 40px 12px rgba(212,160,80,0.2);opacity:0.9} }
@keyframes mn-shadow { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }

/* --- all-sorts-of-imitator --- */
.scn-all-sorts-of-imitator {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 70%);
}
.scn-all-sorts-of-imitator .bg-curtain { position:absolute; inset:0; background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2a 100%); animation:ai-curtain 18s ease-in-out infinite; }
.scn-all-sorts-of-imitator .performer { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:50px; height:80px; background:linear-gradient(180deg,#1e1e2a 0%,#0e0e18 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation:ai-performer 3s ease-in-out infinite; }
.scn-all-sorts-of-imitator .mask-dog { position:absolute; bottom:40%; left:20%; width:30px; height:20px; background:linear-gradient(135deg,#8a7a60 0%,#5a4a30 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation:ai-mask-dog 4s ease-in-out infinite; }
.scn-all-sorts-of-imitator .mask-sheep { position:absolute; bottom:35%; right:20%; width:30px; height:25px; background:linear-gradient(225deg,#c8b080 0%,#a08050 100%); border-radius:50% 50% 60% 60% / 80% 80% 60% 60%; transform:rotate(10deg); animation:ai-mask-sheep 5s ease-in-out infinite; }
.scn-all-sorts-of-imitator .wind { position:absolute; top:30%; left:10%; width:80px; height:10px; background:linear-gradient(90deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.05) 100%); border-radius:50%; filter:blur(3px); animation:ai-wind 20s linear infinite; }
.scn-all-sorts-of-imitator .trumpet { position:absolute; bottom:30%; left:15%; width:40px; height:15px; background:linear-gradient(180deg,#b08040 0%,#8a6020 100%); border-radius:50% 50% 20% 20% / 100% 100% 40% 40%; transform:rotate(-20deg); animation:ai-trumpet 6s ease-in-out infinite; }
.scn-all-sorts-of-imitator .stool { position:absolute; bottom:14%; left:42%; right:42%; height:8px; background:linear-gradient(180deg,#4a3a2a 0%,#2a1e14 100%); border-radius:2px; animation:ai-stool 10s ease-in-out infinite; }
@keyframes ai-curtain { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes ai-performer { 0%{transform:translateX(-50%) translateY(0) rotate(0deg)} 33%{transform:translateX(-50%) translateY(-4px) rotate(2deg)} 66%{transform:translateX(-50%) translateY(0) rotate(-1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0deg)} }
@keyframes ai-mask-dog { 0%{transform:rotate(-10deg) translateY(0)} 25%{transform:rotate(-12deg) translateY(-2px)} 50%{transform:rotate(-10deg) translateY(0)} 75%{transform:rotate(-8deg) translateY(-1px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes ai-mask-sheep { 0%{transform:rotate(10deg) translateY(0)} 25%{transform:rotate(12deg) translateY(-2px)} 50%{transform:rotate(10deg) translateY(0)} 75%{transform:rotate(8deg) translateY(-1px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes ai-wind { 0%{transform:translateX(-20px) scaleX(1)} 50%{transform:translateX(50px) scaleX(1.2)} 100%{transform:translateX(120vw) scaleX(0.8)} }
@keyframes ai-trumpet { 0%{transform:rotate(-20deg) scaleX(1)} 50%{transform:rotate(-25deg) scaleX(1.1)} 100%{transform:rotate(-20deg) scaleX(1)} }
@keyframes ai-stool { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }

/* --- simple-style --- */
.scn-simple-style {
  background: linear-gradient(180deg, #1e2a1e 0%, #2a3a2a 50%, #0e1a0e 100%), radial-gradient(ellipse at 50% 50%, #3a4a3a 0%, transparent 70%);
}
.scn-simple-style .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg,#1e2a1e 0%,#0e1a0e 100%); animation:ss-wall 20s ease-in-out infinite; }
.scn-simple-style .figure { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:40px; height:70px; background:linear-gradient(180deg,#1a2a1a 0%,#0e1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation:ss-figure 5s ease-in-out infinite; }
.scn-simple-style .instrument { position:absolute; bottom:18%; left:45%; width:30px; height:50px; background:linear-gradient(180deg,#8a7a5a 0%,#5a4a2a 100%); border-radius:50% 50% 20% 20% / 100% 100% 40% 40%; transform:rotate(10deg); animation:ss-instrument 7s ease-in-out infinite; }
.scn-simple-style .lamp { position:absolute; bottom:50%; left:50%; transform:translateX(-50%); width:16px; height:35px; background:linear-gradient(180deg,#c8b060 0%,#8a7020 100%); border-radius:50% 50% 10% 10%; box-shadow:0 0 20px 6px rgba(200,176,96,0.5),0 0 40px 12px rgba(200,176,96,0.2); animation:ss-lamp 6s ease-in-out infinite alternate; }
.scn-simple-style .rhythm-lines { position:absolute; top:20%; left:10%; right:10%; height:4px; background:repeating-linear-gradient(90deg,rgba(255,255,255,0.15) 0px,rgba(255,255,255,0.15) 4px,transparent 4px,transparent 20px); animation:ss-rhythm 15s linear infinite; }
.scn-simple-style .shadow { position:absolute; bottom:0; left:10%; right:10%; height:12%; background:radial-gradient(ellipse,rgba(0,0,0,0.4) 0%,transparent 80%); animation:ss-shadow 12s ease-in-out infinite; }
.scn-simple-style .glow { position:absolute; top:30%; left:30%; right:30%; bottom:30%; background:radial-gradient(ellipse,rgba(200,176,96,0.1) 0%,transparent 70%); animation:ss-glow 8s ease-in-out infinite alternate; }
@keyframes ss-wall { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes ss-figure { 0%{transform:translateX(-50%) translateY(0) rotate(0deg)} 25%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} 50%{transform:translateX(-50%) translateY(0) rotate(0deg)} 75%{transform:translateX(-50%) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0deg)} }
@keyframes ss-instrument { 0%{transform:rotate(10deg) scaleY(1)} 50%{transform:rotate(12deg) scaleY(1.05)} 100%{transform:rotate(10deg) scaleY(1)} }
@keyframes ss-lamp { 0%{box-shadow:0 0 15px 4px rgba(200,176,96,0.4),0 0 30px 8px rgba(200,176,96,0.15);opacity:0.85} 50%{box-shadow:0 0 30px 12px rgba(200,176,96,0.7),0 0 60px 25px rgba(200,176,96,0.3);opacity:1} 100%{box-shadow:0 0 20px 6px rgba(200,176,96,0.5),0 0 40px 12px rgba(200,176,96,0.2);opacity:0.9} }
@keyframes ss-rhythm { 0%{background-position:0 0} 100%{background-position:100px 0} }
@keyframes ss-shadow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.4} }
@keyframes ss-glow { 0%{opacity:0.2} 100%{opacity:0.5} }```

/* rulers-may-lie – dim interior throne room */
.scn-rulers-may-lie {
  background: linear-gradient(180deg, #1a1510 0%, #2a1e15 50%, #3a2820 100%),
              radial-gradient(ellipse at 70% 40%, #4a3520 0%, transparent 60%);
}
.scn-rulers-may-lie .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, rgba(50,35,20,.6) 0%, transparent 100%);
}
.scn-rulers-may-lie .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-rulers-may-lie .throne {
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:80px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: rml-throne 6s ease-in-out infinite alternate;
}
.scn-rulers-may-lie .ruler {
  position:absolute; bottom:30%; left:46%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rml-ruler 4s ease-in-out infinite;
}
.scn-rulers-may-lie .liar {
  position:absolute; bottom:20%; left:30%; width:16px; height:38px;
  background: linear-gradient(180deg, #2a2015 0%, #100c06 100%);
  border-radius: 45% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: rml-liar 5s ease-in-out infinite;
}
.scn-rulers-may-lie .candle {
  position:absolute; bottom:32%; left:68%; width:6px; height:18px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a40 100%);
  border-radius: 30%;
  animation: rml-candle-body 2s ease-in-out infinite;
}
.scn-rulers-may-lie .light-halo {
  position:absolute; bottom:34%; left:68%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%);
  border-radius:50%;
  pointer-events:none;
  animation: rml-glow 3s ease-in-out infinite alternate;
}
@keyframes rml-throne { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes rml-ruler { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(1px) rotate(1deg); } 50% { transform:translateX(-1px) rotate(-1deg); } 75% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes rml-liar { 0% { transform:translateY(0) rotate(-2deg); } 30% { transform:translateY(-1px) rotate(1deg); } 60% { transform:translateY(1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes rml-candle-body { 0%,100% { height:18px; opacity:.9; } 50% { height:20px; opacity:1; } }
@keyframes rml-glow { 0% { opacity:.6; transform:scale(1); } 50% { opacity:.9; transform:scale(1.1); } 100% { opacity:.7; transform:scale(1.05); } }

/* punishment-for-lying – judge and prisoner */
.scn-punishment-for-lying {
  background: linear-gradient(180deg, #1a1510 0%, #2a1e15 50%, #3a2820 100%),
              radial-gradient(ellipse at 30% 50%, #3a2518 0%, transparent 70%);
}
.scn-punishment-for-lying .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, rgba(40,28,18,.5) 0%, transparent 100%);
}
.scn-punishment-for-lying .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #22160e 0%, #120a06 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-punishment-for-lying .judge {
  position:absolute; bottom:25%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfl-judge 4s ease-in-out infinite;
}
.scn-punishment-for-lying .prisoner {
  position:absolute; bottom:18%; left:55%; width:18px; height:34px;
  background: linear-gradient(180deg, #1a1510 0%, #080604 100%);
  border-radius: 45% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pfl-prisoner 3s ease-in-out infinite;
}
.scn-punishment-for-lying .rod {
  position:absolute; bottom:28%; left:40%; width:4px; height:40px;
  background: #6a5030;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pfl-rod 4s ease-in-out infinite;
}
.scn-punishment-for-lying .lantern {
  position:absolute; bottom:40%; left:20%; width:10px; height:14px;
  background: radial-gradient(circle, #c09040 0%, #705020 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(192,144,64,.5);
  animation: pfl-lantern 3s ease-in-out infinite alternate;
}
@keyframes pfl-judge { 0% { transform:translateX(0) rotate(-1deg); } 30% { transform:translateX(2px) rotate(2deg); } 60% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pfl-prisoner { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(1px) rotate(-2deg); } 50% { transform:translateY(0) rotate(2deg); } 75% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pfl-rod { 0%,100% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } }
@keyframes pfl-lantern { 0% { box-shadow:0 0 10px 3px rgba(192,144,64,.3); opacity:.7; } 50% { box-shadow:0 0 24px 8px rgba(192,144,64,.6); opacity:1; } 100% { box-shadow:0 0 14px 4px rgba(192,144,64,.4); opacity:.8; } }

/* temperance-lines – drinker with dog and cup */
.scn-temperance-lines {
  background: linear-gradient(180deg, #1a1510 0%, #2a1e15 50%, #3a2820 100%),
              radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 60%);
}
.scn-temperance-lines .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, rgba(50,35,20,.4) 0%, transparent 100%);
}
.scn-temperance-lines .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-temperance-lines .table {
  position:absolute; bottom:40%; left:30%; width:40%; height:8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px;
  transform:translateY(-50%);
  animation: tpl-table 8s ease-in-out infinite;
}
.scn-temperance-lines .wine-cup {
  position:absolute; bottom:45%; left:48%; width:16px; height:14px;
  background: radial-gradient(circle at 30% 30%, #b08040 0%, #7a5a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: tpl-cup 4s ease-in-out infinite;
}
.scn-temperance-lines .drinker {
  position:absolute; bottom:28%; left:38%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a2015 0%, #100c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpl-drinker 5s ease-in-out infinite;
}
.scn-temperance-lines .dog {
  position:absolute; bottom:18%; left:52%; width:24px; height:16px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: tpl-dog 3s ease-in-out infinite;
}
.scn-temperance-lines .candle {
  position:absolute; bottom:40%; left:20%; width:5px; height:16px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a40 100%);
  border-radius: 30%;
  animation: tpl-candle 2s ease-in-out infinite;
}
@keyframes tpl-table { 0%,100% { transform:translateY(-50%); } 50% { transform:translateY(-48%); } }
@keyframes tpl-cup { 0% { transform:rotate(0); } 25% { transform:rotate(-3deg); } 50% { transform:rotate(2deg); } 75% { transform:rotate(-2deg); } 100% { transform:rotate(0); } }
@keyframes tpl-drinker { 0% { transform:translateY(0) rotate(-2deg); } 20% { transform:translateY(-1px) rotate(3deg); } 40% { transform:translateY(1px) rotate(-1deg); } 60% { transform:translateY(-1px) rotate(2deg); } 80% { transform:translateY(1px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes tpl-dog { 0% { transform:scale(1) rotate(0); } 30% { transform:scale(1.03) rotate(5deg); } 60% { transform:scale(0.98) rotate(-3deg); } 100% { transform:scale(1) rotate(0); } }
@keyframes tpl-candle { 0%,100% { height:16px; opacity:.8; } 50% { height:18px; opacity:1; } }

/* wisest-man-on-feasting – feast table with cup-bearer */
.scn-wisest-man-on-feasting {
  background: linear-gradient(180deg, #1a1510 0%, #2a1e15 50%, #3a2820 100%),
              radial-gradient(ellipse at 60% 40%, #4a3520 0%, transparent 60%);
}
.scn-wisest-man-on-feasting .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, rgba(50,35,20,.5) 0%, transparent 100%);
}
.scn-wisest-man-on-feasting .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-wisest-man-on-feasting .feast-table {
  position:absolute; bottom:35%; left:20%; width:60%; height:10px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 5px;
  transform:translateY(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: wmf-table 10s ease-in-out infinite;
}
.scn-wisest-man-on-feasting .bread {
  position:absolute; bottom:42%; left:40%; width:20px; height:12px;
  background: radial-gradient(ellipse at 30% 30%, #c0a070 0%, #7a5a30 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: wmf-bread 6s ease-in-out infinite;
}
.scn-wisest-man-on-feasting .meat {
  position:absolute; bottom:41%; left:55%; width:22px; height:10px;
  background: linear-gradient(135deg, #8a5030 0%, #4a2818 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  animation: wmf-meat 5s ease-in-out infinite;
}
.scn-wisest-man-on-feasting .cup-bearer {
  position:absolute; bottom:28%; left:60%; width:20px; height:45px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wmf-bearer 8s ease-in-out infinite;
}
.scn-wisest-man-on-feasting .wine-jug {
  position:absolute; bottom:40%; left:58%; width:12px; height:20px;
  background: radial-gradient(ellipse at 30% 20%, #b08040 0%, #6a4520 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wmf-jug 4s ease-in-out infinite;
}
.scn-wisest-man-on-feasting .candle {
  position:absolute; bottom:42%; left:28%; width:5px; height:18px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a40 100%);
  border-radius: 30%;
  animation: wmf-candle 2s ease-in-out infinite;
}
@keyframes wmf-table { 0%,100% { transform:translateY(-50%); } 50% { transform:translateY(-48%); } }
@keyframes wmf-bread { 0% { transform:scale(1) rotate(0); opacity:.9; } 30% { transform:scale(1.04) rotate(2deg); opacity:1; } 60% { transform:scale(0.97) rotate(-1deg); opacity:.85; } 100% { transform:scale(1) rotate(0); opacity:.9; } }
@keyframes wmf-meat { 0% { transform:rotate(0) scaleY(1); } 25% { transform:rotate(4deg) scaleY(1.02); } 50% { transform:rotate(-3deg) scaleY(0.98); } 75% { transform:rotate(2deg) scaleY(1.01); } 100% { transform:rotate(0) scaleY(1); } }
@keyframes wmf-bearer { 0% { transform:translateX(0) rotate(0); } 20% { transform:translateX(-3px) rotate(2deg); } 40% { transform:translateX(2px) rotate(-2deg); } 60% { transform:translateX(-2px) rotate(1deg); } 80% { transform:translateX(3px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes wmf-jug { 0%,100% { transform:rotate(0) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } }
@keyframes wmf-candle { 0%,100% { height:18px; opacity:.8; } 50% { height:20px; opacity:1; } }

/* Scene 1: tyrant-creation */
.scn-tyrant-creation {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-tyrant-creation .bg-wall {
  position: absolute; inset: 0; background: #0a0a12; opacity: 0.6;
  animation: tc-fade 15s ease-in-out infinite alternate;
}
.scn-tyrant-creation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: tc-breath 8s ease-in-out infinite;
}
.scn-tyrant-creation .throne {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.7);
  animation: tc-throne 6s ease-in-out infinite;
}
.scn-tyrant-creation .tyrant-figure {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(200,100,30,0.3);
  animation: tc-sway 5s ease-in-out infinite;
}
.scn-tyrant-creation .crown-glow {
  position: absolute; bottom: 72%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 16px;
  background: radial-gradient(circle, #c08040 0%, #8a5a20 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: tc-glow 3s ease-in-out infinite alternate;
}
.scn-tyrant-creation .guard-left {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: tc-guard 7s ease-in-out infinite;
}
.scn-tyrant-creation .guard-right {
  position: absolute; bottom: 28%; right: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: tc-guard 7s ease-in-out infinite 1.5s;
}
.scn-tyrant-creation .lamp {
  position: absolute; bottom: 50%; left: 12%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b07040 60%);
  border-radius: 30%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.6);
  animation: tc-lamp 4s ease-in-out infinite;
}
@keyframes tc-fade { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }
@keyframes tc-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes tc-throne { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes tc-sway { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-48%) rotate(1deg); } 60% { transform: translateX(-52%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes tc-glow { 0% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 16px #e0a060, 0 0 80px 24px rgba(224,160,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 10px #b08040, 0 0 50px 18px rgba(176,128,64,0.35); opacity: 0.85; } }
@keyframes tc-guard { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes tc-lamp { 0% { box-shadow: 0 0 15px 6px #b07040; } 50% { box-shadow: 0 0 30px 12px #ffd080; } 100% { box-shadow: 0 0 18px 8px #b07040; } }

/* Scene 2: tyrant-vs-king-happiness */
.scn-tyrant-vs-king-happiness {
  background: linear-gradient(180deg, #2a241a 0%, #1a1410 50%, #0a0a05 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-tyrant-vs-king-happiness .bg {
  position: absolute; inset: 0; background: #0f0a05; opacity: 0.4;
  animation: th-haze 20s ease-in-out infinite alternate;
}
.scn-tyrant-vs-king-happiness .dais {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
  animation: th-breathe 12s ease-in-out infinite;
}
.scn-tyrant-vs-king-happiness .judge {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(150,100,50,0.3);
  animation: th-sway 9s ease-in-out infinite;
}
.scn-tyrant-vs-king-happiness .figure-left {
  position: absolute; bottom: 25%; left: 28%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: th-figure 14s ease-in-out infinite;
}
.scn-tyrant-vs-king-happiness .figure-right {
  position: absolute; bottom: 25%; right: 28%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: th-figure 14s ease-in-out infinite 3s;
}
.scn-tyrant-vs-king-happiness .light-beam {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,100,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: th-light 8s ease-in-out infinite alternate;
}
.scn-tyrant-vs-king-happiness .scroll {
  position: absolute; bottom: 40%; left: 15%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 10%;
  transform: rotate(-15deg);
  animation: th-scroll 11s ease-in-out infinite;
}
@keyframes th-haze { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }
@keyframes th-breathe { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes th-sway { 0% { transform: translateX(-50%) rotate(0deg); } 33% { transform: translateX(-48%) rotate(1.5deg); } 66% { transform: translateX(-52%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes th-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes th-light { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.4; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.25; transform: translateX(-50%) scaleY(0.98); } }
@keyframes th-scroll { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }

/* Scene 3: public-tyrant-misery */
.scn-public-tyrant-misery {
  background: linear-gradient(180deg, #1a1a2e 0%, #101020 50%, #050510 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a20 0%, transparent 70%);
}
.scn-public-tyrant-misery .bg-dark {
  position: absolute; inset: 0; background: #05080f; opacity: 0.5;
  animation: tm-shade 10s ease-in-out infinite alternate;
}
.scn-public-tyrant-misery .throne {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
  animation: tm-throne 4s ease-in-out infinite;
}
.scn-public-tyrant-misery .tyrant-figure {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  box-shadow: 0 0 18px 6px rgba(200,60,40,0.2);
  animation: tm-figure 3.5s ease-in-out infinite;
}
.scn-public-tyrant-misery .servant1 {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1) rotate(-5deg);
  animation: tm-servant 5s ease-in-out infinite;
}
.scn-public-tyrant-misery .servant2 {
  position: absolute; bottom: 20%; right: 20%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: tm-servant 5s ease-in-out infinite 2s;
}
.scn-public-tyrant-misery .chain {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 4px;
  background: #5a4a4a; border-radius: 2px; opacity: 0.6;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tm-chain 3s ease-in-out infinite;
}
.scn-public-tyrant-misery .lantern {
  position: absolute; bottom: 60%; left: 15%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d08040 0%, #8a5020 60%);
  border-radius: 20%;
  box-shadow: 0 0 25px 12px rgba(208,128,64,0.5);
  animation: tm-lantern 2.5s ease-in-out infinite alternate;
}
@keyframes tm-shade { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; } }
@keyframes tm-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.97) rotate(-0.5deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes tm-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes tm-servant { 0% { transform: rotate(-5deg) translateY(0) scaleY(1); } 25% { transform: rotate(-3deg) translateY(-2px) scaleY(0.95); } 50% { transform: rotate(-5deg) translateY(0) scaleY(1); } 75% { transform: rotate(-7deg) translateY(-1px) scaleY(0.97); } 100% { transform: rotate(-5deg) translateY(0) scaleY(1); } }
@keyframes tm-chain { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes tm-lantern { 0% { box-shadow: 0 0 15px 6px #8a5020; } 50% { box-shadow: 0 0 35px 16px #d08040; } 100% { box-shadow: 0 0 20px 10px #8a5020; } }

/* Scene 4: five-regimes-ranking */
.scn-five-regimes-ranking {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 50%, #0a0500 100%),
              radial-gradient(ellipse at 50% 10%, #3a2a1a 0%, transparent 70%);
}
.scn-five-regimes-ranking .bg {
  position: absolute; inset: 0; background: #0f0800; opacity: 0.3;
  animation: fr-bg 25s ease-in-out infinite alternate;
}
.scn-five-regimes-ranking .step-a,
.scn-five-regimes-ranking .step-b,
.scn-five-regimes-ranking .step-c,
.scn-five-regimes-ranking .step-d,
.scn-five-regimes-ranking .step-e {
  position: absolute; left: 50%; transform: translateX(-50%);
  height: 14px; background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: fr-step 20s ease-in-out infinite;
}
.scn-five-regimes-ranking .step-a { bottom: 10%; width: 140px; animation-delay: 0s; }
.scn-five-regimes-ranking .step-b { bottom: 22%; width: 120px; animation-delay: 1s; }
.scn-five-regimes-ranking .step-c { bottom: 34%; width: 100px; animation-delay: 2s; }
.scn-five-regimes-ranking .step-d { bottom: 46%; width: 80px;  animation-delay: 3s; }
.scn-five-regimes-ranking .step-e { bottom: 58%; width: 60px;  animation-delay: 4s; }
.scn-five-regimes-ranking .herald {
  position: absolute; bottom: 50%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: fr-herald 12s ease-in-out infinite;
}
.scn-five-regimes-ranking .scroll {
  position: absolute; bottom: 52%; left: 32%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 10%; transform: rotate(-10deg);
  animation: fr-scroll 15s ease-in-out infinite;
}
.scn-five-regimes-ranking .light-ray {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,80,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: fr-ray 8s ease-in-out infinite alternate;
}
@keyframes fr-bg { 0% { opacity: 0.25; } 50% { opacity: 0.4; } 100% { opacity: 0.28; } }
@keyframes fr-step { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.96); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes fr-herald { 0% { transform: rotate(5deg) translateY(0); } 33% { transform: rotate(8deg) translateY(-2px); } 66% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes fr-scroll { 0% { transform: rotate(-10deg) translateY(0) scale(1); } 50% { transform: rotate(-8deg) translateY(-1px) scale(1.02); } 100% { transform: rotate(-10deg) translateY(0) scale(1); } }
@keyframes fr-ray { 0% { opacity: 0.15; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.3; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.18; transform: translateX(-50%) scaleY(0.95); } }

.scn-limited-warfare { background: linear-gradient(180deg, #e8d8c3 0%, #d4b895 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%); position: relative; width: 100%; height: 100%; overflow: hidden; }
.scn-limited-warfare .lw-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%); border-radius: 0; }
.scn-limited-warfare .lw-window { position: absolute; top: 10%; left: 65%; width: 20%; height: 45%; background: linear-gradient(180deg, #fff8e8 0%, #e8d8c3 100%); border-radius: 20% 20% 5% 5% / 30% 30% 5% 5%; box-shadow: inset 0 0 40px rgba(255,255,240,.6), 0 0 60px rgba(255,240,200,.3); animation: lw-glow 6s ease-in-out infinite alternate; }
.scn-limited-warfare .lw-light-beam { position: absolute; top: 10%; left: 65%; width: 35%; height: 60%; background: linear-gradient(135deg, rgba(255,248,232,0.4) 0%, transparent 100%); transform: skewX(-15deg); transform-origin: top left; animation: lw-beam 8s ease-in-out infinite alternate; }
.scn-limited-warfare .lw-table { position: absolute; bottom: 15%; left: 20%; width: 45%; height: 15%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-limited-warfare .lw-map { position: absolute; bottom: 22%; left: 28%; width: 30%; height: 10%; background: linear-gradient(135deg, #d4c8a8 0%, #c8b090 50%, #e8d8c0 100%); border-radius: 5%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: lw-shimmer 10s ease-in-out infinite alternate; }
.scn-limited-warfare .lw-philosopher { position: absolute; bottom: 15%; left: 35%; width: 12%; height: 35%; background: linear-gradient(180deg, #c8b090 0%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lw-breathe 5s ease-in-out infinite; }
.scn-limited-warfare .lw-lyre { position: absolute; bottom: 18%; left: 22%; width: 8%; height: 12%; background: radial-gradient(ellipse at 50% 30%, #d4b070 0%, #a08040 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lw-strum 4s ease-in-out infinite alternate; }
@keyframes lw-glow { 0% { opacity:.7; box-shadow: inset 0 0 30px rgba(255,255,240,.5), 0 0 40px rgba(255,240,200,.2); } 50% { opacity:1; box-shadow: inset 0 0 60px rgba(255,255,240,.8), 0 0 80px rgba(255,240,200,.5); } 100% { opacity:.8; box-shadow: inset 0 0 40px rgba(255,255,240,.6), 0 0 60px rgba(255,240,200,.3); } }
@keyframes lw-beam { 0% { transform: skewX(-15deg) translateX(0); opacity:.6; } 50% { transform: skewX(-12deg) translateX(5%); opacity:1; } 100% { transform: skewX(-18deg) translateX(-5%); opacity:.7; } }
@keyframes lw-shimmer { 0% { opacity:.8; background-position: 0 0; } 50% { opacity:1; background-position: 10% 5%; } 100% { opacity:.9; background-position: -5% 2%; } }
@keyframes lw-breathe { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) translateY(-3%) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes lw-strum { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(5deg) scale(.95); } }

.scn-third-wave-approaching { background: linear-gradient(135deg, #1a2a3a 0%, #2a3a4a 40%, #d4c8a8 60%, #e8dcc8 100%); position: relative; width: 100%; height: 100%; overflow: hidden; }
.scn-third-wave-approaching .tw-bg-bright { position: absolute; top: 0; right: 0; width: 60%; height: 100%; background: linear-gradient(180deg, #e8dcc8 0%, #d4c8a8 100%); clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%); }
.scn-third-wave-approaching .tw-wave-dark { position: absolute; top: 0; left: 0; width: 70%; height: 100%; background: linear-gradient(135deg, #1a2a3a 0%, #2a3a4a 80%, transparent 100%); transform: translateX(-10%) rotate(-5deg); transform-origin: left center; animation: tw-wave 8s ease-in-out infinite alternate; }
.scn-third-wave-approaching .tw-wave-foam { position: absolute; top: 45%; left: 15%; width: 40%; height: 8%; background: radial-gradient(ellipse at 30% 50%, rgba(200,220,240,.6) 0%, transparent 70%); filter: blur(4px); animation: tw-foam 8s ease-in-out infinite alternate; }
.scn-third-wave-approaching .tw-figure { position: absolute; bottom: 15%; right: 25%; width: 10%; height: 40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tw-brace 8s ease-in-out infinite alternate; }
.scn-third-wave-approaching .tw-chair { position: absolute; bottom: 12%; right: 23%; width: 12%; height: 18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 40% 40%; transform: rotate(-5deg); animation: tw-shake 8s ease-in-out infinite alternate; }
.scn-third-wave-approaching .tw-lamp { position: absolute; top: 20%; right: 10%; width: 6%; height: 20%; background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b08040 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 40px rgba(255,208,128,.6); animation: tw-flicker .8s ease-in-out infinite alternate; }
.scn-third-wave-approaching .tw-particle-a { position: absolute; top: 30%; left: 20%; width: 4px; height: 4px; background: rgba(200,220,240,.5); border-radius: 50%; animation: tw-drift-a 15s linear infinite; }
.scn-third-wave-approaching .tw-particle-b { position: absolute; top: 60%; left: 10%; width: 6px; height: 6px; background: rgba(200,220,240,.3); border-radius: 50%; animation: tw-drift-b 20s linear infinite reverse; }
@keyframes tw-wave { 0% { transform: translateX(-10%) rotate(-5deg) scaleX(1); } 50% { transform: translateX(-5%) rotate(0deg) scaleX(1.1); } 100% { transform: translateX(-15%) rotate(-8deg) scaleX(.95); } }
@keyframes tw-foam { 0% { opacity:.3; transform: translateX(0) scaleY(1); } 50% { opacity:.7; transform: translateX(10%) scaleY(1.5); } 100% { opacity:.4; transform: translateX(-5%) scaleY(.8); } }
@keyframes tw-brace { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) translateY(-2%); } 100% { transform: translateX(-50%) rotate(-1deg) scale(1); } }
@keyframes tw-shake { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-8deg) translateX(2%); } 100% { transform: rotate(-3deg); } }
@keyframes tw-flicker { 0% { opacity:.7; box-shadow: 0 0 20px rgba(255,208,128,.4); } 50% { opacity:1; box-shadow: 0 0 60px rgba(255,208,128,.9); } 100% { opacity:.8; box-shadow: 0 0 30px rgba(255,208,128,.5); } }
@keyframes tw-drift-a { 0% { transform: translate(0, 0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(50vw, -20vh); opacity:0; } }
@keyframes tw-drift-b { 0% { transform: translate(0, 0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(30vw, 30vh); opacity:0; } }

.scn-philosophers-must-rule { background: radial-gradient(ellipse at 50% 20%, #fff4e8 0%, #c8b090 40%, #2a1a1a 100%); position: relative; width: 100%; height: 100%; overflow: hidden; }
.scn-philosophers-must-rule .pm-bg-deep { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #1a0a0a 100%); }
.scn-philosophers-must-rule .pm-light-shaft { position: absolute; top: 0; left: 40%; width: 20%; height: 80%; background: linear-gradient(180deg, rgba(255,248,240,0.8) 0%, rgba(255,248,240,0) 100%); transform: skewX(-5deg); transform-origin: top center; animation: pm-beam 4s ease-in-out infinite alternate; }
.scn-philosophers-must-rule .pm-ideal-city { position: absolute; top: 5%; left: 50%; width: 25%; height: 25%; background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #c8a870 50%, transparent 70%), linear-gradient(180deg, #d4b898 0%, #8a7050 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 60px rgba(255,240,200,.5); transform: translateX(-50%); animation: pm-float 10s ease-in-out infinite alternate; }
.scn-philosophers-must-rule .pm-philosopher { position: absolute; bottom: 15%; left: 50%; width: 14%; height: 45%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pm-reach 6s ease-in-out infinite alternate; }
.scn-philosophers-must-rule .pm-shadow-citizen-a { position: absolute; bottom: 10%; left: 25%; width: 10%; height: 25%; background: linear-gradient(180deg, rgba(20,10,10,0.8) 0%, rgba(0,0,0,0.9) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-sway 12s ease-in-out infinite; }
.scn-philosophers-must-rule .pm-shadow-citizen-b { position: absolute; bottom: 10%; right: 25%; width: 10%; height: 25%; background: linear-gradient(180deg, rgba(20,10,10,0.8) 0%, rgba(0,0,0,0.9) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-sway 12s ease-in-out infinite reverse; }
.scn-philosophers-must-rule .pm-floating-star { position: absolute; top: 15%; left: 30%; width: 8px; height: 8px; background: #fff8e8; border-radius: 50%; box-shadow: 0 0 20px rgba(255,248,232,.8); animation: pm-twinkle 7s ease-in-out infinite alternate; }
@keyframes pm-beam { 0% { opacity:.6; transform: skewX(-5deg) scaleY(1); } 50% { opacity:1; transform: skewX(-3deg) scaleY(1.1); } 100% { opacity:.7; transform: skewX(-8deg) scaleY(.95); } }
@keyframes pm-float { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) scale(.95); } 50% { transform: translateX(-50%) translateY(-8%) rotate(1deg) scale(1.05); } 100% { transform: translateX(-50%) translateY(-4%) rotate(-1deg) scale(1); } }
@keyframes pm-reach { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.05) translateY(-5%); } 100% { transform: translateX(-50%) rotate(2deg) scale(1); } }
@keyframes pm-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pm-twinkle { 0% { opacity:.3; transform: scale(.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.5; transform: scale(.9); } }

.scn-glaucon-warns-attack { background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 80%, #8a7a6a 100%); position: relative; width: 100%; height: 100%; overflow: hidden; }
.scn-glaucon-warns-attack .gw-bg-hall { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 100%); }
.scn-glaucon-warns-attack .gw-table-fallen { position: absolute; bottom: 10%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 5%; transform: rotate(-15deg); transform-origin: right center; animation: gw-fall 0.6s ease-in forwards; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-glaucon-warns-attack .gw-chair-tipping { position: absolute; bottom: 8%; left: 50%; width: 12%; height: 20%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-60deg); transform-origin: bottom left; animation: gw-fall 0.8s ease-in forwards; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-glaucon-warns-attack .gw-glaucon { position: absolute; bottom: 15%; left: 45%; width: 12%; height: 40%; background: linear-gradient(180deg, #c8b090 0%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gw-rise 0.8s ease-out forwards; }
.scn-glaucon-warns-attack .gw-weapon { position: absolute; bottom: 35%; left: 48%; width: 4%; height: 25%; background: linear-gradient(180deg, #c8a870 0%, #8a6a30 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; transform: rotate(30deg); transform-origin: bottom center; animation: gw-draw 0.5s ease-in forwards; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-glaucon-warns-attack .gw-crowd-a { position: absolute; bottom: 12%; left: 20%; width: 10%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gw-rise 1.0s ease-out 0.2s forwards; opacity:0; }
.scn-glaucon-warns-attack .gw-crowd-b { position: absolute; bottom: 12%; right: 20%; width: 10%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gw-rise 1.2s ease-out 0.4s forwards; opacity:0; }
.scn-glaucon-warns-attack .gw-dust { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 80%, rgba(200,180,140,0.3) 0%, transparent 60%); animation: gw-dust 4s ease-in-out infinite alternate; }
@keyframes gw-fall { 0% { transform: rotate(0deg); opacity:1; } 100% { transform: rotate(-15deg); opacity:1; } }
@keyframes gw-rise { 0% { transform: translateY(20%) scaleY(0.8); opacity:0; } 60% { transform: translateY(-5%) scaleY(1.1); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:1; } }
@keyframes gw-draw { 0% { transform: rotate(0deg) scaleY(0.5); opacity:0.5; } 100% { transform: rotate(30deg) scaleY(1); opacity:1; } }
@keyframes gw-dust { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(.95); } }

.scn-proper-order-of-study { background: linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%); }
.scn-proper-order-of-study .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5b0 0%, #d4c09a 100%); }
.scn-proper-order-of-study .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b08a6b 0%, #8c6a4f 100%); }
.scn-proper-order-of-study .window { position:absolute; top:15%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #9bc9ff 0%, #7bb0f0 100%); border:4px solid #6a4a2a; box-shadow: inset 0 0 20px rgba(255,255,200,.5); animation: pos-window 10s ease-in-out infinite alternate; }
.scn-proper-order-of-study .desk { position:absolute; bottom:20%; left:10%; width:60%; height:8%; background: linear-gradient(180deg, #7a5d3e 0%, #5c402a 100%); border-radius:2px; }
.scn-proper-order-of-study .books { position:absolute; bottom:30%; left:60%; width:30%; height:20%; background: linear-gradient(90deg, #4a6b8a 0%, #8a6b4a 30%, #6b8a4a 60%, #8a4a6b 100%); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: pos-books 15s ease-in-out infinite; }
.scn-proper-order-of-study .figure { position:absolute; bottom:15%; left:25%; width:12%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pos-figure 6s ease-in-out infinite alternate; }
.scn-proper-order-of-study .light { position:absolute; top:15%; left:15%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,.3) 0%, transparent 70%); animation: pos-light 4s ease-in-out infinite alternate; }
@keyframes pos-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,.4); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,.7); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,.4); } }
@keyframes pos-books { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes pos-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pos-light { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.05); } 100% { opacity: .6; transform: scale(1); } }

.scn-philosophy-queen-possible { background: linear-gradient(180deg, #2a1a0e 0%, #4a2a18 40%, #6a3a22 100%), radial-gradient(ellipse at 50% 50%, #8a5020 0%, transparent 70%); }
.scn-philosophy-queen-possible .bg-columns { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 15%, #3a2010 15%, #3a2010 20%, transparent 20%, transparent 35%); animation: pqp-columns 20s linear infinite; }
.scn-philosophy-queen-possible .throne { position:absolute; bottom:10%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #b08040 0%, #7a5020 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 20px rgba(200,150,50,.5); }
.scn-philosophy-queen-possible .ruler { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: pqp-ruler 3s ease-in-out infinite alternate; }
.scn-philosophy-queen-possible .guard-left { position:absolute; bottom:5%; left:10%; width:15%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 5% 5%; animation: pqp-guard 4s ease-in-out infinite alternate; }
.scn-philosophy-queen-possible .guard-right { position:absolute; bottom:5%; right:10%; width:15%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 5% 5%; animation: pqp-guard 4s ease-in-out infinite alternate reverse; }
.scn-philosophy-queen-possible .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.6) 0%, transparent 70%); animation: pqp-shadow 6s ease-in-out infinite alternate; }
.scn-philosophy-queen-possible .flicker { position:absolute; bottom:45%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #ffd060 0%, transparent 70%); animation: pqp-flicker 1.5s ease-in-out infinite alternate; }
@keyframes pqp-columns { 0% { background-position: 0% 0%; } 50% { background-position: -100% 0%; } 100% { background-position: -200% 0%; } }
@keyframes pqp-ruler { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pqp-guard { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateX(-2px); } 100% { transform: scale(1); } }
@keyframes pqp-shadow { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes pqp-flicker { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .8; transform: scale(0.9); } }

.scn-philosopher-fixes-on-truth { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%), radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%); }
.scn-philosopher-fixes-on-truth .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%); }
.scn-philosopher-fixes-on-truth .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); }
.scn-philosopher-fixes-on-truth .skylight { position:absolute; top:5%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #b0d0ff 0%, #80b0e0 100%); border:6px solid #6a4a2a; border-radius:2% 2% 10% 10%; box-shadow: inset 0 0 40px rgba(255,255,200,.6); animation: pft-skylight 8s ease-in-out infinite alternate; }
.scn-philosopher-fixes-on-truth .figure { position:absolute; bottom:15%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pft-figure 12s ease-in-out infinite alternate; }
.scn-philosopher-fixes-on-truth .rays { position:absolute; top:5%; left:30%; width:40%; height:50%; background: linear-gradient(135deg, rgba(255,255,220,.3) 0%, transparent 70%); filter: blur(5px); animation: pft-rays 6s ease-in-out infinite alternate; }
.scn-philosopher-fixes-on-truth .book { position:absolute; bottom:25%; left:45%; width:10%; height:8%; background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 100%); border-radius:2px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); animation: pft-book 20s ease-in-out infinite; }
@keyframes pft-skylight { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes pft-figure { 0% { transform: rotate(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes pft-rays { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.05); } 100% { opacity: .5; transform: scale(0.95); } }
@keyframes pft-book { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-painter-of-constitutions { background: linear-gradient(180deg, #f5e0b0 0%, #d0b080 100%), radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, transparent 70%); }
.scn-painter-of-constitutions .bg-room { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); }
.scn-painter-of-constitutions .easel { position:absolute; bottom:10%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #7a5030 0%, #5a3010 100%); border-radius:2% 2% 5% 5%; transform-origin: bottom; animation: poc-easel 20s ease-in-out infinite alternate; }
.scn-painter-of-constitutions .canvas { position:absolute; bottom:20%; left:38%; width:24%; height:40%; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border:3px solid #4a3010; box-shadow: 2px 2px 5px rgba(0,0,0,.2); animation: poc-canvas 30s ease-in-out infinite; }
.scn-painter-of-constitutions .painter { position:absolute; bottom:8%; left:20%; width:18%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:45% 45% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom; animation: poc-painter 8s ease-in-out infinite alternate; }
.scn-painter-of-constitutions .palette { position:absolute; bottom:30%; left:20%; width:12%; height:8%; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%); border-radius:50%; box-shadow: 0 0 0 3px #4a2a1a; animation: poc-palette 5s ease-in-out infinite; }
.scn-painter-of-constitutions .brush { position:absolute; bottom:28%; left:20%; width:2%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:20%; transform-origin: bottom; animation: poc-brush 3s ease-in-out infinite alternate; }
@keyframes poc-easel { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes poc-canvas { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes poc-painter { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes poc-palette { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes poc-brush { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }

/* music-end-beauty */
.scn-music-end-beauty {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 50%, #d4a860 100%), radial-gradient(ellipse at 30% 60%, #fff8e0 0%, transparent 60%);
}
.scn-music-end-beauty .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #b8975a 100%); animation: meb-bg 10s ease-in-out infinite alternate; }
.scn-music-end-beauty .window { position:absolute; top:10%; left:30%; width:40%; height:30%; background: #c8b088; border:4px solid #a08040; border-radius:8px; animation: meb-window 8s infinite; }
.scn-music-end-beauty .lyre { position:absolute; bottom:30%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse 60% 100%, #704020 0%, #a06030 100%); border-radius:50% 50% 30% 30%; animation: meb-lyre 6s ease-in-out infinite; }
.scn-music-end-beauty .figure { position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: meb-figure 12s ease-in-out infinite; }
.scn-music-end-beauty .shadow { position:absolute; bottom:18%; left:38%; width:50px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); animation: meb-shadow 8s infinite alternate; }
.scn-music-end-beauty .sunbeam { position:absolute; top:0; left:20%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, transparent 80%); transform:rotate(15deg); animation: meb-beam 15s infinite alternate; }
.scn-music-end-beauty .particles { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 30% 40%, rgba(255,215,0,0.6) 0%, transparent 50%); animation: meb-particles 20s infinite; }
@keyframes meb-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes meb-window { 0% { box-shadow: inset 0 0 10px #a08040, 0 0 20px rgba(255,200,100,0.3); } 50% { box-shadow: inset 0 0 20px #c8a060, 0 0 40px rgba(255,200,100,0.6); } 100% { box-shadow: inset 0 0 10px #a08040, 0 0 20px rgba(255,200,100,0.3); } }
@keyframes meb-lyre { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes meb-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(10px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes meb-shadow { 0% { width:50px; opacity:0.3; } 50% { width:60px; opacity:0.2; } 100% { width:50px; opacity:0.3; } }
@keyframes meb-beam { 0% { opacity:0.3; transform:rotate(10deg) scaleY(1); } 50% { opacity:0.6; transform:rotate(20deg) scaleY(1.1); } 100% { opacity:0.3; transform:rotate(10deg) scaleY(1); } }
@keyframes meb-particles { 0% { opacity:0.5; background-size:100% 100%; } 50% { opacity:1; background-size:120% 120%; } 100% { opacity:0.5; background-size:100% 100%; } }

/* soul-body-gymnastic */
.scn-soul-body-gymnastic {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 50%, #a89880 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-soul-body-gymnastic .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,255,240,0.3) 0%, transparent 60%); animation: sbg-bg 12s infinite alternate; }
.scn-soul-body-gymnastic .col-left, .scn-soul-body-gymnastic .col-right { position:absolute; top:0; bottom:10%; width:8%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:10% 10% 0 0; box-shadow: 2px 0 4px rgba(0,0,0,0.1); animation: sbg-col 25s ease-in-out infinite alternate; }
.scn-soul-body-gymnastic .col-left { left:15%; }
.scn-soul-body-gymnastic .col-right { right:15%; }
.scn-soul-body-gymnastic .figure { position:absolute; bottom:25%; left:50%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sbg-figure 8s ease-in-out infinite; }
.scn-soul-body-gymnastic .shadow { position:absolute; bottom:20%; left:45%; width:60px; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter:blur(2px); animation: sbg-shadow 10s infinite alternate; }
.scn-soul-body-gymnastic .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09880 0%, #908070 100%); border-radius:20% 20% 0 0; animation: sbg-ground 20s infinite alternate; }
.scn-soul-body-gymnastic .light-ray { position:absolute; top:0; left:30%; width:5%; height:100%; background: linear-gradient(180deg, rgba(255,245,230,0.5) 0%, transparent 100%); transform:rotate(5deg); animation: sbg-light 15s infinite alternate; }
@keyframes sbg-bg { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes sbg-col { 0% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(1.02); opacity:1; } 100% { transform:scaleY(1); opacity:0.9; } }
@keyframes sbg-figure { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes sbg-shadow { 0% { width:60px; opacity:0.15; } 50% { width:70px; opacity:0.1; } 100% { width:60px; opacity:0.15; } }
@keyframes sbg-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sbg-light { 0% { opacity:0.3; transform:rotate(3deg) scaleY(1); } 50% { opacity:0.6; transform:rotate(7deg) scaleY(1.1); } 100% { opacity:0.3; transform:rotate(3deg) scaleY(1); } }

/* guardian-training-no-intoxication */
.scn-guardian-training-no-intoxication {
  background: linear-gradient(180deg, #d0b8a0 0%, #a08870 50%, #705850 100%), radial-gradient(ellipse at 70% 60%, #fff0d0 0%, transparent 80%);
}
.scn-guardian-training-no-intoxication .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%, rgba(255,240,200,0.2) 0%, transparent 70%); animation: gti-bg 15s infinite alternate; }
.scn-guardian-training-no-intoxication .figure { position:absolute; bottom:20%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #403020 0%, #201810 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gti-figure 6s ease-in-out infinite; }
.scn-guardian-training-no-intoxication .spear { position:absolute; bottom:30%; left:40%; width:4px; height:60px; background: linear-gradient(180deg, #806040 0%, #403020 100%); transform:rotate(-30deg); transform-origin: bottom center; animation: gti-spear 4s ease-in-out infinite; }
.scn-guardian-training-no-intoxication .shield { position:absolute; bottom:25%; left:50%; width:20px; height:30px; background: radial-gradient(ellipse, #b09070 0%, #806050 100%); border-radius:50%; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: gti-shield 8s infinite alternate; }
.scn-guardian-training-no-intoxication .shadow { position:absolute; bottom:18%; left:25%; width:80px; height:12px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(4px); animation: gti-shadow 5s infinite alternate; }
.scn-guardian-training-no-intoxication .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #908070 0%, #605040 100%); animation: gti-floor 15s infinite alternate; }
.scn-guardian-training-no-intoxication .light-source { position:absolute; top:5%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #ffe0a0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,200,80,0.5); animation: gti-light 3s ease-in-out infinite alternate; }
.scn-guardian-training-no-intoxication .dust { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 30% 40%, rgba(255,220,150,0.3) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,200,100,0.2) 0%, transparent 50%); animation: gti-dust 20s infinite linear; }
@keyframes gti-bg { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes gti-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes gti-spear { 0% { transform:rotate(-30deg) scaleY(1); } 50% { transform:rotate(-25deg) scaleY(1.05); } 100% { transform:rotate(-30deg) scaleY(1); } }
@keyframes gti-shield { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gti-shadow { 0% { width:80px; opacity:0.4; transform: translateX(0); } 50% { width:90px; opacity:0.6; transform: translateX(5px); } 100% { width:80px; opacity:0.4; transform: translateX(0); } }
@keyframes gti-floor { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gti-light { 0% { box-shadow: 0 0 30px 5px rgba(255,200,80,0.3); opacity:0.8; } 50% { box-shadow: 0 0 60px 15px rgba(255,200,80,0.6); opacity:1; } 100% { box-shadow: 0 0 30px 5px rgba(255,200,80,0.3); opacity:0.8; } }
@keyframes gti-dust { 0% { background-position:0% 0%; opacity:0.3; } 50% { background-position:50% 50%; opacity:0.5; } 100% { background-position:100% 100%; opacity:0.3; } }

/* athlete-training-warrior */
.scn-athlete-training-warrior {
  background: linear-gradient(180deg, #e0c8b0 0%, #c0a088 50%, #a07860 100%), radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 70%);
}
.scn-athlete-training-warrior .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(255,230,180,0.25) 0%, transparent 60%); animation: atw-bg 18s infinite alternate; }
.scn-athlete-training-warrior .figure { position:absolute; bottom:20%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #503830 0%, #302010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: atw-figure 5s ease-in-out infinite; }
.scn-athlete-training-warrior .sword { position:absolute; bottom:20%; left:60%; width:4px; height:50px; background: linear-gradient(180deg, #c0b0a0 0%, #806050 100%); transform:rotate(20deg); transform-origin: bottom center; border-radius:2px; animation: atw-sword 3s ease-in-out infinite; }
.scn-athlete-training-warrior .target { position:absolute; bottom:25%; right:25%; width:20px; height:30px; background: radial-gradient(ellipse, #a08060 0%, #806040 100%); border-radius:20%; border:2px solid #604020; animation: atw-target 10s infinite alternate; }
.scn-athlete-training-warrior .shadow { position:absolute; bottom:18%; left:35%; width:60px; height:10px; background: rgba(0,0,0,0.35); border-radius:50%; filter:blur(3px); animation: atw-shadow 8s infinite alternate; }
.scn-athlete-training-warrior .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b09880 0%, #806050 100%); border-radius:20% 20% 0 0; animation: atw-ground 12s infinite alternate; }
.scn-athlete-training-warrior .sun { position:absolute; top:5%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe0a0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,200,80,0.4); animation: atw-sun 4s ease-in-out infinite alternate; }
.scn-athlete-training-warrior .dust { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 50% 50%, rgba(255,220,150,0.2) 0%, transparent 60%), radial-gradient(circle at 20% 70%, rgba(200,150,80,0.15) 0%, transparent 40%); animation: atw-dust 25s infinite linear; }
@keyframes atw-bg { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes atw-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes atw-sword { 0% { transform:rotate(20deg) scaleY(1); } 50% { transform:rotate(35deg) scaleY(1.05); } 100% { transform:rotate(20deg) scaleY(1); } }
@keyframes atw-target { 0% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(1); opacity:0.8; } }
@keyframes atw-shadow { 0% { width:60px; opacity:0.35; } 50% { width:70px; opacity:0.5; } 100% { width:60px; opacity:0.35; } }
@keyframes atw-ground { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes atw-sun { 0% { box-shadow: 0 0 40px 10px rgba(255,200,80,0.3); } 50% { box-shadow: 0 0 80px 25px rgba(255,200,80,0.6); } 100% { box-shadow: 0 0 40px 10px rgba(255,200,80,0.3); } }
@keyframes atw-dust { 0% { background-position:0% 0%; opacity:0.2; } 50% { background-position:50% 50%; opacity:0.4; } 100% { background-position:100% 100%; opacity:0.2; } }```

/* allegory-of-cave */
.scn-allegory-of-cave { position:absolute; inset:0; overflow:hidden; background: linear-gradient(180deg, #0d0d0d 0%, #1a120a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #4a3a20 0%, transparent 60%); }
.scn-allegory-of-cave .cave-back { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0d0d 100%); animation: alc-back 20s ease-in-out infinite; }
.scn-allegory-of-cave .cave-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a120a, #2a1a0a); animation: alc-floor 25s ease-in-out infinite; }
.scn-allegory-of-cave .cave-light { position:absolute; top:5%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #b08040 0%, transparent 70%); animation: alc-light 6s ease-in-out infinite alternate; }
.scn-allegory-of-cave .chain { position:absolute; bottom:30%; left:30%; width:2px; height:40px; background: #5a4a3a; transform-origin:top; animation: alc-chain 4s ease-in-out infinite; }
.scn-allegory-of-cave .figure { position:absolute; bottom:20%; left:35%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: alc-figure 8s ease-in-out infinite; }
.scn-allegory-of-cave .dust, .scn-allegory-of-cave .dust-2 { position:absolute; width:4px; height:4px; background: rgba(255,200,100,0.3); border-radius:50%; filter:blur(2px); animation: alc-dust 15s linear infinite; }
.scn-allegory-of-cave .dust { top:30%; left:50%; }
.scn-allegory-of-cave .dust-2 { top:40%; left:20%; animation-duration:20s; animation-delay:5s; }
@keyframes alc-back { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes alc-floor { 0% { opacity:1; } 50% { opacity:0.95; } 100% { opacity:1; } }
@keyframes alc-light { 0% { opacity:0.7; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.8; transform:translateX(-50%) scale(0.98); } }
@keyframes alc-chain { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes alc-figure { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes alc-dust { 0% { transform: translateY(0) rotate(0deg); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { transform: translateY(-30px) rotate(360deg); opacity:0; } }

/* education-of-rulers */
.scn-education-of-rulers { position:absolute; inset:0; overflow:hidden; background: linear-gradient(135deg, #f0e5d0 0%, #d9c9a0 100%), radial-gradient(ellipse at 50% 20%, #fff7e6 0%, transparent 60%); }
.scn-education-of-rulers .edu-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e6d2b5 0%, #cbb598 100%); animation: edu-wall 15s ease-in-out infinite; }
.scn-education-of-rulers .edu-window { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse, #fff7e6 0%, transparent 70%); animation: edu-light 8s ease-in-out infinite alternate; }
.scn-education-of-rulers .edu-light { position:absolute; top:15%; left:35%; width:30%; height:60%; background: linear-gradient(135deg, rgba(255,247,230,0.6) 0%, transparent 100%); transform:rotate(20deg); animation: edu-ray 12s ease-in-out infinite alternate; }
.scn-education-of-rulers .edu-desk { position:absolute; bottom:15%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #8b7355 0%, #6b5535 100%); border-radius: 4px; animation: edu-desk 10s ease-in-out infinite; }
.scn-education-of-rulers .edu-book { position:absolute; bottom:17%; left:50%; width:40px; height:6px; transform:translateX(-50%); background: #8b6f47; border-radius:2px; animation: edu-book 6s ease-in-out infinite; }
.scn-education-of-rulers .edu-figure { position:absolute; bottom:12%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: edu-figure 4s ease-in-out infinite; }
.scn-education-of-rulers .edu-shelf { position:absolute; bottom:35%; left:20%; width:60%; height:4px; background: #8b7355; animation: edu-shelf 20s linear infinite; }
@keyframes edu-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.97; } }
@keyframes edu-light { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes edu-ray { 0% { transform:rotate(15deg) scale(0.95); } 50% { transform:rotate(25deg) scale(1.05); } 100% { transform:rotate(20deg) scale(1); } }
@keyframes edu-desk { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes edu-book { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes edu-figure { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes edu-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* geometry */
.scn-geometry { position:absolute; inset:0; overflow:hidden; background: linear-gradient(180deg, #f5f0e0 0%, #e8e0c0 100%), radial-gradient(ellipse at 50% 50%, #fff8e7 0%, transparent 70%); }
.scn-geometry .geo-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #e8e0c0 100%); animation: geo-bg 15s ease-in-out infinite alternate; }
.scn-geometry .geo-triangle { position:absolute; top:20%; left:20%; width:0; height:0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 86px solid #8b7355; animation: geo-tri 10s ease-in-out infinite alternate; }
.scn-geometry .geo-circle { position:absolute; top:30%; left:60%; width:60px; height:60px; border-radius:50%; border: 3px solid #8b7355; background: transparent; animation: geo-circle 8s ease-in-out infinite alternate; }
.scn-geometry .geo-square { position:absolute; top:50%; left:40%; width:50px; height:50px; border: 3px solid #8b7355; background: rgba(139,115,85,0.1); transform:rotate(45deg); animation: geo-square 12s ease-in-out infinite; }
.scn-geometry .geo-compass-arm1 { position:absolute; bottom:20%; left:50%; width:2px; height:50px; background: #555; transform-origin:bottom; animation: geo-compass 6s ease-in-out infinite; }
.scn-geometry .geo-compass-arm2 { position:absolute; bottom:20%; left:50%; width:2px; height:40px; background: #777; transform-origin:bottom; animation: geo-compass2 6s ease-in-out infinite; animation-delay:1s; }
.scn-geometry .geo-ruler { position:absolute; bottom:30%; left:20%; width:100px; height:6px; background: #8b7355; border-radius:3px; animation: geo-ruler 14s linear infinite; }
@keyframes geo-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes geo-tri { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes geo-circle { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(180deg); } 100% { transform: scale(0.9) rotate(360deg); } }
@keyframes geo-square { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(90deg) scale(1.1); } 100% { transform: rotate(135deg) scale(0.95); } }
@keyframes geo-compass { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-15deg); } }
@keyframes geo-compass2 { 0% { transform: rotate(-45deg); } 50% { transform: rotate(45deg); } 100% { transform: rotate(-30deg); } }
@keyframes geo-ruler { 0% { transform: translateX(-20px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-20px); } }

/* astronomy */
.scn-astronomy { position:absolute; inset:0; overflow:hidden; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 80%); }
.scn-astronomy .ast-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,255,255,0.03) 0%, transparent 70%); animation: ast-sky 20s ease-in-out infinite alternate; }
.scn-astronomy .ast-moon { position:absolute; top:10%; left:70%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #fff7e6 0%, #fff0d0 60%, transparent 100%); box-shadow: 0 0 20px 8px rgba(255,247,230,0.4); animation: ast-moon 30s ease-in-out infinite alternate; }
.scn-astronomy .ast-star-1, .scn-astronomy .ast-star-2, .scn-astronomy .ast-star-3 { position:absolute; background: #fff; border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,255,255,0.5); animation: ast-star 4s ease-in-out infinite; }
.scn-astronomy .ast-star-1 { top:20%; left:30%; width:3px; height:3px; }
.scn-astronomy .ast-star-2 { top:35%; left:60%; width:2px; height:2px; animation-delay:2s; animation-duration:5s; }
.scn-astronomy .ast-star-3 { top:15%; left:50%; width:4px; height:4px; animation-delay:3s; animation-duration:3s; }
.scn-astronomy .ast-hills { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: ast-hills 12s ease-in-out infinite; }
.scn-astronomy .ast-figure { position:absolute; bottom:25%; left:40%; width:25px; height:45px; background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ast-figure 6s ease-in-out infinite; }
.scn-astronomy .ast-telescope { position:absolute; bottom:28%; left:43%; width:30px; height:3px; background: #555; transform:rotate(-30deg); transform-origin: left center; border-radius:2px; animation: ast-telescope 8s ease-in-out infinite; }
@keyframes ast-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ast-moon { 0% { transform: translate(-20px, -10px); } 50% { transform: translate(10px, 5px); } 100% { transform: translate(-5px, -15px); } }
@keyframes ast-star { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:0.4; transform:scale(0.8); } }
@keyframes ast-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ast-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ast-telescope { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(1.2); } 100% { transform: rotate(-35deg) scaleX(1); } }

.scn-children-in-war-safeguards {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c9a0 40%, #c49a6c 100%),
              radial-gradient(ellipse at 30% 50%, #ffefd0 0%, transparent 60%);
}
.scn-children-in-war-safeguards .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d5b8 0%, #d4b88a 100%);
}
.scn-children-in-war-safeguards .window-frame {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a442a 100%);
  border-radius: 8px; box-shadow: inset 0 0 0 8px #3b2b1a, 0 4px 12px rgba(0,0,0,0.5);
}
.scn-children-in-war-safeguards .window-pane {
  position: absolute; top: 18%; left: 28%; width: 44%; height: 64%;
  background: linear-gradient(180deg, rgba(255,255,230,0.6) 0%, rgba(200,180,150,0.3) 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: ciw-glare 8s ease-in-out infinite alternate;
}
.scn-children-in-war-safeguards .child {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ciw-breathe 4s ease-in-out infinite;
}
.scn-children-in-war-safeguards .guard {
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3c2e 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  animation: ciw-patrol 12s ease-in-out infinite;
}
.scn-children-in-war-safeguards .sunbeam-left {
  position: absolute; top: 18%; left: 28%; width: 8%; height: 20%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 80%);
  transform: rotate(-15deg); border-radius: 50% 50% 0 0; filter: blur(4px);
  animation: ciw-sway 6s ease-in-out infinite alternate;
}
.scn-children-in-war-safeguards .sunbeam-right {
  position: absolute; top: 18%; right: 28%; width: 8%; height: 20%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 80%);
  transform: rotate(15deg); border-radius: 50% 50% 0 0; filter: blur(4px);
  animation: ciw-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-children-in-war-safeguards .floor-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ciw-shift 10s ease-in-out infinite alternate;
}
@keyframes ciw-glare { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ciw-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ciw-patrol { 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 ciw-sway { 0% { transform: rotate(-15deg) scaleX(0.8); } 50% { transform: rotate(-10deg) scaleX(1); } 100% { transform: rotate(-15deg) scaleX(0.8); } }
@keyframes ciw-shift { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-honours-for-brave {
  background: linear-gradient(180deg, #fdf3e0 0%, #f0d4a0 30%, #c89a6c 70%, #8c6138 100%),
              radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 70%);
}
.scn-honours-for-brave .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4b88a 0%, #b88a5e 100%);
}
.scn-honours-for-brave .podium {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #9c7a54 0%, #6b4e32 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-honours-for-brave .hero {
  position: absolute; bottom: 35%; left: 50%; width: 28px; height: 48px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hb-proud 6s ease-in-out infinite;
}
.scn-honours-for-brave .laurel {
  position: absolute; bottom: 44%; left: 50%; width: 30px; height: 12px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #c8a040 0%, #8c7020 60%, #5a4410 100%);
  border-radius: 50%; clip-path: polygon(50% 0%, 65% 30%, 100% 35%, 75% 60%, 85% 100%, 50% 75%, 15% 100%, 25% 60%, 0% 35%, 35% 30%);
  animation: hb-glow 3s ease-in-out infinite alternate;
}
.scn-honours-for-brave .crowd-left {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: hb-crowd 8s ease-in-out infinite alternate;
}
.scn-honours-for-brave .crowd-right {
  position: absolute; bottom: 20%; right: 5%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: hb-crowd 8s ease-in-out infinite alternate-reverse;
}
.scn-honours-for-brave .light-spot {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #fff0c0 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: hb-pulse 4s ease-in-out infinite;
}
.scn-honours-for-brave .confetti {
  position: absolute; top: 0%; left: 20%; width: 60%; height: 10%;
  background: repeating-linear-gradient(90deg, #c8553d 0px, #c8553d 4px, #d4a040 4px, #d4a040 8px, #8aa0c0 8px, #8aa0c0 12px, transparent 12px, transparent 16px);
  border-radius: 0 0 50% 50%; filter: blur(1px);
  animation: hb-fall 10s linear infinite;
}
@keyframes hb-proud { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hb-glow { 0% { opacity: 0.7; box-shadow: 0 0 8px #c8a040; } 50% { opacity: 1; box-shadow: 0 0 24px #c8a040, 0 0 48px rgba(200,160,64,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 12px #c8a040; } }
@keyframes hb-crowd { 0% { transform: scaleY(0.95); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes hb-pulse { 0% { opacity: 0.4; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.8); } }
@keyframes hb-fall { 0% { transform: translateY(-20px) rotate(0deg); } 100% { transform: translateY(100vh) rotate(720deg); } }

.scn-conduct-toward-enemies {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 40%, #a08060 100%),
              radial-gradient(ellipse at 80% 40%, #fff8e8 0%, transparent 50%);
}
.scn-conduct-toward-enemies .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8c8b0 0%, #b09a80 100%);
}
.scn-conduct-toward-enemies .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4430 100%);
  border-radius: 20px 20px 8px 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-conduct-toward-enemies .map {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(135deg, #d4c8a0 0%, #bfb090 50%, #a89878 100%);
  border-radius: 4px; clip-path: polygon(0% 10%, 100% 0%, 95% 90%, 5% 100%);
  animation: cte-map 20s linear infinite;
}
.scn-conduct-toward-enemies .figure-argue1 {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cte-argue 3s ease-in-out infinite;
}
.scn-conduct-toward-enemies .figure-argue2 {
  position: absolute; bottom: 35%; right: 20%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1e14 0%, #120c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cte-argue 3s ease-in-out infinite reverse;
}
.scn-conduct-toward-enemies .map-marker {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  clip-path: polygon(50% 100%, 0% 40%, 20% 0%, 80% 0%, 100% 40%);
  animation: cte-mark 7s ease-in-out infinite alternate;
}
.scn-conduct-toward-enemies .lantern {
  position: absolute; top: 25%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #e0b080 0%, #c08040 100%);
  border-radius: 10px; box-shadow: 0 0 40px 8px #f0c060;
  animation: cte-lantern 5s ease-in-out infinite alternate;
}
.scn-conduct-toward-enemies .shadow-sharp {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(2px); animation: cte-shadow 6s ease-in-out infinite alternate;
}
@keyframes cte-map { 0% { background-position: 0 0; } 100% { background-position: 100% 100%; } }
@keyframes cte-argue { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cte-mark { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes cte-lantern { 0% { box-shadow: 0 0 30px 4px #f0c060; opacity: 0.8; } 50% { box-shadow: 0 0 80px 16px #f0c060; opacity: 1; } 100% { box-shadow: 0 0 30px 4px #f0c060; opacity: 0.8; } }
@keyframes cte-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

.scn-hellenes-vs-barbarians {
  background: linear-gradient(180deg, #e8f0f0 0%, #c0d0d8 40%, #90a8b8 100%),
              radial-gradient(ellipse at 20% 60%, #f0f8ff 0%, transparent 70%);
}
.scn-hellenes-vs-barbarians .bg-peace {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8e4e8 0%, #b8c8d0 100%);
}
.scn-hellenes-vs-barbarians .scroll {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #f0e4c8 0%, #d4c4a0 100%);
  border-radius: 0 0 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: hvb-unfurl 15s ease-in-out infinite alternate;
}
.scn-hellenes-vs-barbarians .figure-hellene {
  position: absolute; bottom: 20%; left: 25%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #c8d0d8 0%, #a0b0b8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hvb-bow 8s ease-in-out infinite;
}
.scn-hellenes-vs-barbarians .figure-barbarian {
  position: absolute; bottom: 20%; right: 25%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hvb-bow 8s ease-in-out infinite reverse;
}
.scn-hellenes-vs-barbarians .olive-branch {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #7a8a5a 0%, #5a6a3a 60%, transparent 80%);
  border-radius: 50% 50% 0 0;
  animation: hvb-sway 6s ease-in-out infinite alternate;
}
.scn-hellenes-vs-barbarians .light-glow {
  position: absolute; top: 0%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.3) 0%, transparent 60%);
  animation: hvb-light 10s ease-in-out infinite alternate;
}
.scn-hellenes-vs-barbarians .dove-silhouette {
  position: absolute; top: 5%; left: 40%; width: 20px; height: 16px;
  background: #c0d0d8;
  clip-path: polygon(50% 0%, 70% 40%, 100% 30%, 75% 60%, 85% 100%, 50% 75%, 15% 100%, 25% 60%, 0% 30%, 30% 40%);
  animation: hvb-fly 20s linear infinite;
}
@keyframes hvb-unfurl { 0% { transform: scaleY(0.5) translateY(20px); } 50% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(0.8) translateY(10px); } }
@keyframes hvb-bow { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hvb-sway { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes hvb-light { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes hvb-fly { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(30px) translateY(-10px) rotate(5deg); } 50% { transform: translateX(60px) translateY(0) rotate(0); } 75% { transform: translateX(30px) translateY(-5px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

.scn-injustice-as-strife {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a4 50%, #c4b894 100%), radial-gradient(ellipse at 50% 100%, #b0a080 0%, transparent 80%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-injustice-as-strife .bg-room { position:absolute; inset:0; background:linear-gradient(180deg, #e8dcc8 0%, #c4b894 100%); animation:ijs-bg 12s ease-in-out infinite alternate; }
.scn-injustice-as-strife .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background:linear-gradient(90deg, #a09070 0%, transparent 100%); box-shadow:inset -5px 0 10px rgba(0,0,0,.1); animation:ijs-wall 15s ease-in-out infinite alternate; }
.scn-injustice-as-strife .wall-right { position:absolute; top:0; right:0; width:20%; height:100%; background:linear-gradient(90deg, transparent 0%, #a09070 100%); box-shadow:inset 5px 0 10px rgba(0,0,0,.1); animation:ijs-wall 15s ease-in-out infinite alternate-reverse; }
.scn-injustice-as-strife .window { position:absolute; top:20%; left:35%; width:30%; height:40%; background:radial-gradient(ellipse at center, #fff6e0 0%, #f0e0c0 70%, #d0c0a0 100%); border-radius:10px; box-shadow:0 0 30px 10px #fff6e0; animation:ijs-window 5s ease-in-out infinite alternate; }
.scn-injustice-as-strife .figure-left { position:absolute; bottom:10%; left:15%; 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; animation:ijs-figure-left 2s ease-in-out infinite; }
.scn-injustice-as-strife .figure-center { position:absolute; bottom:10%; left:45%; width:45px; height:90px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:ijs-figure-center 1.5s ease-in-out infinite; }
.scn-injustice-as-strife .figure-right { position:absolute; bottom:10%; right:15%; width:35px; height:75px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:ijs-figure-right 2.5s ease-in-out infinite; }
.scn-injustice-as-strife .glow { position:absolute; top:20%; left:35%; width:30%; height:40%; background:radial-gradient(ellipse at center, rgba(255,246,224,.3) 0%, transparent 100%); animation:ijs-glow 3s ease-in-out infinite alternate; }
@keyframes ijs-bg { 0% { opacity:1; } 50% { opacity:.9; } 100% { opacity:1; } }
@keyframes ijs-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ijs-window { 0% { box-shadow: 0 0 20px 5px #fff6e0; } 50% { box-shadow: 0 0 40px 15px #fff6e0; } 100% { box-shadow: 0 0 20px 5px #fff6e0; } }
@keyframes ijs-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ijs-figure-center { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ijs-figure-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ijs-glow { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-tower-of-speculation {
  background: linear-gradient(180deg, #f5efe0 0%, #d8cfb8 100%), radial-gradient(ellipse at 50% 0%, #e8e0d0 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-tower-of-speculation .tower-wall { position:absolute; bottom:0; left:20%; right:20%; height:100%; background:linear-gradient(90deg, #b8a88a 0%, #d8c8a8 50%, #b8a88a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.1); animation:tos-wall 20s ease-in-out infinite alternate; }
.scn-tower-of-speculation .tower-stairs { position:absolute; bottom:0; left:30%; right:30%; height:60%; background:repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #c0b090 10px, #c0b090 11px); animation:tos-stairs 30s linear infinite; }
.scn-tower-of-speculation .tower-window { position:absolute; top:15%; left:30%; right:30%; height:30%; background:radial-gradient(ellipse at center, #fff6e0 0%, #d8cfb8 70%, transparent 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; box-shadow:0 0 40px 10px rgba(255,246,224,.5); animation:tos-window 8s ease-in-out infinite alternate; }
.scn-tower-of-speculation .figure { position:absolute; bottom:55%; left:48%; 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; animation:tos-figure 12s ease-in-out infinite; }
.scn-tower-of-speculation .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(255,255,255,.3) 100%); filter:blur(8px); animation:tos-mist 15s ease-in-out infinite alternate; }
.scn-tower-of-speculation .beam { position:absolute; top:0; left:40%; right:40%; height:100%; background:linear-gradient(180deg, rgba(255,246,224,.1) 0%, rgba(255,246,224,.05) 50%, transparent 100%); transform:rotate(5deg); animation:tos-beam 10s ease-in-out infinite alternate; }
@keyframes tos-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tos-stairs { 0% { background-position:0 0; } 50% { background-position:0 -10px; } 100% { background-position:0 -20px; } }
@keyframes tos-window { 0% { opacity:.8; box-shadow:0 0 20px 5px rgba(255,246,224,.3); } 50% { opacity:1; box-shadow:0 0 50px 15px rgba(255,246,224,.6); } 100% { opacity:.8; box-shadow:0 0 20px 5px rgba(255,246,224,.3); } }
@keyframes tos-figure { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tos-mist { 0% { opacity:.3; filter:blur(5px); } 50% { opacity:.6; filter:blur(10px); } 100% { opacity:.3; filter:blur(5px); } }
@keyframes tos-beam { 0% { transform:rotate(2deg); opacity:.4; } 50% { transform:rotate(6deg); opacity:.7; } 100% { transform:rotate(2deg); opacity:.4; } }

.scn-polemarchus-interrupts {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a4 100%), radial-gradient(ellipse at 50% 100%, #c0b090 0%, transparent 80%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-polemarchus-interrupts .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #e0d0b8 0%, #c0b090 100%); animation:pi-bg 10s ease-in-out infinite alternate; }
.scn-polemarchus-interrupts .table { position:absolute; bottom:0; left:20%; right:20%; height:40%; background:linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; box-shadow:0 -10px 20px rgba(0,0,0,.3); animation:pi-table 8s ease-in-out infinite; }
.scn-polemarchus-interrupts .cup { position:absolute; bottom:30%; left:45%; width:20px; height:20px; background:radial-gradient(circle, #d0c0a0 0%, #a09070 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.2); animation:pi-cup 4s ease-in-out infinite; }
.scn-polemarchus-interrupts .figure-adeimantus { position:absolute; bottom:20%; right:15%; width:40px; height:70px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:pi-figure-ade 3s ease-in-out infinite; }
.scn-polemarchus-interrupts .figure-polemarchus { position:absolute; bottom:20%; left:10%; width:45px; height:80px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:pi-figure-pole 2s ease-in-out infinite; }
.scn-polemarchus-interrupts .hand { position:absolute; bottom:25%; left:35%; width:15px; height:25px; background:linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius:40% 20% 40% 20%; transform:rotate(30deg); transform-origin:bottom; animation:pi-hand 1.5s ease-in-out infinite; }
.scn-polemarchus-interrupts .shadow { position:absolute; bottom:15%; left:20%; width:60px; height:10px; background:radial-gradient(ellipse at center, rgba(0,0,0,.2) 0%, transparent 100%); filter:blur(3px); animation:pi-shadow 2s ease-in-out infinite; }
@keyframes pi-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes pi-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes pi-cup { 0% { transform:translate(0,0) rotate(0); } 50% { transform:translate(2px,-1px) rotate(5deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes pi-figure-ade { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-3px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pi-figure-pole { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(5px) rotate(3deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pi-hand { 0% { transform:translate(0,0) rotate(30deg); } 50% { transform:translate(15px,-5px) rotate(20deg); } 100% { transform:translate(0,0) rotate(30deg); } }
@keyframes pi-shadow { 0% { opacity:.3; width:60px; } 50% { opacity:.5; width:80px; } 100% { opacity:.3; width:60px; } }

.scn-thrasymachus-joins {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a4 100%), radial-gradient(ellipse at 50% 100%, #c0b090 0%, transparent 80%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-thrasymachus-joins .room-bg { position:absolute; inset:0; background:linear-gradient(135deg, #e0d0b8 0%, #b8a88a 100%); animation:tj-bg 12s ease-in-out infinite alternate; }
.scn-thrasymachus-joins .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); box-shadow:inset 0 10px 20px rgba(0,0,0,.2); animation:tj-floor 10s ease-in-out infinite; }
.scn-thrasymachus-joins .figure-thrasymachus { position:absolute; bottom:15%; left:20%; width:50px; height:90px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tj-figure-thras 1.5s ease-in-out infinite; }
.scn-thrasymachus-joins .figure-socrates { position:absolute; bottom:15%; right:20%; width:40px; height:70px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tj-figure-soc 2s ease-in-out infinite; }
.scn-thrasymachus-joins .chair { position:absolute; bottom:5%; left:45%; width:30px; height:20px; background:linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius:10% 10% 20% 20%; transform:rotate(-15deg); transform-origin:bottom; animation:tj-chair 3s ease-in-out infinite; }
.scn-thrasymachus-joins .book { position:absolute; bottom:30%; left:50%; width:15px; height:20px; background:linear-gradient(180deg, #a08050 0%, #7a6040 100%); border-radius:5%; transform:rotate(45deg); animation:tj-book 1s ease-in-out infinite; }
.scn-thrasymachus-joins .shadow { position:absolute; bottom:0; left:10%; width:80%; height:10px; background:radial-gradient(ellipse at center, rgba(0,0,0,.3) 0%, transparent 100%); filter:blur(5px); animation:tj-shadow 2s ease-in-out infinite; }
@keyframes tj-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes tj-floor { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes tj-figure-thras { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(8px) rotate(5deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes tj-figure-soc { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-10px) rotate(-4deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes tj-chair { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-25deg) translateY(-5px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes tj-book { 0% { transform:rotate(45deg) translateY(0); } 25% { transform:rotate(30deg) translateY(-10px); } 50% { transform:rotate(60deg) translateY(-20px); } 75% { transform:rotate(45deg) translateY(-10px); } 100% { transform:rotate(45deg) translateY(0); } }
@keyframes tj-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-soul-three-parts-pleasures {
  background:
    linear-gradient(135deg, #1a1412 0%, #2e2420 40%, #0f0c0b 100%),
    radial-gradient(circle at 50% 60%, #3a2c26 0%, transparent 70%);
}
.scn-soul-three-parts-pleasures .wall-left {
  position: absolute; inset: 0 55% 35% 0;
  background: linear-gradient(90deg, #1a1412 0%, #2a1f1b 100%);
  border-radius: 0 20% 0 0;
  animation: wall-pulse-stpp 12s ease-in-out infinite alternate;
}
.scn-soul-three-parts-pleasures .wall-right {
  position: absolute; inset: 0 0 35% 55%;
  background: linear-gradient(270deg, #1a1412 0%, #2a1f1b 100%);
  border-radius: 20% 0 0 0;
  animation: wall-pulse-stpp 12s ease-in-out infinite alternate-reverse;
}
.scn-soul-three-parts-pleasures .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(180deg, #3d2c24 0%, #1f1512 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.7), inset 0 4px 10px rgba(80,50,40,0.3);
  transform: perspective(400px) rotateX(5deg);
}
.scn-soul-three-parts-pleasures .candle-base {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4538 0%, #2b1f1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-soul-three-parts-pleasures .candle-stem {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5548 0%, #3a2c26 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-soul-three-parts-pleasures .flame {
  position: absolute; bottom: 62%; width: 12px; height: 22px;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 50% 30%, #ffd88a 0%, #e08030 50%, #802010 100%);
  box-shadow: 0 0 30px 8px rgba(255, 160, 60, 0.5);
}
.scn-soul-three-parts-pleasures .flame-1 {
  left: 50%; transform: translateX(-30px);
  animation: flame-drift-stpp 1.8s ease-in-out infinite;
}
.scn-soul-three-parts-pleasures .flame-2 {
  left: 50%; transform: translateX(30px);
  animation: flame-drift-stpp 2.2s ease-in-out infinite 0.4s;
}
.scn-soul-three-parts-pleasures .flame-3 {
  left: 50%; transform: translateX(0px);
  animation: flame-drift-stpp 1.5s ease-in-out infinite 0.8s;
}
.scn-soul-three-parts-pleasures .shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: shadow-sway-stpp 8s ease-in-out infinite alternate;
}
@keyframes wall-pulse-stpp {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes flame-drift-stpp {
  0% { transform: translateX(-30px) scaleY(1) scaleX(1) rotate(0deg); opacity: 0.9; }
  30% { transform: translateX(-28px) scaleY(1.15) scaleX(0.9) rotate(2deg); opacity: 1; }
  60% { transform: translateX(-32px) scaleY(0.9) scaleX(1.1) rotate(-2deg); opacity: 0.85; }
  100% { transform: translateX(-30px) scaleY(1) scaleX(1) rotate(0deg); opacity: 0.9; }
}
@keyframes shadow-sway-stpp {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.1); }
  100% { transform: translateX(-5px) scaleX(0.95); }
}

.scn-three-pleasures-comparison {
  background:
    linear-gradient(180deg, #1c1816 0%, #2b221f 50%, #0e0b0a 100%),
    radial-gradient(ellipse at 50% 70%, #2b221f 0%, transparent 60%);
}
.scn-three-pleasures-comparison .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #3a2c26 0%, transparent 70%);
  animation: ambient-pulse-tpc 15s ease-in-out infinite alternate;
}
.scn-three-pleasures-comparison .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3d2c24 0%, #1f1512 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 -8px 25px rgba(0,0,0,0.6), inset 0 4px 15px rgba(70,40,30,0.4);
  transform: perspective(500px) rotateX(10deg);
}
.scn-three-pleasures-comparison .figure {
  position: absolute; bottom: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1c1816 0%, #0a0807 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.5);
}
.scn-three-pleasures-comparison .figure-left {
  left: 25%; transform: translateX(-50%);
  border-radius: 40% 30% 40% 30% / 60% 50% 50% 40%;
  animation: figure-coin-tpc 5s ease-in-out infinite;
}
.scn-three-pleasures-comparison .figure-center {
  left: 50%; transform: translateX(-50%);
  animation: figure-breathe-tpc 6s ease-in-out infinite 0.5s;
}
.scn-three-pleasures-comparison .figure-right {
  left: 75%; transform: translateX(-50%);
  border-radius: 30% 40% 30% 40% / 50% 60% 40% 50%;
  animation: figure-read-tpc 7s ease-in-out infinite 1s;
}
.scn-three-pleasures-comparison .lamp-base {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4538 0%, #2b1f1a 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-three-pleasures-comparison .lamp-glow {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(255, 190, 100, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: lamp-pulse-tpc 4s ease-in-out infinite alternate;
}
.scn-three-pleasures-comparison .lamp-flame {
  position: absolute; bottom: 46%; left: 50%; width: 10px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #d07030 60%, #801010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 25px 6px rgba(255, 160, 60, 0.6);
  animation: flame-flicker-tpc 1.6s ease-in-out infinite;
}
@keyframes ambient-pulse-tpc {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; }
}
@keyframes figure-breathe-tpc {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes figure-coin-tpc {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-48%) translateY(-2px) rotate(-3deg); }
  70% { transform: translateX(-52%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes figure-read-tpc {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  40% { transform: translateX(-50%) translateY(-2px) rotate(4deg); }
  80% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes lamp-pulse-tpc {
  0% { box-shadow: 0 0 30px 8px rgba(255, 190, 100, 0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 15px rgba(255, 190, 100, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(255, 190, 100, 0.35); opacity: 0.85; }
}
@keyframes flame-flicker-tpc {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  40% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9); opacity: 1; }
  60% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); opacity: 0.85; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
}

.scn-philosopher-as-judge {
  background:
    linear-gradient(90deg, #131011 0%, #2a201e 50%, #131011 100%),
    radial-gradient(circle at 50% 50%, #2a201e 0%, transparent 70%);
}
.scn-philosopher-as-judge .bg-desk {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #1f1512 0%, #0a0807 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  transform: perspective(600px) rotateX(8deg);
}
.scn-philosopher-as-judge .desk-top {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a352a 0%, #2b1f1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.6), inset 0 2px 5px rgba(80,50,40,0.3);
}
.scn-philosopher-as-judge .scale-pillar {
  position: absolute; bottom: 36%; left: 50%; width: 12px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4538 0%, #2b1f1a 100%);
  border-radius: 4px 4px 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-philosopher-as-judge .scale-arm {
  position: absolute; bottom: 64%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(90deg, #5a4538 0%, #8a6a55 50%, #5a4538 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: center center;
  animation: scale-tilt-paj 6s ease-in-out infinite;
}
.scn-philosopher-as-judge .scale {
  position: absolute; bottom: 58%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #6a5548 0%, #3a2c26 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-philosopher-as-judge .scale-left {
  left: 22%;
  animation: scale-bounce-left-paj 6s ease-in-out infinite;
}
.scn-philosopher-as-judge .scale-right {
  right: 22%;
  animation: scale-bounce-right-paj 6s ease-in-out infinite;
}
.scn-philosopher-as-judge .quill {
  position: absolute; bottom: 30%; right: 18%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #d4c8b8 0%, #8a7a6a 40%, #2b1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: quill-stroke-paj 5s ease-in-out infinite;
}
.scn-philosopher-as-judge .inkwell {
  position: absolute; bottom: 30%; right: 25%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #2a201e 0%, #0a0807 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-philosopher-as-judge .candle {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #d4c8b8 0%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-philosopher-as-judge .candle::after {
  content: ''; position: absolute; bottom: 100%; left: 50%; width: 8px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd88a 0%, #d07030 50%, #802010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 25px 6px rgba(255, 160, 60, 0.6);
  animation: flame-flicker-paj 1.8s ease-in-out infinite;
}
@keyframes scale-tilt-paj {
  0% { transform: rotate(0deg); }
  40% { transform: rotate(5deg); }
  60% { transform: rotate(-4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes scale-bounce-left-paj {
  0% { transform: translateY(0); }
  40% { transform: translateY(-4px); }
  60% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes scale-bounce-right-paj {
  0% { transform: translateY(0); }
  40% { transform: translateY(4px); }
  60% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes quill-stroke-paj {
  0% { transform: rotate(-15deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-4px); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  75% { transform: rotate(10deg) translateY(-6px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes flame-flicker-paj {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  40% { transform: translateX(-50%) scaleY(1.2) scaleX(0.85); opacity: 1; }
  60% { transform: translateX(-50%) scaleY(0.95) scaleX(1.1); opacity: 0.85; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
}

.scn-pleasure-pain-neutral {
  background:
    linear-gradient(180deg, #19212b 0%, #2a2f38 40%, #0f1217 100%),
    radial-gradient(ellipse at 50% 20%, #3a4455 0%, transparent 70%);
}
.scn-pleasure-pain-neutral .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141a22 0%, #2a2f38 50%, #0f1217 100%);
  animation: wall-breathe-ppn 15s ease-in-out infinite alternate;
}
.scn-pleasure-pain-neutral .window-frame {
  position: absolute; top: 10%; right: 10%; width: 35%; height: 45%;
  border: 10px solid #1c222b;
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 10px 30px rgba(0,0,0,0.5);
  background: linear-gradient(180deg, #2a3a4a 0%, #1a222a 100%);
  overflow: hidden;
}
.scn-pleasure-pain-neutral .moon {
  position: absolute; top: 18%; right: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #e8f0f8 0%, #a0b8cc 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200, 220, 255, 0.3), 0 0 80px 20px rgba(200, 220, 255, 0.1);
  animation: moon-float-ppn 12s ease-in-out infinite alternate;
}
.scn-pleasure-pain-neutral .chair-back {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #2b221f 0%, #1a1412 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateY(10deg);
}
.scn-pleasure-pain-neutral .chair-seat {
  position: absolute; bottom: 18%; left: 22%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #2b221f 0%, #1a1412 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateY(10deg);
}
.scn-pleasure-pain-neutral .figure {
  position: absolute; bottom: 18%; left: 22%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0807 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: figure-rest-ppn 8s ease-in-out infinite;
}
.scn-pleasure-pain-neutral .table {
  position: absolute; bottom: 12%; right: 15%; width: 100px; height: 16px;
  background: linear-gradient(180deg, #3a2c26 0%, #1f1512 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-pleasure-pain-neutral .candle {
  position: absolute; bottom: 20%; right: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4c8b8 0%, #8a7a6a 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-pleasure-pain-neutral .candle-glow {
  position: absolute; bottom: 25%; right: 32%; width: 50px; height: 60px;
  background: radial-gradient(circle, rgba(255, 190, 100, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: candle-pulse-ppn 4s ease-in-out infinite alternate;
}
.scn-pleasure-pain-neutral .candle::after {
  content: ''; position: absolute; bottom: 100%; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd88a 0%, #d07030 50%, #802010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 5px rgba(255, 160, 60, 0.5);
  animation: flame-dance-ppn 2s ease-in-out infinite;
}
@keyframes wall-breathe-ppn {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes moon-float-ppn {
  0% { transform: translateY(0) scale(1.0); box-shadow: 0 0 30px 8px rgba(200, 220, 255, 0.2); }
  50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 50px 12px rgba(200, 220, 255, 0.35); }
  100% { transform: translateY(2px) scale(0.98); box-shadow: 0 0 40px 10px rgba(200, 220, 255, 0.25); }
}
@keyframes figure-rest-ppn {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); }
  30% { transform: translateX(2px) translateY(4px) rotate(2deg) scale(1.01); }
  60% { transform: translateX(-1px) translateY(2px) rotate(-1deg) scale(0.99); }
  100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); }
}
@keyframes candle-pulse-ppn {
  0% { box-shadow: 0 0 20px 5px rgba(255, 190, 100, 0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 10px rgba(255, 190, 100, 0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(255, 190, 100, 0.25); opacity: 0.85; }
}
@keyframes flame-dance-ppn {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  40% { transform: translateX(-48%) scaleY(1.15) scaleX(0.9); opacity: 1; }
  80% { transform: translateX(-52%) scaleY(0.95) scaleX(1.1); opacity: 0.85; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
}

.scn-waxen-tablet {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1e1410 100%),
    radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-waxen-tablet .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1e12 100%);
  animation: wx-wall 15s ease-in-out infinite alternate;
}
.scn-waxen-tablet .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #5a4030 0%, #4a3222 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-waxen-tablet .tablet {
  position: absolute; bottom: 20%; left: 35%; width: 22%; height: 18%;
  background: linear-gradient(135deg, #7a6a5a 0%, #6a5a4a 50%, #5a4a3a 100%);
  border-radius: 6% 6% 6% 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,255,0.1);
  transform: rotate(-2deg);
  animation: wx-tablet 10s ease-in-out infinite;
}
.scn-waxen-tablet .stylus {
  position: absolute; bottom: 22%; left: 58%; width: 10%; height: 4%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 40% 40%;
  transform: rotate(35deg);
  transform-origin: left center;
  animation: wx-stylus 8s ease-in-out infinite alternate;
}
.scn-waxen-tablet .candle {
  position: absolute; bottom: 28%; left: 25%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 60%, #a08060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,200,150,0.3);
  animation: wx-candle 4s ease-in-out infinite alternate;
}
.scn-waxen-tablet .glow {
  position: absolute; bottom: 30%; left: 24%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, rgba(240,200,150,0.25) 0%, transparent 70%);
  filter: blur(12px);
  pointer-events: none;
  animation: wx-glow 4s ease-in-out infinite alternate;
}
.scn-waxen-tablet .shadow {
  position: absolute; bottom: 16%; left: 32%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: wx-shadow 12s ease-in-out infinite;
}

@keyframes wx-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes wx-tablet {
  0%, 100% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(-1deg) scale(1.01); }
}
@keyframes wx-stylus {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(40deg) translateY(-2px); }
  100% { transform: rotate(35deg) translateY(0); }
}
@keyframes wx-candle {
  0% { box-shadow: 0 0 15px 5px rgba(240,200,150,0.2); }
  50% { box-shadow: 0 0 25px 12px rgba(240,200,150,0.4); }
  100% { box-shadow: 0 0 18px 8px rgba(240,200,150,0.3); }
}
@keyframes wx-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes wx-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
}

/* ----- scene 2: self-education-thousand-things ----- */

.scn-self-education-thousand-things {
  background: 
    linear-gradient(180deg, #2a2220 0%, #3a3028 40%, #4a3a30 100%),
    radial-gradient(ellipse at 70% 40%, #5a4a3a 0%, transparent 60%);
}
.scn-self-education-thousand-things .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a3028 0%, #2a2220 100%);
  border-bottom: 2px solid #5a4a3a;
  animation: se-room 20s ease-in-out infinite alternate;
}
.scn-self-education-thousand-things .bookshelf {
  position: absolute; bottom: 15%; left: 10%; right: 60%; top: 20%;
  background: repeating-linear-gradient(90deg, #4a3a30 0px, #4a3a30 8px, #3a2a20 8px, #3a2a20 16px);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: se-shelf 30s ease-in-out infinite;
}
.scn-self-education-thousand-things .figure {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: se-figure 8s ease-in-out infinite;
}
.scn-self-education-thousand-things .book-stack {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 40%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: se-stack 12s ease-in-out infinite alternate;
}
.scn-self-education-thousand-things .mirror {
  position: absolute; bottom: 40%; left: 25%; width: 14%; height: 22%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 4px #5a4a3a, 0 4px 12px rgba(0,0,0,0.3);
  animation: se-mirror 15s ease-in-out infinite;
}
.scn-self-education-thousand-things .light-ray {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(240,220,180,0.12) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: se-ray 25s ease-in-out infinite alternate;
}
.scn-self-education-thousand-things .float-object {
  position: absolute; top: 15%; left: 65%; width: 6%; height: 6%;
  background: radial-gradient(circle, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  animation: se-float 18s ease-in-out infinite;
}

@keyframes se-room {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes se-shelf {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes se-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
}
@keyframes se-stack {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes se-mirror {
  0%, 100% { box-shadow: 0 0 0 4px #5a4a3a, 0 4px 12px rgba(0,0,0,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 0 6px #6a5a4a, 0 6px 20px rgba(0,0,0,0.4); transform: scale(1.02); }
}
@keyframes se-ray {
  0% { transform: translateX(-10px) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(5px) rotate(1deg); opacity: 1; }
  100% { transform: translateX(-5px) rotate(0deg); opacity: 0.7; }
}
@keyframes se-float {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-12px) rotate(10deg); }
  66% { transform: translateY(-6px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-injure-anyone\? {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1f150e 40%, #140d0a 100%),
    radial-gradient(ellipse at 30% 20%, #3a2a1e 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-injure-anyone\? .wall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a120c 0%, #2a1e14 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.8);
  animation: ia-wall 20s ease-in-out infinite alternate;
}
.scn-injure-anyone\? .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.9);
}
.scn-injure-anyone\? .stall {
  position: absolute;
  bottom: 30%; left: 15%; width: 45%; height: 55%;
  background: linear-gradient(90deg, #3a2a1e 0%, #2a1a10 100%);
  border: 2px solid #1a0e0a;
  border-radius: 4px 4px 20% 20% / 4px 4px 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: ia-stall 15s ease-in-out infinite alternate;
}
.scn-injure-anyone\? .horse-body {
  position: absolute;
  bottom: 25%; left: 22%; width: 90px; height: 50px;
  background: radial-gradient(ellipse at 40% 30%, #5a3a24 0%, #3a2012 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform-origin: 30% 50%;
  animation: ia-horse 8s ease-in-out infinite;
}
.scn-injure-anyone\? .horse-neck {
  position: absolute;
  bottom: 45%; left: 53%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a2e1a 0%, #3a2012 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: 50% 0%;
  animation: ia-neck 8s ease-in-out infinite;
}
.scn-injure-anyone\? .horse-leg {
  position: absolute;
  bottom: 12%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #3a2012 0%, #2a140a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: 50% 0%;
  animation: ia-leg 2s ease-in-out infinite alternate;
}
.scn-injure-anyone\? .figure {
  position: absolute;
  bottom: 18%; left: 58%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ia-figure 6s ease-in-out infinite;
}
.scn-injure-anyone\? .lantern {
  position: absolute;
  bottom: 30%; left: 70%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffc280 0%, #b06030 80%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,180,60,0.5);
  animation: ia-lantern 4s ease-in-out infinite alternate;
}
.scn-injure-anyone\? .flicker {
  position: absolute;
  top: 18%; left: 64%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,180,60,0.08) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ia-flicker 3s ease-in-out infinite alternate;
}
@keyframes ia-wall {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes ia-stall {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes ia-horse {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ia-neck {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ia-leg {
  0% { transform: rotate(0deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-4px); }
}
@keyframes ia-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes ia-lantern {
  0% { box-shadow: 0 0 20px 6px rgba(255,180,60,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(255,180,60,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,180,60,0.45); opacity: 0.85; }
}
@keyframes ia-flicker {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.4; }
}

.scn-physician-and-pilot {
  background: 
    linear-gradient(180deg, #2a2430 0%, #1a1620 40%, #100c12 100%),
    radial-gradient(ellipse at 40% 30%, #3a3040 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-physician-and-pilot .bg-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1a24 0%, #2a2430 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
  box-shadow: inset 0 6px 24px rgba(0,0,0,0.7);
  animation: pp-wall 18s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .table {
  position: absolute;
  bottom: 20%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #3a2e3c 0%, #2a1e28 100%);
  border-radius: 4px 4px 20% 20% / 4px 4px 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8), inset 0 2px 4px rgba(255,255,255,0.05);
  animation: pp-table 12s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .book {
  position: absolute;
  bottom: 34%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 2px 8px 6px / 4px 2px 6px 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: pp-book 8s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .physician {
  position: absolute;
  bottom: 22%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pp-phys 6s ease-in-out infinite;
}
.scn-physician-and-pilot .pilot {
  position: absolute;
  bottom: 22%; right: 22%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pp-pilot 7s ease-in-out infinite;
}
.scn-physician-and-pilot .chart {
  position: absolute;
  bottom: 28%; left: 48%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #5a4a40 0%, #3a2e28 100%);
  border-radius: 2px 10px 20% 10% / 2px 10px 15% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(4deg);
  animation: pp-chart 10s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .candle {
  position: absolute;
  bottom: 40%; left: 15%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.4);
  animation: pp-candle 4s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .candle-glow {
  position: absolute;
  top: 12%; left: 10%; width: 80px; height: 80px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.06) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pp-glow 3s ease-in-out infinite alternate;
}
.scn-physician-and-pilot .shadow {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: pp-shadow 15s ease-in-out infinite alternate;
}
@keyframes pp-wall {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes pp-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes pp-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes pp-phys {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  75% { transform: translateX(6px) rotate(1deg); }
  100% { transform: translateX(8px) rotate(0); }
}
@keyframes pp-pilot {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(-4px) rotate(1deg); }
  75% { transform: translateX(-6px) rotate(-1deg); }
  100% { transform: translateX(-8px) rotate(0); }
}
@keyframes pp-chart {
  0% { transform: rotate(4deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(5deg) scale(0.98); }
}
@keyframes pp-candle {
  0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 10px 3px rgba(255,200,100,0.3); }
  50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 18px 6px rgba(255,200,100,0.5); }
  100% { transform: scaleY(0.95) rotate(2deg); box-shadow: 0 0 12px 4px rgba(255,200,100,0.35); }
}
@keyframes pp-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}
@keyframes pp-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-other-corruptions {
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1510 50%, #0f0a08 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-other-corruptions .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #2e2218 0%, #1a120e 80%); animation: oc-dimmer 15s ease-in-out infinite alternate;
}
.scn-other-corruptions .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%; background: linear-gradient(180deg, #3e2a1c 0%, #261a12 100%); border-radius: 2px 2px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6); animation: oc-bob 8s ease-in-out infinite;
}
.scn-other-corruptions .lamp-shade {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 30px; background: linear-gradient(135deg, #7a5840 0%, #4a3020 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform: rotate(-5deg); box-shadow: 0 0 15px rgba(200,140,80,0.3); animation: oc-sway 6s ease-in-out infinite;
}
.scn-other-corruptions .lamp-glow {
  position: absolute; bottom: 26%; left: 22%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(240,180,80,0.25) 0%, rgba(240,180,80,0.1) 40%, transparent 70%); border-radius: 50%; animation: oc-flicker 3s ease-in-out infinite alternate;
}
.scn-other-corruptions .book {
  position: absolute; bottom: 12%; left: 30%; width: 60px; height: 20px; background: linear-gradient(180deg, #a08060 0%, #705038 100%); border-radius: 1px 1px 4px 4px; transform: skewX(-10deg); box-shadow: 0 3px 8px rgba(0,0,0,0.4); animation: oc-page 12s ease-in-out infinite;
}
.scn-other-corruptions .figure {
  position: absolute; bottom: 14%; left: 60%; width: 28px; height: 60px; background: linear-gradient(180deg, #1c1410 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oc-breathe 7s ease-in-out infinite;
}
.scn-other-corruptions .curtain {
  position: absolute; top: 0; right: 0; width: 40px; height: 100%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius: 0 0 0 30%; filter: blur(2px); opacity: 0.6; animation: oc-drift 20s ease-in-out infinite alternate;
}
@keyframes oc-dimmer { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes oc-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes oc-sway { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes oc-flicker { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes oc-page { 0%, 100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-10deg) translateY(-2px); } }
@keyframes oc-breathe { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes oc-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-8px); } }

.scn-bad-imitations {
  background: linear-gradient(180deg, #2e2216 0%, #1a120c 50%, #0c0806 100%), radial-gradient(ellipse at 50% 40%, #3a2a1c 0%, transparent 70%);
}
.scn-bad-imitations .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, #241c14 0%, #120c08 80%); animation: bi-dimmer 12s ease-in-out infinite alternate;
}
.scn-bad-imitations .desk {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 20%; background: linear-gradient(180deg, #4a342a 0%, #2a1e16 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5); animation: bi-bob 9s ease-in-out infinite;
}
.scn-bad-imitations .mirror {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 50px; background: linear-gradient(135deg, #b0a090 0%, #706050 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4), 0 0 20px rgba(200,180,150,0.2); transform: rotate(3deg); animation: bi-shimmer 5s ease-in-out infinite alternate;
}
.scn-bad-imitations .figure {
  position: absolute; bottom: 10%; right: 15%; width: 30px; height: 65px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bi-breathe 8s ease-in-out infinite;
}
.scn-bad-imitations .paper {
  position: absolute; bottom: 14%; left: 20%; width: 50px; height: 15px; background: #c8b89a; border-radius: 1px; transform: skewX(-5deg); opacity: 0.9; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: bi-float 15s ease-in-out infinite alternate;
}
.scn-bad-imitations .inkwell {
  position: absolute; bottom: 12%; left: 35%; width: 12px; height: 18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: bi-stand 6s ease-in-out infinite;
}
.scn-bad-imitations .shadow {
  position: absolute; bottom: 8%; left: 10%; width: 60px; height: 8px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px); animation: bi-shad 10s ease-in-out infinite alternate;
}
@keyframes bi-dimmer { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes bi-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bi-shimmer { 0% { opacity: 0.6; transform: rotate(3deg) scale(0.98); } 50% { opacity: 1; transform: rotate(3.5deg) scale(1.02); } 100% { opacity: 0.7; transform: rotate(3deg) scale(1); } }
@keyframes bi-breathe { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes bi-float { 0% { transform: skewX(-5deg) translateY(0); } 100% { transform: skewX(-5deg) translateY(-3px); } }
@keyframes bi-stand { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bi-shad { 0% { transform: scaleX(1); opacity: 0.4; } 100% { transform: scaleX(0.9); opacity: 0.2; } }

.scn-young-men-unsettled {
  background: 
    linear-gradient(180deg, #2a2420 0%, #3a2e28 40%, #4a3a30 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-young-men-unsettled .ymu-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a2420 0%, #3a2e28 60%, #4a3a30 100%);
  opacity: 0.9;
}
.scn-young-men-unsettled .ymu-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
}
.scn-young-men-unsettled .ymu-desk {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 50%;
  height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-young-men-unsettled .ymu-lamp {
  position: absolute;
  bottom: 26%;
  left: 35%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08840 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255, 208, 128, 0.5), 0 0 80px 40px rgba(255, 208, 128, 0.2);
  animation: ymu-lamp 6s ease-in-out infinite alternate;
}
.scn-young-men-unsettled .ymu-figure {
  position: absolute;
  bottom: 14%;
  left: 30%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ymu-figure 8s ease-in-out infinite;
}
.scn-young-men-unsettled .ymu-books {
  position: absolute;
  bottom: 16%;
  left: 42%;
  width: 30px;
  height: 20px;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
}
.scn-young-men-unsettled .ymu-window {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 80px;
  height: 100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3);
  opacity: 0.7;
  animation: ymu-window 12s ease-in-out infinite alternate;
}
.scn-young-men-unsettled .ymu-dust {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 4px;
  height: 4px;
  background: rgba(255, 220, 180, 0.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: ymu-dust 20s linear infinite;
}
@keyframes ymu-lamp {
  0% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 30px 15px rgba(255, 208, 128, 0.4); }
  50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 50px 30px rgba(255, 208, 128, 0.6); }
  100% { opacity: 0.85; transform: scale(0.97); box-shadow: 0 0 35px 18px rgba(255, 208, 128, 0.45); }
}
@keyframes ymu-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(1px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes ymu-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 0 transparent; }
  50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.4), 0 0 20px 5px rgba(100,150,200,0.1); }
  100% { opacity: 0.65; box-shadow: inset 0 0 25px rgba(0,0,0,0.5), 0 0 10px transparent; }
}
@keyframes ymu-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-100px) translateX(30px); opacity: 0; }
}

.scn-evils-of-oligarchy {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4e 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%);
}
.scn-evils-of-oligarchy .evi-sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4e 100%);
  animation: evi-sky 20s ease-in-out infinite alternate;
}
.scn-evils-of-oligarchy .evi-sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-evils-of-oligarchy .evi-ship {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 120px;
  height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 60% 20% 0 0 / 100% 30% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: evi-ship 4s ease-in-out infinite alternate;
}
.scn-evils-of-oligarchy .evi-mast {
  position: absolute;
  bottom: 50%;
  left: 35%;
  width: 6px;
  height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: evi-mast 4s ease-in-out infinite alternate;
}
.scn-evils-of-oligarchy .evi-sail {
  position: absolute;
  bottom: 55%;
  left: 32%;
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #3a2a1e 0%, #1a100c 100%);
  border-radius: 0 60% 0 40% / 0 80% 0 20%;
  clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 60%);
  transform-origin: top left;
  animation: evi-sail 4s ease-in-out infinite alternate;
}
.scn-evils-of-oligarchy .evi-wave-a {
  position: absolute;
  bottom: 18%;
  left: 0;
  right: 0;
  height: 20px;
  background: linear-gradient(90deg, transparent 0%, #1a2a3a 20%, #2a3a4e 50%, #1a2a3a 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: evi-wave-a 8s linear infinite;
}
.scn-evils-of-oligarchy .evi-wave-b {
  position: absolute;
  bottom: 12%;
  left: 0;
  right: 0;
  height: 15px;
  background: linear-gradient(90deg, transparent 0%, #1a3a5a 20%, #2a4a6e 50%, #1a3a5a 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: evi-wave-b 10s linear infinite;
  animation-delay: -3s;
}
.scn-evils-of-oligarchy .evi-lightning {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 4px;
  height: 60px;
  background: linear-gradient(180deg, #ffffff 0%, #8a9aff 40%, transparent 100%);
  border-radius: 2px;
  filter: blur(1px);
  opacity: 0;
  animation: evi-lightning-key 10s ease-in-out infinite;
}
@keyframes evi-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes evi-ship {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes evi-mast {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes evi-sail {
  0% { transform: skewX(0deg) scaleX(1); }
  50% { transform: skewX(5deg) scaleX(0.95); }
  100% { transform: skewX(0deg) scaleX(1); }
}
@keyframes evi-wave-a {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(20px); }
}
@keyframes evi-wave-b {
  0% { transform: translateX(30px); }
  100% { transform: translateX(-30px); }
}
@keyframes evi-lightning-key {
  0% { opacity: 0; }
  2% { opacity: 1; }
  4% { opacity: 0; }
  6% { opacity: 0.8; }
  8% { opacity: 0; }
  100% { opacity: 0; }
}

/* Scene: philosopher-statesman-in-history */
.scn-philosopher-statesman-in-history {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c1f1a 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-philosopher-statesman-in-history .bg {
  position: absolute;
  inset: 0;
}
.scn-philosopher-statesman-in-history .bookshelf {
  position: absolute;
  left: 6%;
  top: 15%;
  width: 22%;
  height: 70%;
  background: repeating-linear-gradient(
    0deg,
    #3a2a1a 0px,
    #3a2a1a 4px,
    #2a1a0a 4px,
    #2a1a0a 6px,
    #4a3a2a 6px,
    #4a3a2a 8px
  );
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.6), 4px 0 8px rgba(0,0,0,0.4);
  animation: ps1-shelfhaze 18s ease-in-out infinite alternate;
}
.scn-philosopher-statesman-in-history .desk {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 45%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(8deg);
}
.scn-philosopher-statesman-in-history .figure {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 14%;
  height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps1-figurebreathe 6s ease-in-out infinite;
}
.scn-philosopher-statesman-in-history .lamp {
  position: absolute;
  bottom: 36%;
  left: 42%;
  width: 4%;
  height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 50%;
  box-shadow:
    0 0 20px 8px #c09050,
    0 0 40px 16px rgba(192,144,80,0.5),
    0 0 80px 30px rgba(192,144,80,0.3);
  animation: ps1-lampglow 4s ease-in-out infinite alternate;
}
.scn-philosopher-statesman-in-history .page {
  position: absolute;
  bottom: 15%;
  left: 44%;
  width: 10%;
  height: 7%;
  background: linear-gradient(180deg, #f5eac0 0%, #d4c8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: ps1-pageflutter 8s ease-in-out infinite;
}
@keyframes ps1-shelfhaze {
  0%   { opacity: 0.85; transform: translateX(0); }
  50%  { opacity: 1; transform: translateX(-2px); }
  100% { opacity: 0.9; transform: translateX(0); }
}
@keyframes ps1-figurebreathe {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ps1-lampglow {
  0%   { box-shadow: 0 0 15px 5px #c09050, 0 0 30px 12px rgba(192,144,80,0.4), 0 0 60px 20px rgba(192,144,80,0.2); opacity: 0.9; }
  50%  { box-shadow: 0 0 28px 10px #e0b070, 0 0 50px 20px rgba(224,176,112,0.6), 0 0 100px 40px rgba(224,176,112,0.3); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #c09050, 0 0 35px 14px rgba(192,144,80,0.45), 0 0 70px 25px rgba(192,144,80,0.2); opacity: 0.92; }
}
@keyframes ps1-pageflutter {
  0%   { transform: skewX(0deg) rotate(0deg); }
  25%  { transform: skewX(2deg) rotate(1deg); }
  50%  { transform: skewX(-1deg) rotate(-0.5deg); }
  75%  { transform: skewX(1.5deg) rotate(0.5deg); }
  100% { transform: skewX(0deg) rotate(0deg); }
}

/* Scene: unpopularity-of-philosopher-statesman */
.scn-unpopularity-of-philosopher-statesman {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a1f1a 40%, #1a0f0a 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a2a 0%, transparent 60%);
}
.scn-unpopularity-of-philosopher-statesman .bg {
  position: absolute;
  inset: 0;
}
.scn-unpopularity-of-philosopher-statesman .wall {
  position: absolute;
  top: 0;
  right: 20%;
  width: 60%;
  height: 100%;
  background: repeating-linear-gradient(
    90deg,
    #2a201a 0px,
    #2a201a 3px,
    #1a120c 3px,
    #1a120c 5px
  );
  opacity: 0.3;
  animation: ps2-wallshift 25s ease-in-out infinite;
}
.scn-unpopularity-of-philosopher-statesman .door {
  position: absolute;
  bottom: 10%;
  left: 25%;
  width: 20%;
  height: 55%;
  background: linear-gradient(180deg, #3a2e1e 0%, #1a140a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,0.6), inset 0 0 8px rgba(0,0,0,0.8);
  animation: ps2-doorcreak 12s ease-in-out infinite;
}
.scn-unpopularity-of-philosopher-statesman .figure {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 12%;
  height: 35%;
  background: linear-gradient(180deg, #1a182a 0%, #0a0812 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps2-figuresway 7s ease-in-out infinite;
}
.scn-unpopularity-of-philosopher-statesman .lamp {
  position: absolute;
  bottom: 38%;
  left: 38%;
  width: 5%;
  height: 5%;
  background: radial-gradient(circle, #e0b070 0%, #a07030 80%);
  border-radius: 50%;
  box-shadow:
    0 0 15px 6px #b08040,
    0 0 30px 12px rgba(176,128,64,0.5),
    0 0 60px 20px rgba(176,128,64,0.3);
  animation: ps2-lampflicker 3s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .shadow {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 40%;
  height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: ps2-shadowsize 5s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(0deg, #1a120c 0%, #2a1e14 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
@keyframes ps2-wallshift {
  0%   { opacity: 0.25; }
  50%  { opacity: 0.45; }
  100% { opacity: 0.35; }
}
@keyframes ps2-doorcreak {
  0%   { transform: rotateY(0deg); }
  25%  { transform: rotateY(2deg); }
  50%  { transform: rotateY(0deg); }
  75%  { transform: rotateY(-2deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes ps2-figuresway {
  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 ps2-lampflicker {
  0%   { box-shadow: 0 0 12px 4px #b08040, 0 0 24px 8px rgba(176,128,64,0.4), 0 0 48px 16px rgba(176,128,64,0.2); opacity: 0.85; }
  40%  { box-shadow: 0 0 20px 8px #d0a060, 0 0 40px 16px rgba(208,160,96,0.6), 0 0 80px 30px rgba(208,160,96,0.3); opacity: 1; }
  70%  { box-shadow: 0 0 14px 5px #a07030, 0 0 28px 10px rgba(160,112,48,0.5), 0 0 56px 20px rgba(160,112,48,0.2); opacity: 0.9; }
  100% { box-shadow: 0 0 16px 6px #b08040, 0 0 32px 12px rgba(176,128,64,0.45), 0 0 64px 24px rgba(176,128,64,0.25); opacity: 0.95; }
}
@keyframes ps2-shadowsize {
  0%   { transform: scaleY(1) scaleX(1); opacity: 0.5; }
  50%  { transform: scaleY(1.1) scaleX(1.05); opacity: 0.7; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.5; }
}

/* art-and-interest */
.scn-art-and-interest {
  background: 
    linear-gradient(180deg, #1e1a14 0%, #2a241c 40%, #3a3028 70%, #1e1a14 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-art-and-interest .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2418 0%, #1e1810 100%);
  animation: ai-wall 20s ease-in-out infinite alternate;
}
.scn-art-and-interest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2018 0%, #1a120a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-art-and-interest .desk {
  position: absolute; bottom: 22%; left: 28%; width: 44%; height: 18%;
  background: linear-gradient(180deg, #4a3828 0%, #2e2016 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ai-desk 12s ease-in-out infinite;
}
.scn-art-and-interest .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  margin-left: -10px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, #4a3828 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 16px rgba(255,200,100,0.6), 0 0 80px 32px rgba(255,180,80,0.3);
  animation: ai-lamp 4s ease-in-out infinite alternate;
}
.scn-art-and-interest .figure {
  position: absolute; bottom: 24%; left: 36%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-figure 5s ease-in-out infinite;
}
.scn-art-and-interest .easel-frame {
  position: absolute; bottom: 26%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ai-easel 8s ease-in-out infinite;
}
.scn-art-and-interest .canvas {
  position: absolute; bottom: 30%; left: 62%; width: 44px; height: 56px;
  background: linear-gradient(135deg, #9a8a6a 0%, #7a6a4a 50%, #5a4a2a 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
.scn-art-and-interest .book-a {
  position: absolute; bottom: 26%; left: 38%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ai-book-a 6s ease-in-out infinite;
}
.scn-art-and-interest .book-b {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 14px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ai-book-b 8s ease-in-out infinite;
}
@keyframes ai-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ai-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ai-lamp {
  0% { box-shadow: 0 0 30px 12px rgba(255,200,100,0.4), 0 0 60px 24px rgba(255,180,80,0.2); opacity: 0.85; }
  50% { box-shadow: 0 0 50px 20px rgba(255,220,120,0.7), 0 0 100px 40px rgba(255,200,100,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px rgba(255,200,100,0.45), 0 0 70px 28px rgba(255,180,80,0.25); opacity: 0.9; }
}
@keyframes ai-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ai-easel {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ai-book-a {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ai-book-b {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(3deg) translateY(0); }
}

/* art-not-deficient */
.scn-art-not-deficient {
  background: 
    linear-gradient(180deg, #141a20 0%, #1e2830 40%, #2a3440 70%, #141a20 100%),
    radial-gradient(ellipse at 50% 30%, #2a3440 0%, transparent 60%);
}
.scn-art-not-deficient .wall-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1c2228 0%, #121618 100%);
  animation: ad-wall-back 30s ease-in-out infinite alternate;
}
.scn-art-not-deficient .wall-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3038 0%, #1a1e22 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4);
}
.scn-art-not-deficient .pedestal {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 80px;
  margin-left: -30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-art-not-deficient .sculpture {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 60px;
  margin-left: -20px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 50%, #8a7a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 70% 30% 40%;
  box-shadow: 0 0 20px 8px rgba(200,180,140,0.15);
  animation: ad-sculpture 14s ease-in-out infinite;
}
.scn-art-not-deficient .spotlight {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(240,230,200,0.2) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: ad-spotlight 6s ease-in-out infinite alternate;
}
.scn-art-not-deficient .shadow {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: ad-shadow 10s ease-in-out infinite;
}
.scn-art-not-deficient .column {
  position: absolute; bottom: 20%; left: 10%; width: 16px; height: 80%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: ad-column 25s ease-in-out infinite alternate;
}
.scn-art-not-deficient .plaque {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 12px;
  margin-left: -20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 0 6px 2px rgba(200,180,140,0.2);
  animation: ad-plaque 5s ease-in-out infinite;
}
@keyframes ad-wall-back {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes ad-sculpture {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-spotlight {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.75; transform: scaleY(1); }
}
@keyframes ad-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
}
@keyframes ad-column {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ad-plaque {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 0 6px 2px rgba(200,180,140,0.1); }
  50% { box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 0 10px 4px rgba(200,180,140,0.3); }
  100% { box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 0 6px 2px rgba(200,180,140,0.1); }
}

.scn-arts-look-to-subject {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 40%, #0d0705 100%),
    radial-gradient(ellipse at 30% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-arts-look-to-subject .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a0f0a 0%, #2a1a0e 30%, #1a0f0a 70%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: sc1-wall 12s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #140a04 100%);
  border-top: 2px solid #3a2a1a;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-arts-look-to-subject .window {
  position: absolute; top: 12%; left: 8%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0f0a 70%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #0a0500;
  animation: sc1-window 8s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .figure-sit {
  position: absolute; bottom: 28%; left: 22%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #0d0705 0%, #1a0f0a 40%, #0d0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-fig-sit 6s ease-in-out infinite;
}
.scn-arts-look-to-subject .figure-stand {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #0d0705 0%, #1a0f0a 50%, #0d0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-fig-stand 5s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .table {
  position: absolute; bottom: 35%; left: 30%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-arts-look-to-subject .lamp {
  position: absolute; bottom: 42%; left: 48%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #a07040, 0 0 40px 12px rgba(160,112,64,.5);
  animation: sc1-lamp 3s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .dust-a,
.scn-arts-look-to-subject .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,170,120,.3);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-arts-look-to-subject .dust-a {
  top: 45%; left: 20%;
  animation: sc1-dust 15s linear infinite;
}
.scn-arts-look-to-subject .dust-b {
  top: 60%; left: 60%;
  animation: sc1-dust 20s linear infinite reverse;
}
@keyframes sc1-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sc1-window { 0% { box-shadow: inset 0 0 30px #0a0500; opacity: .7 } 50% { box-shadow: inset 0 0 40px #1a1000; opacity: .9 } 100% { box-shadow: inset 0 0 30px #0a0500; opacity: .75 } }
@keyframes sc1-fig-sit { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes sc1-fig-stand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc1-lamp { 0% { box-shadow: 0 0 20px 6px #a07040, 0 0 40px 12px rgba(160,112,64,.5); } 50% { box-shadow: 0 0 30px 10px #c09050, 0 0 60px 18px rgba(192,144,80,.6); } 100% { box-shadow: 0 0 20px 6px #a07040, 0 0 40px 12px rgba(160,112,64,.5); } }
@keyframes sc1-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(10px, -15px) scale(1.2); opacity: 0.6; } 100% { transform: translate(20px, -30px) scale(0.8); opacity: 0.1; } }

.scn-how-to-convince\? {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 40%, #05050a 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-how-to-convince\? .wall-back {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2e 40%, #0d0d1a 80%);
  box-shadow: inset 0 0 30px #000;
  animation: sc2-wall 4s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-top: 2px solid #2a2a3e;
  box-shadow: inset 0 6px 12px #000;
}
.scn-how-to-convince\? .window-bars {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, #0d0d1a 70%);
  border: 3px solid #1a1a2e;
  box-shadow: inset 0 0 20px #000;
  clip-path: polygon(20% 0%, 80% 0%, 80% 100%, 20% 100%);
  animation: sc2-window 3s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .figure-stand {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0a0a14 0%, #151525 50%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-stand 1.5s ease-in-out infinite;
}
.scn-how-to-convince\? .figure-sit {
  position: absolute; bottom: 28%; left: 20%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #0a0a14 0%, #151525 50%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-sit 2s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .table {
  position: absolute; bottom: 36%; left: 28%; width: 55px; height: 8px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-how-to-convince\? .lamp {
  position: absolute; bottom: 44%; left: 45%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 24px 6px #705050, 0 0 48px 12px rgba(112,80,80,.5);
  animation: sc2-lamp 0.8s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .object {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 6px;
  background: #3a2a3e;
  border-radius: 1px;
  box-shadow: 0 0 4px #000;
  animation: sc2-object 3s ease-in-out infinite;
}
@keyframes sc2-wall { 0% { opacity: 1; box-shadow: inset 0 0 30px #000; } 50% { opacity: .8; box-shadow: inset 0 0 40px #000; } 100% { opacity: 1; box-shadow: inset 0 0 30px #000; } }
@keyframes sc2-window { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.02); } 100% { opacity: .6; transform: scale(.98); } }
@keyframes sc2-stand { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-1px) rotate(-3deg) scale(1.02); } 50% { transform: translateY(0) rotate(3deg) scale(1); } 75% { transform: translateY(-2px) rotate(-2deg) scale(1.01); } }
@keyframes sc2-sit { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg) scale(.98); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sc2-lamp { 0% { box-shadow: 0 0 20px 4px #705050, 0 0 40px 10px rgba(112,80,80,.4); } 50% { box-shadow: 0 0 30px 8px #906060, 0 0 60px 16px rgba(144,96,96,.6); } 100% { box-shadow: 0 0 18px 3px #705050, 0 0 36px 8px rgba(112,80,80,.3); } }
@keyframes sc2-object { 0%,100% { transform: translate(0,0); } 50% { transform: translate(2px,-1px); } }

/* justice-vice? – tense dim interior */
.scn-justice-vice\? {
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a22 40%, #12121a 100%),
              radial-gradient(circle at 50% 70%, #3a3a4a 0%, transparent 60%);
}
.scn-justice-vice\? .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1e1e24 0%, #2a2a32 50%, #1e1e24 100%);
  opacity: .8;
  animation: jv-wall 20s ease-in-out infinite alternate;
}
.scn-justice-vice\? .lamp {
  position: absolute; bottom: 48%; left: 50%; width: 20px; height: 30px;
  margin-left: -10px;
  background: radial-gradient(circle at 50% 30%, #d4a060 0%, #a07030 60%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(212,160,96,0.3), 0 0 80px 30px rgba(212,160,96,0.15);
  animation: jv-lamp .3s ease-in-out infinite alternate;
}
.scn-justice-vice\? .figure-left {
  position: absolute; bottom: 32%; left: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a30 0%, #101016 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-8deg);
  animation: jv-figure-left 2.5s ease-in-out infinite alternate;
}
.scn-justice-vice\? .figure-right {
  position: absolute; bottom: 32%; right: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a30 0%, #101016 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(8deg);
  animation: jv-figure-right 2.7s ease-in-out infinite alternate;
}
.scn-justice-vice\? .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-justice-vice\? .shadow-left {
  position: absolute; bottom: 28%; left: 32%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  transform: skewX(-15deg);
  animation: jv-shadow-sway 3s ease-in-out infinite alternate;
}
.scn-justice-vice\? .shadow-right {
  position: absolute; bottom: 28%; right: 32%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  transform: skewX(15deg);
  animation: jv-shadow-sway 3.2s ease-in-out infinite alternate;
}
.scn-justice-vice\? .dust-a {
  position: absolute; top: 15%; left: 10%; width: 4px; height: 4px;
  background: rgba(255,200,150,.3); border-radius: 50%;
  filter: blur(2px);
  animation: jv-dust 12s linear infinite;
}
.scn-justice-vice\? .dust-b {
  position: absolute; top: 30%; left: 60%; width: 6px; height: 6px;
  background: rgba(255,200,150,.2); border-radius: 50%;
  filter: blur(3px);
  animation: jv-dust 18s linear infinite reverse;
}

@keyframes jv-wall {
  0% { opacity: .7; }
  50% { opacity: .85; }
  100% { opacity: .75; }
}
@keyframes jv-lamp {
  0% { box-shadow: 0 0 30px 12px rgba(212,160,96,0.25), 0 0 60px 20px rgba(212,160,96,0.1); opacity: .8; }
  30% { box-shadow: 0 0 50px 20px rgba(212,160,96,0.35), 0 0 90px 35px rgba(212,160,96,0.15); opacity: .95; }
  60% { box-shadow: 0 0 35px 14px rgba(212,160,96,0.3), 0 0 70px 25px rgba(212,160,96,0.12); opacity: .85; }
  100% { box-shadow: 0 0 45px 18px rgba(212,160,96,0.3), 0 0 80px 30px rgba(212,160,96,0.12); opacity: .9; }
}
@keyframes jv-figure-left {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-6deg) translateX(2px); }
  100% { transform: rotate(-8deg) translateX(0); }
}
@keyframes jv-figure-right {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(6deg) translateX(-2px); }
  100% { transform: rotate(8deg) translateX(0); }
}
@keyframes jv-shadow-sway {
  0% { transform: skewX(-15deg) scaleX(1); }
  50% { transform: skewX(-18deg) scaleX(1.05); }
  100% { transform: skewX(-15deg) scaleX(1); }
}
@keyframes jv-dust {
  0% { transform: translateY(0) translateX(0); opacity: .3; }
  33% { transform: translateY(-20px) translateX(15px); opacity: .5; }
  66% { transform: translateY(10px) translateX(-10px); opacity: .2; }
  100% { transform: translateY(0) translateX(0); opacity: .3; }
}

/* philisophic-dog – calm dim interior */
.scn-philisophic-dog {
  background: linear-gradient(180deg, #1c1c2a 0%, #28283a 40%, #1a1a24 100%),
              radial-gradient(ellipse at 30% 80%, #30304a 0%, transparent 70%);
}
.scn-philisophic-dog .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #24242e 0%, #303040 50%, #24242e 100%);
  opacity: .9;
  animation: pd-bg 25s ease-in-out infinite alternate;
}
.scn-philisophic-dog .window {
  position: absolute; top: 10%; right: 12%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 50%, #2a3a5a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px 8px rgba(100,150,200,.15);
  animation: pd-window 18s ease-in-out infinite alternate;
}
.scn-philisophic-dog .philosopher {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: pd-breathe 6s ease-in-out infinite alternate;
}
.scn-philisophic-dog .dog {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: scaleX(0.8);
  animation: pd-tail 4s ease-in-out infinite alternate;
}
.scn-philisophic-dog .candle {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 50% 50% 20% 20%;
  animation: pd-candle 2s ease-in-out infinite alternate;
}
.scn-philisophic-dog .glow-candle {
  position: absolute; bottom: 32%; left: 48%; width: 80px; height: 40px;
  margin-left: -40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: pd-glow 3s ease-in-out infinite alternate;
}
.scn-philisophic-dog .mote-a {
  position: absolute; top: 25%; left: 20%; width: 5px; height: 5px;
  background: rgba(255,220,180,.2); border-radius: 50%;
  filter: blur(3px);
  animation: pd-mote 20s linear infinite;
}
.scn-philisophic-dog .mote-b {
  position: absolute; top: 50%; left: 70%; width: 7px; height: 7px;
  background: rgba(255,220,180,.15); border-radius: 50%;
  filter: blur(4px);
  animation: pd-mote 25s linear infinite reverse;
}
.scn-philisophic-dog .mote-c {
  position: absolute; top: 65%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,220,180,.25); border-radius: 50%;
  filter: blur(2px);
  animation: pd-mote 15s linear infinite;
}

@keyframes pd-bg {
  0% { opacity: .85; }
  50% { opacity: .95; }
  100% { opacity: .9; }
}
@keyframes pd-window {
  0% { background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 50%, #2a3a5a 100%); box-shadow: inset 0 0 20px 8px rgba(100,150,200,.15); }
  50% { background: linear-gradient(180deg, #3a4a6a 0%, #4a5a7a 50%, #3a4a6a 100%); box-shadow: inset 0 0 30px 12px rgba(100,150,200,.2); }
  100% { background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 50%, #2a3a5a 100%); box-shadow: inset 0 0 20px 8px rgba(100,150,200,.15); }
}
@keyframes pd-breathe {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(4deg) scale(1.02); }
  100% { transform: rotate(5deg) scale(1); }
}
@keyframes pd-tail {
  0% { transform: scaleX(0.8) rotate(0deg); }
  50% { transform: scaleX(0.8) rotate(10deg); }
  100% { transform: scaleX(0.8) rotate(0deg); }
}
@keyframes pd-candle {
  0% { transform: scaleY(1) opacity; transform-origin: bottom; opacity: .8; }
  30% { transform: scaleY(1.05); opacity: 1; }
  60% { transform: scaleY(0.97); opacity: .85; }
  100% { transform: scaleY(1); opacity: .8; }
}
@keyframes pd-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .35; transform: scale(1.05); }
}
@keyframes pd-mote {
  0% { transform: translateY(0) translateX(0); opacity: .2; }
  25% { transform: translateY(-30px) translateX(20px); opacity: .4; }
  50% { transform: translateY(10px) translateX(-10px); opacity: .25; }
  75% { transform: translateY(-15px) translateX(30px); opacity: .3; }
  100% { transform: translateY(0) translateX(0); opacity: .2; }
}

/* ------- Scene: pole marchus-invitation (sunlit) ------- */
.scn-pole-marchus-invitation {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f5e6ca 70%, #d4a373 100%),
    radial-gradient(ellipse 60% 40% at 50% 80%, rgba(255,240,180,0.05) 0%, transparent 100%);
}

.scn-pole-marchus-invitation .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #6fb1d9 0%, #a4d1e6 60%, transparent 100%);
  animation: pmi-sky 20s ease-in-out infinite alternate;
}

.scn-pole-marchus-invitation .sun {
  position:absolute; bottom:52%; left:60%;
  width:60px; height:60px;
  background: radial-gradient(circle, #fff5b0 0%, #fde082 40%, #f7c35b 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(253,224,130,0.6), 0 0 80px 40px rgba(247,195,91,0.3);
  animation: pmi-sunpulse 8s ease-in-out infinite;
}

.scn-pole-marchus-invitation .cloud {
  position:absolute;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 60%, transparent 100%);
  border-radius:50%;
  filter: blur(4px);
}
.scn-pole-marchus-invitation .cloud-a {
  top:20%; left:10%;
  width:100px; height:30px;
  animation: pmi-drift 40s linear infinite;
}
.scn-pole-marchus-invitation .cloud-b {
  top:30%; right:5%;
  width:80px; height:25px;
  animation: pmi-drift 55s linear infinite reverse;
  animation-delay: -15s;
}

.scn-pole-marchus-invitation .hills {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6b8e56 0%, #4a6b3a 70%, #2d4a1f 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: pmi-hills 12s ease-in-out infinite alternate;
}

.scn-pole-marchus-invitation .path {
  position:absolute; bottom:28%; left:10%; width:80%; height:8%;
  background: linear-gradient(180deg, #c9a96e 0%, #b8935a 50%, #a37b48 100%);
  border-radius: 50% / 20%;
  transform: perspective(200px) rotateX(8deg);
  animation: pmi-path 18s ease-in-out infinite;
}

.scn-pole-marchus-invitation .figure {
  position:absolute; bottom:28%;
  width:18px; height:40px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-pole-marchus-invitation .figure-wait {
  left:25%;
  transform-origin: bottom center;
  animation: pmi-wait 4s ease-in-out infinite;
}
.scn-pole-marchus-invitation .figure-come {
  left:70%;
  transform-origin: bottom center;
  animation: pmi-walk 6s ease-in-out infinite;
}

@keyframes pmi-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pmi-sunpulse { 0% { transform:scale(1); opacity:0.9 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(0.98); opacity:0.92 } }
@keyframes pmi-drift { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes pmi-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes pmi-path { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pmi-wait { 0% { transform:translateX(0) rotate(2deg) } 30% { transform:translateX(-2px) rotate(-2deg) } 60% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes pmi-walk { 0% { transform:translateX(-10px) rotate(-1deg) } 25% { transform:translateX(0) rotate(1deg) } 50% { transform:translateX(10px) rotate(-1deg) } 75% { transform:translateX(20px) rotate(1deg) } 100% { transform:translateX(30px) rotate(0) } }

/* ------- Scene: pole marchus-takes-over (dim interior) ------- */
.scn-pole-marchus-takes-over {
  background:
    linear-gradient(180deg, #2d1e14 0%, #3a2a1f 40%, #4a3524 70%, #5c4432 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,220,150,0.08) 0%, transparent 70%);
}

.scn-pole-marchus-takes-over .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3f2f20 0%, #564436 50%, #453223 100%);
  animation: pmt-wall 30s ease-in-out infinite alternate;
}

.scn-pole-marchus-takes-over .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5c4a3a 0%, #4a3828 60%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}

.scn-pole-marchus-takes-over .table {
  position:absolute; bottom:20%; left:50%; width:150px; height:20px; transform:translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5e4030 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: pmt-table 8s ease-in-out infinite;
}

.scn-pole-marchus-takes-over .lamp {
  position:absolute; bottom:48%; left:50%; width:16px; height:24px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #ffd78a 0%, #dba55a 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(255,215,138,0.5), 0 0 60px 30px rgba(219,165,90,0.25);
  animation: pmt-lamp 3s ease-in-out infinite alternate;
}

.scn-pole-marchus-takes-over .figure {
  position:absolute; bottom:18%;
  width:24px; height:46px;
  background: linear-gradient(180deg, #1c1c1c 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-pole-marchus-takes-over .figure-left {
  left:30%;
  animation: pmt-sit-left 5s ease-in-out infinite;
}
.scn-pole-marchus-takes-over .figure-right {
  left:60%;
  animation: pmt-sit-right 5s ease-in-out infinite reverse;
}

.scn-pole-marchus-takes-over .shadow {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.4) 100%);
  pointer-events:none;
  animation: pmt-shadow 12s ease-in-out infinite alternate;
}

@keyframes pmt-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pmt-table { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes pmt-lamp { 0% { box-shadow:0 0 20px 10px rgba(255,215,138,0.4), 0 0 40px 20px rgba(219,165,90,0.2); opacity:0.85 } 50% { box-shadow:0 0 35px 18px rgba(255,215,138,0.6), 0 0 70px 35px rgba(219,165,90,0.35); opacity:1 } 100% { box-shadow:0 0 25px 12px rgba(255,215,138,0.45), 0 0 50px 25px rgba(219,165,90,0.25); opacity:0.9 } }
@keyframes pmt-sit-left { 0% { transform:translateX(0) rotate(-2deg) scaleY(1) } 25% { transform:translateX(2px) rotate(1deg) scaleY(1.02) } 50% { transform:translateX(0) rotate(-1deg) scaleY(1) } 75% { transform:translateX(-2px) rotate(2deg) scaleY(0.98) } 100% { transform:translateX(0) rotate(-2deg) scaleY(1) } }
@keyframes pmt-sit-right { 0% { transform:translateX(0) rotate(2deg) scaleY(1) } 25% { transform:translateX(-2px) rotate(-1deg) scaleY(1.02) } 50% { transform:translateX(0) rotate(1deg) scaleY(1) } 75% { transform:translateX(2px) rotate(-2deg) scaleY(0.98) } 100% { transform:translateX(0) rotate(2deg) scaleY(1) } }
@keyframes pmt-shadow { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }

.scn-counsels-for-after-education {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #1e1512 0%, #2b1f1a 40%, #3a2a22 100%), radial-gradient(ellipse at 30% 80%, #6b4a33 0%, transparent 70%);
}

.scn-counsels-for-after-education .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #1a1210 0%, #2c201b 50%, #3e2d25 100%);
  animation: cfe-wall-pulse 12s ease-in-out infinite alternate;
}

.scn-counsels-for-after-education .bookshelf {
  position: absolute;
  bottom: 32%;
  left: 10%;
  width: 50%;
  height: 38%;
  background: 
    repeating-linear-gradient(0deg, #4a352b 0px, #4a352b 4px, #5e4538 4px, #5e4538 8px, #2e1f18 8px, #2e1f18 12px),
    linear-gradient(90deg, #3a2820 0%, #5a4232 50%, #3a2820 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5), 0 -4px 10px rgba(0,0,0,0.3);
  animation: cfe-shelf-breathe 18s ease-in-out infinite;
}

.scn-counsels-for-after-education .desk {
  position: absolute;
  bottom: 12%;
  left: 15%;
  width: 55%;
  height: 22%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1a14 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6), inset 0 -2px 6px rgba(0,0,0,0.4);
}

.scn-counsels-for-after-education .lamp {
  position: absolute;
  bottom: 32%;
  left: 53%;
  width: 18px;
  height: 60px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4228 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: cfe-lamp-sway 8s ease-in-out infinite;
}

.scn-counsels-for-after-education .lamp::after {
  content: '';
  position: absolute;
  top: -8px;
  left: -12px;
  width: 42px;
  height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #d4a050 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(180,120,60,0.4), 0 0 40px 16px rgba(160,100,40,0.2);
  animation: cfe-lamp-glow 3s ease-in-out infinite alternate;
}

.scn-counsels-for-after-education .figure {
  position: absolute;
  bottom: 16%;
  left: 32%;
  width: 26px;
  height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfe-figure-read 6s ease-in-out infinite;
}

.scn-counsels-for-after-education .figure::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 16px;
  background: radial-gradient(circle at 50% 40%, #2a1f18 0%, #1a1210 100%);
  border-radius: 50%;
}

.scn-counsels-for-after-education .figure::after {
  content: '';
  position: absolute;
  top: 12px;
  right: -20px;
  width: 22px;
  height: 4px;
  background: #2a1f18;
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: cfe-arm-turn 6s ease-in-out infinite;
}

.scn-counsels-for-after-education .book-open {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 28px;
  height: 20px;
  background: linear-gradient(135deg, #4a3528 0%, #6a4f3a 50%, #4a3528 100%);
  border-radius: 2px;
  transform: perspective(80px) rotateX(15deg) rotateY(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cfe-book-float 9s ease-in-out infinite;
}

.scn-counsels-for-after-education .dust-mote {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(200,180,140,0.3);
  border-radius: 50%;
  filter: blur(1.5px);
  box-shadow: 0 0 6px rgba(200,180,140,0.2);
}

.scn-counsels-for-after-education .dust-mote-a {
  top: 40%;
  left: 20%;
  animation: cfe-mote-drift 15s linear infinite;
}

.scn-counsels-for-after-education .dust-mote-b {
  top: 55%;
  left: 70%;
  animation: cfe-mote-drift 20s linear infinite reverse;
  width: 3px;
  height: 3px;
}

@keyframes cfe-wall-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes cfe-shelf-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes cfe-lamp-sway {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.3deg); }
}

@keyframes cfe-lamp-glow {
  0% { box-shadow: 0 0 18px 6px rgba(180,120,60,0.3), 0 0 36px 12px rgba(160,100,40,0.15); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 12px rgba(200,140,70,0.5), 0 0 50px 20px rgba(180,120,60,0.3); opacity: 1; }
  100% { box-shadow: 0 0 20px 8px rgba(180,120,60,0.35), 0 0 40px 14px rgba(160,100,40,0.2); opacity: 0.85; }
}

@keyframes cfe-figure-read {
  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 cfe-arm-turn {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-20deg); }
}

@keyframes cfe-book-float {
  0% { transform: perspective(80px) rotateX(15deg) rotateY(-10deg) translateY(0); }
  50% { transform: perspective(80px) rotateX(18deg) rotateY(-8deg) translateY(-2px); }
  100% { transform: perspective(80px) rotateX(15deg) rotateY(-10deg) translateY(0); }
}

@keyframes cfe-mote-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.5; }
  80% { opacity: 0.5; }
  100% { transform: translate(40px, -30px) scale(0.8); opacity: 0; }
}

/* ─── Scene: more-utopia-lost ─── */

.scn-more-utopia-lost {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #1a1a2e 0%, #2b1f30 50%, #3a2a42 100%), radial-gradient(ellipse at 50% 20%, #6a4050 0%, transparent 60%);
}

.scn-more-utopia-lost .bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a2242 0%, #16122a 100%);
  animation: mul-bg-breathe 14s ease-in-out infinite alternate;
}

.scn-more-utopia-lost .curtain {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22%;
  background: linear-gradient(180deg, #5e2a3a 0%, #4a1e2a 50%, #36151e 100%);
  border-radius: 0 40% 20% 0 / 0 60% 30% 0;
  box-shadow: inset -6px 0 16px rgba(0,0,0,0.5), inset 6px 0 8px rgba(0,0,0,0.2);
  z-index: 2;
}

.scn-more-utopia-lost .curtain-left {
  left: 0;
  animation: mul-curtain-sway 10s ease-in-out infinite;
}

.scn-more-utopia-lost .curtain-right {
  right: 0;
  border-radius: 40% 0 0 20% / 60% 0 0 30%;
  box-shadow: inset 6px 0 16px rgba(0,0,0,0.5), inset -6px 0 8px rgba(0,0,0,0.2);
  animation: mul-curtain-sway 12s ease-in-out infinite reverse;
}

.scn-more-utopia-lost .stage-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
}

.scn-more-utopia-lost .figure {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mul-figure-bounce 4s ease-in-out infinite;
}

.scn-more-utopia-lost .figure::before {
  content: '';
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 22px;
  background: radial-gradient(circle at 50% 45%, #9a7a5a 0%, #6a4a3a 100%);
  border-radius: 50%;
  animation: mul-head-nod 4s ease-in-out infinite;
}

.scn-more-utopia-lost .figure::after {
  content: '';
  position: absolute;
  top: 20px;
  right: -20px;
  width: 18px;
  height: 6px;
  background: #4a2a1a;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: mul-arm-wave 2s ease-in-out infinite;
}

.scn-more-utopia-lost .hat {
  position: absolute;
  bottom: 62%;
  left: 49%;
  width: 30px;
  height: 14px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4228 100%);
  border-radius: 8px 8px 2px 2px;
  transform-origin: bottom center;
  animation: mul-hat-wobble 3s ease-in-out infinite;
}

.scn-more-utopia-lost .hat::before {
  content: '';
  position: absolute;
  top: -24px;
  left: -2px;
  width: 34px;
  height: 26px;
  background: linear-gradient(180deg, #b08050 0%, #7a5428 100%);
  clip-path: polygon(20% 100%, 80% 100%, 60% 0%, 40% 0%);
}

.scn-more-utopia-lost .scroll {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 24px;
  height: 8px;
  background: linear-gradient(180deg, #d4b080 0%, #b09060 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  animation: mul-scroll-spin 8s linear infinite;
}

.scn-more-utopia-lost .mote {
  position: absolute;
  width: 6px;
  height: 6px;
  background: rgba(220,200,160,0.3);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 8px rgba(200,180,120,0.2);
}

.scn-more-utopia-lost .mote-a {
  top: 25%;
  left: 30%;
  animation: mul-mote-swirl 12s linear infinite;
}

.scn-more-utopia-lost .mote-b {
  top: 40%;
  left: 60%;
  width: 5px;
  height: 5px;
  animation: mul-mote-swirl 16s linear infinite reverse;
}

@keyframes mul-bg-breathe {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes mul-curtain-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

@keyframes mul-figure-bounce {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(-2px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes mul-head-nod {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(4deg); }
  70% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes mul-arm-wave {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(50deg); }
  100% { transform: rotate(30deg); }
}

@keyframes mul-hat-wobble {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}

@keyframes mul-scroll-spin {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(165deg) scaleX(-1); }
  100% { transform: rotate(345deg) scaleX(1); }
}

@keyframes mul-mote-swirl {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.4; }
  80% { opacity: 0.4; }
  100% { transform: translate(30px, -20px) rotate(360deg); opacity: 0; }
}

/* Scene: evils-of-identification */
.scn-evils-of-identification {
  background:
    linear-gradient(145deg, #1a1618 0%, #2c2427 45%, #0f0c0d 100%),
    radial-gradient(ellipse at 70% 40%, #3d2c2a 0%, transparent 75%);
}
.scn-evils-of-identification .bg-walls {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2022 0%, #140e10 100%);
  animation: ei-walls 18s ease-in-out infinite alternate;
}
.scn-evils-of-identification .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, transparent 30%, #080608 100%);
  animation: ei-veil-drift 24s ease-in-out infinite alternate;
}
.scn-evils-of-identification .mirror-frame {
  position: absolute; bottom: 20%; left: 50%;
  width: 160px; height: 200px; transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a32 0%, #231c18 100%);
  border-radius: 12px 12px 8px 8px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.06);
  animation: ei-frame-breathe 10s ease-in-out infinite;
}
.scn-evils-of-identification .mirror-glass {
  position: absolute; bottom: 22%; left: 50%;
  width: 140px; height: 170px; transform: translateX(-50%);
  background:
    linear-gradient(45deg, rgba(180,170,160,0.2) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(180,170,160,0.25) 25%, transparent 25%),
    linear-gradient(180deg, rgba(140,130,120,0.1) 0%, rgba(80,70,60,0.4) 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: inset 0 0 18px rgba(0,0,0,0.5), 0 0 0 1px rgba(200,180,160,0.1);
  animation: ei-fracture 14s ease-in-out infinite alternate;
}
.scn-evils-of-identification .figure-left {
  position: absolute; bottom: 17%; left: 24%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1214 0%, #0a0608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ei-figure-shift 8s ease-in-out infinite alternate;
}
.scn-evils-of-identification .figure-right {
  position: absolute; bottom: 17%; right: 24%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1214 0%, #0a0608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ei-figure-shift 8s ease-in-out infinite alternate-reverse;
}
.scn-evils-of-identification .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%;
  height: 18px;
  background: linear-gradient(180deg, #2c2018 0%, #140c08 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 16px rgba(0,0,0,0.6);
  animation: ei-table-float 12s ease-in-out infinite alternate;
}
.scn-evils-of-identification .candle {
  position: absolute; bottom: 18%; left: 50%;
  width: 8px; height: 24px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d6c0a0 0%, #a08060 100%);
  border-radius: 2px 2px 1px 1px;
  animation: ei-candle-flicker 3s ease-in-out infinite;
}
.scn-evils-of-identification .candle-glow {
  position: absolute; bottom: 22%; left: 50%;
  width: 20px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(circle, #f2d088 0%, #c08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(220,160,60,0.25), 0 0 80px 40px rgba(220,160,60,0.08);
  animation: ei-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes ei-walls { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ei-veil-drift { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ei-frame-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(0.99); } }
@keyframes ei-fracture { 0% { transform: translateX(-50%) rotate(0deg) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) rotate(1.5deg) scale(1.02); opacity: 0.8; } 100% { transform: translateX(-50%) rotate(-1.5deg) scale(0.98); opacity: 0.7; } }
@keyframes ei-figure-shift { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes ei-table-float { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ei-candle-flicker { 0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; } }
@keyframes ei-candle-glow { 0% { box-shadow: 0 0 30px 12px rgba(220,160,60,0.2); opacity: 0.7; } 50% { box-shadow: 0 0 60px 24px rgba(220,160,60,0.35); opacity: 1; } 100% { box-shadow: 0 0 40px 16px rgba(220,160,60,0.25); opacity: 0.8; } }

/* Scene: will-and-way */
.scn-will-and-way {
  background:
    linear-gradient(180deg, #0f0e16 0%, #1c1a28 50%, #2a2438 100%),
    radial-gradient(ellipse at 50% 80%, #3c3252 0%, transparent 70%);
}
.scn-will-and-way .bg-depth {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #141220 0%, #080712 100%);
  animation: ww-deep 30s ease-in-out infinite alternate;
}
.scn-will-and-way .arch-left {
  position: absolute; bottom: 20%; left: 8%;
  width: 30%; height: 80%;
  background: linear-gradient(180deg, #1c182a 0%, #0a0812 100%);
  border-radius: 60% 0 0 40% / 80% 0 0 60%;
  transform-origin: bottom left;
  box-shadow: inset 4px 0 20px rgba(0,0,0,0.6);
  animation: ww-arch-pulse 16s ease-in-out infinite alternate;
}
.scn-will-and-way .arch-right {
  position: absolute; bottom: 20%; right: 8%;
  width: 30%; height: 80%;
  background: linear-gradient(180deg, #1c182a 0%, #0a0812 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  transform-origin: bottom right;
  box-shadow: inset -4px 0 20px rgba(0,0,0,0.6);
  animation: ww-arch-pulse 16s ease-in-out infinite alternate-reverse;
}
.scn-will-and-way .horizon-glow {
  position: absolute; bottom: 40%; left: 30%; right: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #d4b880 0%, #8a7a50 40%, transparent 70%);
  opacity: 0.4;
  animation: ww-horizon-pulse 12s ease-in-out infinite alternate;
}
.scn-will-and-way .path-a {
  position: absolute; bottom: 10%; left: 30%;
  width: 20%; height: 30%;
  background: linear-gradient(135deg, #4a3e3a 0%, #2a201e 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  transform-origin: bottom left;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: ww-diverge-a 14s ease-in-out infinite alternate;
}
.scn-will-and-way .path-b {
  position: absolute; bottom: 10%; right: 30%;
  width: 20%; height: 30%;
  background: linear-gradient(225deg, #4a3e3a 0%, #2a201e 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  transform-origin: bottom right;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: ww-diverge-b 14s ease-in-out infinite alternate;
}
.scn-will-and-way .figure-center {
  position: absolute; bottom: 18%; left: 50%;
  width: 32px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #16141e 0%, #080610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-figure-breathe 6s ease-in-out infinite;
}
.scn-will-and-way .motes {
  position: absolute; top: 20%; left: 20%; right: 20%;
  height: 60%;
  background-image:
    radial-gradient(2px 2px at 20% 40%, rgba(220,200,160,0.3), transparent),
    radial-gradient(3px 3px at 60% 20%, rgba(220,200,160,0.2), transparent),
    radial-gradient(2px 2px at 80% 70%, rgba(220,200,160,0.4), transparent),
    radial-gradient(4px 4px at 40% 80%, rgba(220,200,160,0.1), transparent);
  background-size: 200% 200%;
  animation: ww-mote-float 20s linear infinite;
}
.scn-will-and-way .motes-slow {
  position: absolute; top: 10%; left: 10%; right: 10%;
  height: 80%;
  background-image:
    radial-gradient(2px 2px at 30% 60%, rgba(180,160,130,0.2), transparent),
    radial-gradient(3px 3px at 70% 30%, rgba(180,160,130,0.15), transparent),
    radial-gradient(2px 2px at 50% 50%, rgba(180,160,130,0.3), transparent);
  background-size: 300% 300%;
  animation: ww-mote-float-slow 35s linear infinite reverse;
}
@keyframes ww-deep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ww-arch-pulse { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes ww-horizon-pulse { 0% { opacity: 0.2; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.3; transform: scaleY(0.95); } }
@keyframes ww-diverge-a { 0% { transform: scaleX(1) skewY(0deg); } 50% { transform: scaleX(1.1) skewY(2deg) translateX(6px); } 100% { transform: scaleX(0.9) skewY(-2deg) translateX(-4px); } }
@keyframes ww-diverge-b { 0% { transform: scaleX(1) skewY(0deg); } 50% { transform: scaleX(1.1) skewY(-2deg) translateX(-6px); } 100% { transform: scaleX(0.9) skewY(2deg) translateX(4px); } }
@keyframes ww-figure-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.97) translateY(1px); } }
@keyframes ww-mote-float { 0% { background-position: 0% 0%; opacity: 0.6; } 50% { background-position: 50% 100%; opacity: 1; } 100% { background-position: 100% 50%; opacity: 0.5; } }
@keyframes ww-mote-float-slow { 0% { background-position: 0% 0%; opacity: 0.4; } 50% { background-position: 30% 60%; opacity: 0.8; } 100% { background-position: 100% 100%; opacity: 0.3; } }

.scn-counsels-for-after-education {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2218 0%, transparent 70%),
    linear-gradient(180deg, #1a0f0a 0%, #2c1a10 40%, #3e2618 100%);
  position: relative;
  overflow: hidden;
}
.scn-counsels-for-after-education .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4e3524 0%, #2c1a10 100%);
  border-bottom: 2px solid #5a3d2a;
}
.scn-counsels-for-after-education .shelf {
  position: absolute;
  bottom: 35%;
  left: 10%;
  right: 10%;
  height: 4px;
  background: #3a2218;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-counsels-for-after-education .books {
  position: absolute;
  bottom: 36%;
  left: 12%;
  right: 12%;
  height: 25%;
  background:
    linear-gradient(90deg, #7a5638 0%, #5a3d2a 20%, #8b6340 40%, #4e3524 60%, #6b4828 80%, #5a3d2a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5), 0 -2px 4px rgba(0,0,0,0.3);
  animation: cfa-books 6s ease-in-out infinite alternate;
}
.scn-counsels-for-after-education .lamp {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #6b4828 0%, #3a2218 100%);
  border-radius: 4px 4px 30% 30%;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
}
.scn-counsels-for-after-education .glow {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(255,200,100,0.25) 0%, rgba(255,180,80,0.1) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-20px, -20px);
  animation: cfa-glow 3s ease-in-out infinite alternate;
}
.scn-counsels-for-after-education .figure {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 24px;
  height: 40px;
  background: linear-gradient(180deg, #2c1a10 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cfa-figure 4s ease-in-out infinite alternate;
}
.scn-counsels-for-after-education .desk {
  position: absolute;
  bottom: 22%;
  left: 30%;
  right: 30%;
  height: 6px;
  background: linear-gradient(180deg, #5a3d2a 0%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-counsels-for-after-education .dust {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 4px;
  height: 4px;
  background: rgba(255,200,120,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: cfa-dust 12s linear infinite;
}
@keyframes cfa-books {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.98); }
}
@keyframes cfa-glow {
  0% { opacity: 0.7; transform: translate(-20px, -20px) scale(1); }
  50% { opacity: 1; transform: translate(-20px, -20px) scale(1.05); }
  100% { opacity: 0.8; transform: translate(-20px, -20px) scale(0.95); }
}
@keyframes cfa-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes cfa-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.4; }
  100% { transform: translate(30px, -50px) scale(0.5); opacity: 0; }
}

.scn-justice-vice {
  background: linear-gradient(180deg, #1e1a2e 0%, #0d0b1a 60%, #050410 100%), radial-gradient(ellipse at 50% 70%, rgba(255,220,140,0.15) 0%, transparent 60%);
}
.scn-justice-vice .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2438 0%, #100d1a 80%); 
  animation: jv-bg 9s ease-in-out infinite alternate;
}
.scn-justice-vice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #1a1528 0%, #0e0a18 100%); 
  border-radius: 60% 40% 0 0 / 30% 20% 0 0; 
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-justice-vice .lamp-stand {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 40px; 
  transform: translateX(-50%); 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); 
  border-radius: 2px; 
  box-shadow: 0 0 4px rgba(200,160,100,0.2);
}
.scn-justice-vice .lamp-flame {
  position: absolute; bottom: calc(25% + 38px); left: 50%; width: 14px; height: 20px; 
  transform: translateX(-50%); 
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #ffaa40 50%, transparent 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.5), 0 0 60px 20px rgba(255,200,100,0.2); 
  animation: jv-flame 2s ease-in-out infinite alternate;
}
.scn-justice-vice .light-cone {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 25%; 
  background: linear-gradient(180deg, rgba(255,220,140,0.08) 0%, transparent 100%); 
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); 
  filter: blur(4px); 
  animation: jv-cone 4s ease-in-out infinite alternate;
}
.scn-justice-vice .figure-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 60px; 
  background: linear-gradient(180deg, #1a1428 0%, #0a0714 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; 
  transform-origin: bottom center; 
  animation: jv-figure 5s ease-in-out infinite alternate; 
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-justice-vice .cast-shadow {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 12px; 
  background: rgba(0,0,0,0.6); 
  border-radius: 50%; filter: blur(3px); 
  transform: skewX(-20deg); 
  animation: jv-shadow 5s ease-in-out infinite alternate;
}
.scn-justice-vice .flicker-overlay {
  position: absolute; inset: 0; 
  background: radial-gradient(circle at 50% 65%, rgba(255,200,100,0.03) 0%, transparent 70%); 
  pointer-events: none; 
  animation: jv-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes jv-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes jv-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,200,100,0.5); }
  30% { transform: translateX(-50%) scale(1.1, 0.9) rotate(0deg); opacity: 1; box-shadow: 0 0 40px 12px rgba(255,200,100,0.6); }
  70% { transform: translateX(-50%) scale(0.95, 1.05) rotate(2deg); opacity: 0.8; box-shadow: 0 0 25px 6px rgba(255,200,100,0.4); }
  100% { transform: translateX(-50%) scale(1) rotate(1deg); opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,200,100,0.5); }
}
@keyframes jv-cone {
  0% { opacity: 0.6; filter: blur(4px) brightness(1); }
  50% { opacity: 1; filter: blur(6px) brightness(1.2); }
  100% { opacity: 0.7; filter: blur(4px) brightness(0.9); }
}
@keyframes jv-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  40% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes jv-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(-18deg) scaleX(1.05); opacity: 0.7; }
  100% { transform: skewX(-20deg) scaleX(0.95); opacity: 0.5; }
}
@keyframes jv-flicker {
  0% { opacity: 0.4; }
  100% { opacity: 1; }
}

.scn-unpopularity-of-philosopher-statesman {
  background:
    radial-gradient(ellipse 60% 50% at 35% 65%, rgba(180,140,100,0.15) 0%, transparent 70%),
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0e0a08 100%);
}
.scn-unpopularity-of-philosopher-statesman .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 40% 55% at 38% 70%, #3a2a20 0%, transparent 75%);
  animation: ups-bg 20s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .walls {
  position: absolute; inset: 10% 8% 25% 8%;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2a24 50%, #2a1e18 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: ups-walls 15s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .desk {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-unpopularity-of-philosopher-statesman .figure {
  position: absolute; bottom: 24%; left: 35%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ups-figure 8s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow:
    0 0 30px 10px rgba(200,160,96,0.6),
    0 0 60px 20px rgba(200,160,96,0.3),
    0 0 100px 40px rgba(200,160,96,0.15);
  animation: ups-lamp 4s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .books {
  position: absolute; bottom: 18.5%; left: 38%; width: 18%; height: 6%;
  display: flex; flex-direction: row; align-items: flex-end;
  gap: 2%;
  background: transparent;
}
.scn-unpopularity-of-philosopher-statesman .books::before,
.scn-unpopularity-of-philosopher-statesman .books::after {
  content: ''; display: block;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%);
  border-radius: 2px 2px 0 0;
  flex: 1;
  height: 100%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-unpopularity-of-philosopher-statesman .books::before {
  height: 70%;
}
.scn-unpopularity-of-philosopher-statesman .books::after {
  height: 85%;
}
.scn-unpopularity-of-philosopher-statesman .dust-a {
  position: absolute; top: 30%; left: 20%;
  width: 4px; height: 4px;
  background: rgba(220,200,170,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: ups-dust 14s ease-in-out infinite alternate;
}
.scn-unpopularity-of-philosopher-statesman .dust-b {
  position: absolute; top: 50%; right: 25%;
  width: 3px; height: 3px;
  background: rgba(220,200,170,0.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: ups-dust 18s ease-in-out infinite alternate-reverse;
  animation-delay: -7s;
}

@keyframes ups-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.75; }
  100% { opacity: 0.65; }
}
@keyframes ups-walls {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(0.98); }
  100% { opacity: 0.85; transform: scale(1.01); }
}
@keyframes ups-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ups-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(200,160,96,0.4), 0 0 50px 15px rgba(200,160,96,0.2); }
  50% { box-shadow: 0 0 40px 15px rgba(200,160,96,0.7), 0 0 80px 25px rgba(200,160,96,0.35); }
  100% { box-shadow: 0 0 25px 10px rgba(200,160,96,0.5), 0 0 60px 20px rgba(200,160,96,0.25); }
}
@keyframes ups-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  25% { opacity: 0.8; }
  50% { transform: translate(10px, -15px) scale(1.5); opacity: 0.5; }
  75% { opacity: 0.6; }
  100% { transform: translate(20px, -30px) scale(2); opacity: 0; }
}

.scn-art-and-interest {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%),
    radial-gradient(ellipse at 50% 60%, #3a2824 0%, transparent 70%);
}
.scn-art-and-interest .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2c1f1a 0%, #3a2a24 50%, #2c1f1a 100%);
  animation: ai-wall 20s ease-in-out infinite alternate;
}
.scn-art-and-interest .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1d1410 0%, #0f0a08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-art-and-interest .lantern {
  position: absolute;
  top: 30%;
  left: 30%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle at 50% 60%, #e8b878 0%, #a06030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 0 4px #5a3a2a;
  animation: ai-lantern 3s ease-in-out infinite alternate;
}
.scn-art-and-interest .glow {
  position: absolute;
  top: 28%;
  left: 28%;
  width: 80px;
  height: 100px;
  background: radial-gradient(ellipse, rgba(220,160,80,.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: ai-glow 4s ease-in-out infinite alternate;
}
.scn-art-and-interest .easel {
  position: absolute;
  bottom: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 80px;
  background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-art-and-interest .easel::before {
  content: '';
  position: absolute;
  top: -10px;
  left: -10px;
  width: 28px;
  height: 6px;
  background: #3a2520;
  border-radius: 20%;
}
.scn-art-and-interest .canvas {
  position: absolute;
  bottom: 38%;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 40px;
  background: linear-gradient(135deg, #c8b098 0%, #a08870 100%);
  border: 1px solid #6a5040;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ai-canvas 12s ease-in-out infinite alternate;
}
.scn-art-and-interest .figure {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-figure 6s ease-in-out infinite;
}
.scn-art-and-interest .shadow {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 40px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(3px);
  animation: ai-shadow 6s ease-in-out infinite;
}

@keyframes ai-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ai-lantern {
  0% { transform: scaleY(1) rotate(-1deg); background: radial-gradient(circle at 50% 60%, #e8b878 0%, #a06030 100%); }
  50% { transform: scaleY(1.03) rotate(0deg); background: radial-gradient(circle at 50% 60%, #f0c888 0%, #b07040 100%); }
  100% { transform: scaleY(1) rotate(1deg); background: radial-gradient(circle at 50% 60%, #e0b068 0%, #a06030 100%); }
}
@keyframes ai-glow {
  0% { transform: scale(1) translate(0,0); opacity: 0.6; }
  50% { transform: scale(1.05) translate(2px,-1px); opacity: 0.9; }
  100% { transform: scale(1) translate(0,0); opacity: 0.7; }
}
@keyframes ai-canvas {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-0.3deg); }
}
@keyframes ai-figure {
  0% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(4px) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ai-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(3px) scale(1.02); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}

.scn-more-utopia-lost {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1a120b 60%, #0f0a05 100%),
    radial-gradient(ellipse at 70% 40%, #4a3020 0%, transparent 70%);
}

.scn-more-utopia-lost .backwall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}

.scn-more-utopia-lost .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f14 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}

.scn-more-utopia-lost .lamp {
  position: absolute;
  bottom: 50%;
  left: 35%;
  width: 16px; height: 24px;
  background: linear-gradient(90deg, #6a5020 0%, #8a6040 50%, #6a5020 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: mul-lamp 4s ease-in-out infinite alternate;
}

.scn-more-utopia-lost .glow {
  position: absolute;
  bottom: 52%;
  left: 36%;
  width: 80px; height: 80px;
  margin-left: -40px; margin-bottom: -40px;
  background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,180,80,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mul-glow 3s ease-in-out infinite alternate;
}

.scn-more-utopia-lost .figure {
  position: absolute;
  bottom: 35%;
  left: 60%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1208 0%, #0f0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mul-gesture 5s ease-in-out infinite;
}

.scn-more-utopia-lost .table {
  position: absolute;
  bottom: 38%;
  left: 20%;
  width: 80px; height: 10px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,.4);
}

.scn-more-utopia-lost .map {
  position: absolute;
  bottom: 48%;
  left: 22%;
  width: 50px; height: 35px;
  background: linear-gradient(135deg, #c8a868 0%, #a08050 50%, #c8a868 100%);
  border-radius: 4px;
  transform-origin: 70% 80%;
  animation: mul-map 6s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}

.scn-more-utopia-lost .chair {
  position: absolute;
  bottom: 35%;
  left: 15%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: mul-chair 8s ease-in-out infinite alternate;
}

@keyframes mul-lamp {
  0% { transform: rotate(-3deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}

@keyframes mul-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.8; transform: scale(1); }
}

@keyframes mul-gesture {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mul-map {
  0% { transform: rotate(5deg) translate(0, 0); }
  25% { transform: rotate(-2deg) translate(2px, -1px); }
  50% { transform: rotate(3deg) translate(0, 0); }
  75% { transform: rotate(-4deg) translate(-2px, 1px); }
  100% { transform: rotate(5deg) translate(0, 0); }
}

@keyframes mul-chair {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(0.96); }
  100% { transform: rotate(-1deg) scaleX(1); }
}

.scn-arts-look-to-subject {
  background: 
    linear-gradient(180deg, #2b1d14 0%, #1e140e 40%, #0f0a07 100%),
    radial-gradient(ellipse at 70% 55%, #3d2b1f 0%, transparent 70%);
}
.scn-arts-look-to-subject .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3d2b1f 0%, #2b1d14 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: lo-wall 20s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .window {
  position: absolute;
  top: 12%;
  left: 40%;
  width: 80px;
  height: 110px;
  background: linear-gradient(135deg, #4a5b6e 0%, #2c3847 50%, #1a222f 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(74,91,110,0.3), 0 0 20px rgba(74,91,110,0.2);
  animation: lo-window 8s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .desk {
  position: absolute;
  bottom: 25%;
  left: 15%;
  right: 15%;
  height: 8%;
  background: linear-gradient(180deg, #5e3e2a 0%, #3d2b1f 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: lo-desk 15s ease-in-out infinite;
}
.scn-arts-look-to-subject .bust {
  position: absolute;
  bottom: 33%;
  left: 32%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #c8b290 0%, #a68b6e 80%, #7a634c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: lo-bust 12s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .figure {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo-figure 6s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .lamp {
  position: absolute;
  bottom: 26%;
  left: 20%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #fce8b0 0%, #f0c868 50%, #c09a40 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(240,200,104,0.6), 0 0 80px 20px rgba(240,200,104,0.3);
  animation: lo-lamp 4s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .book {
  position: absolute;
  bottom: 26%;
  left: 40%;
  width: 24px;
  height: 16px;
  background: linear-gradient(180deg, #8a6e52 0%, #6a523e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: lo-book 10s ease-in-out infinite alternate;
}
.scn-arts-look-to-subject .shadow {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 50px;
  height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: lo-shadow 8s ease-in-out infinite alternate;
}

@keyframes lo-wall {
  0% { opacity: 0.6; }
  50% { opacity: 0.7; }
  100% { opacity: 0.55; }
}
@keyframes lo-window {
  0% { box-shadow: inset 0 0 20px rgba(74,91,110,0.2), 0 0 10px rgba(74,91,110,0.15); }
  50% { box-shadow: inset 0 0 30px rgba(74,91,110,0.35), 0 0 25px rgba(74,91,110,0.25); }
  100% { box-shadow: inset 0 0 20px rgba(74,91,110,0.2), 0 0 10px rgba(74,91,110,0.15); }
}
@keyframes lo-desk {
  0%, 100% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
}
@keyframes lo-bust {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(-0.5deg); }
}
@keyframes lo-figure {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.01) rotate(1deg); }
  100% { transform: scale(0.99) rotate(-1deg); }
}
@keyframes lo-lamp {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(240,200,104,0.5), 0 0 60px 15px rgba(240,200,104,0.2); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 16px rgba(240,200,104,0.7), 0 0 100px 30px rgba(240,200,104,0.4); }
  100% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(240,200,104,0.5), 0 0 60px 15px rgba(240,200,104,0.2); }
}
@keyframes lo-book {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(2deg); }
  66% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes lo-shadow {
  0% { transform: scaleX(0.8); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.8); opacity: 0.4; }
}

/* Scene: evils-of-identification */
.scn-evils-of-identification {
  background: 
    linear-gradient(180deg, #2b2420 0%, #1c1815 40%, #2f2823 100%),
    radial-gradient(ellipse at 50% 70%, #4a3e34 0%, #0a0806 100%);
}

.scn-evils-of-identification .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d332c 0%, #241f1a 100%);
  border-bottom: 1px solid rgba(0,0,0,0.3);
}

.scn-evils-of-identification .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1512 0%, #2f2823 100%);
  border-top: 1px solid rgba(0,0,0,0.3);
}

.scn-evils-of-identification .window-frame {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #4a3e34 0%, #2f2823 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: eoi-imbue 12s ease-in-out infinite alternate;
}

.scn-evils-of-identification .window-glow {
  position: absolute; top: 16%; left: 34%; width: 32%; height: 38%;
  background: radial-gradient(circle at 50% 30%, rgba(180,140,80,0.15) 0%, transparent 70%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(180,140,80,0.1);
  animation: eoi-glow 8s ease-in-out infinite alternate;
}

.scn-evils-of-identification .desk {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 100%);
  border-radius: 4% 4% 12% 12%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(5deg);
  animation: eoi-desk 20s ease-in-out infinite;
}

.scn-evils-of-identification .book {
  position: absolute; bottom: 25%; left: 38%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3e34 100%);
  border-radius: 6% 6% 12% 12%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateZ(-2deg) rotateX(8deg);
  animation: eoi-book 30s ease-in-out infinite alternate;
}

.scn-evils-of-identification .figure-side {
  position: absolute; bottom: 18%; left: 28%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eoi-figure-breathe 4s ease-in-out infinite;
}

.scn-evils-of-identification .candle-flame {
  position: absolute; bottom: 33%; left: 46%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffcc80 0%, #e69960 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(230,153,96,0.4), 0 0 40px 20px rgba(230,153,96,0.2);
  animation: eoi-candle 2s ease-in-out infinite alternate;
}

.scn-evils-of-identification .dust {
  position: absolute; top: 10%; left: 10%;
  width: 80%; height: 80%;
  background: radial-gradient(ellipse at 30% 40%, rgba(200,170,130,0.15) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 60%, rgba(200,170,130,0.1) 0%, transparent 50%);
  filter: blur(8px);
  animation: eoi-dust 30s linear infinite;
  pointer-events: none;
}

@keyframes eoi-imbue {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.005); }
  100% { opacity: 0.9; transform: scale(0.995); }
}

@keyframes eoi-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

@keyframes eoi-desk {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(4deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}

@keyframes eoi-book {
  0% { transform: perspective(200px) rotateZ(-2deg) rotateX(8deg) translateY(0); }
  50% { transform: perspective(200px) rotateZ(-1deg) rotateX(7deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateZ(-2deg) rotateX(8deg) translateY(0); }
}

@keyframes eoi-figure-breathe {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-1px) scaleY(1.005); }
  50% { transform: translateY(0) scaleY(0.998); }
  75% { transform: translateY(-1px) scaleY(1.002); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes eoi-candle {
  0% { transform: scaleY(0.9) scaleX(1); opacity: 0.7; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(1.02); opacity: 0.8; }
}

@keyframes eoi-dust {
  0% { transform: translate(0,0); opacity: 0.3; }
  25% { transform: translate(15px, -10px); opacity: 0.5; }
  50% { transform: translate(5px, -25px); opacity: 0.4; }
  75% { transform: translate(-10px, -5px); opacity: 0.6; }
  100% { transform: translate(0,0); opacity: 0.3; }
}

.scn-art-not-deficient {
  background:
    linear-gradient(180deg, #2a2218 0%, #3d3224 30%, #5a4a34 60%, #3d3224 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a34 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}

.scn-art-not-deficient .bg-wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3d3224 0%, #2a2218 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}

.scn-art-not-deficient .bg-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}

.scn-art-not-deficient .window-light {
  position: absolute;
  top: 15%;
  right: 18%;
  width: 80px;
  height: 100px;
  background: linear-gradient(135deg, rgba(200,180,150,0.15) 0%, rgba(200,180,150,0.05) 100%);
  border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%;
  box-shadow: 0 0 60px 20px rgba(180,160,130,0.08), inset 0 0 30px rgba(180,160,130,0.1);
  animation: an-window 12s ease-in-out infinite alternate;
}

.scn-art-not-deficient .easel {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 60px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a34 0%, #3d3224 100%);
  border-radius: 4% 4% 6% 6% / 90% 90% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: an-easel 6s ease-in-out infinite;
}

.scn-art-not-deficient .canvas {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 48px;
  height: 64px;
  transform: translateX(-50%) translateY(2px);
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6e 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2), 0 2px 4px rgba(0,0,0,0.3);
  animation: an-canvas 8s ease-in-out infinite alternate;
}

.scn-art-not-deficient .canvas-eye {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 16px;
  height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #2a2218 30%, transparent 30%),
              radial-gradient(circle, #c8b090 30%, #9a8a6e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: an-eye 10s ease-in-out infinite;
}

.scn-art-not-deficient .palette {
  position: absolute;
  bottom: 22%;
  left: 32%;
  width: 32px;
  height: 24px;
  background: radial-gradient(ellipse at 40% 50%, #8a7a62 0%, #5a4a34 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-20deg);
  animation: an-palette 14s ease-in-out infinite;
}

.scn-art-not-deficient .lamp-glow {
  position: absolute;
  bottom: 45%;
  left: 22%;
  width: 20px;
  height: 24px;
  background: radial-gradient(circle, #e8c880 0%, #c8a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(200,160,80,0.15), 0 0 80px 40px rgba(200,160,80,0.08);
  animation: an-lamp 4s ease-in-out infinite alternate;
}

.scn-art-not-deficient .brush {
  position: absolute;
  bottom: 26%;
  left: 38%;
  width: 4px;
  height: 28px;
  background: linear-gradient(180deg, #8a7a62 0%, #3d3224 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 80% 80%;
  transform-origin: bottom center;
  transform: rotate(30deg);
  animation: an-brush 5s ease-in-out infinite;
}

@keyframes an-window {
  0% { opacity: 0.6; box-shadow: 0 0 40px 15px rgba(180,160,130,0.05); }
  50% { opacity: 0.8; box-shadow: 0 0 70px 25px rgba(180,160,130,0.1); }
  100% { opacity: 0.65; box-shadow: 0 0 50px 18px rgba(180,160,130,0.06); }
}

@keyframes an-easel {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(1px); }
}

@keyframes an-canvas {
  0% { transform: translateX(-50%) translateY(2px) scale(1); }
  50% { transform: translateX(-50%) translateY(0) scale(1.01); }
  100% { transform: translateX(-50%) translateY(2px) scale(0.99); }
}

@keyframes an-eye {
  0% { opacity: 0.9; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scale(0.95); }
}

@keyframes an-palette {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-2px); }
  100% { transform: rotate(-22deg) translateY(1px); }
}

@keyframes an-lamp {
  0% { box-shadow: 0 0 40px 15px rgba(200,160,80,0.12), 0 0 70px 30px rgba(200,160,80,0.06); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 25px rgba(200,160,80,0.18), 0 0 100px 40px rgba(200,160,80,0.1); opacity: 1; }
  100% { box-shadow: 0 0 45px 18px rgba(200,160,80,0.13), 0 0 80px 35px rgba(200,160,80,0.07); opacity: 0.85; }
}

@keyframes an-brush {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(32deg) translateY(-3px); }
  100% { transform: rotate(28deg) translateY(0); }
}

.scn-eo { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #0a0a2e 100%), linear-gradient(180deg, #1a2a4e 0%, #0a1a2e 100%); }

.scn-eo .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #0f0f3f 0%, #1a2a5a 50%, #2a3a6a 100%); animation: eo-sky 12s ease-in-out infinite alternate; }
.scn-eo .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #0a1a2a 0%, #0a0a1a 100%); animation: eo-sea 8s ease-in-out infinite alternate; }
.scn-eo .ship { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: eo-ship 5s ease-in-out infinite; }
.scn-eo .mast { position: absolute; bottom: 38%; left: calc(50% - 3px); width: 6px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 2px; transform-origin: bottom center; animation: eo-mast 5s ease-in-out infinite; }
.scn-eo .pilot { position: absolute; bottom: 42%; left: calc(50% + 12px); width: 14px; height: 24px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eo-pilot 5s ease-in-out infinite; }
.scn-eo .wave-1 { position: absolute; bottom: 10%; left: 0; right: 0; height: 20px; background: linear-gradient(180deg, rgba(20,40,60,.6) 0%, transparent 100%); border-radius: 40% 60% 0 0; animation: eo-wave1 4s ease-in-out infinite alternate; }
.scn-eo .wave-2 { position: absolute; bottom: 5%; left: 0; right: 0; height: 25px; background: linear-gradient(180deg, rgba(15,30,50,.4) 0%, transparent 100%); border-radius: 50% 50% 0 0; animation: eo-wave2 6s ease-in-out infinite alternate; animation-delay: -2s; }
.scn-eo .lightning { position: absolute; top: 10%; right: 20%; width: 8px; height: 40px; background: rgba(255,255,255,.9); border-radius: 2px; filter: blur(2px); box-shadow: 0 0 20px 6px rgba(255,255,255,.6), 0 0 40px 12px rgba(255,255,255,.3); animation: eo-lightning 8s infinite; }

@keyframes eo-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes eo-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes eo-ship { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-.5deg); } 75% { transform: translateX(-50%) rotate(.5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes eo-mast { 0% { transform: rotate(-1deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-.5deg); } 75% { transform: rotate(.5deg); } 100% { transform: rotate(0); } }
@keyframes eo-pilot { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes eo-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.1); } 100% { transform: translateX(-5px) scaleY(.9); } }
@keyframes eo-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-8px) scaleY(1.15); } 100% { transform: translateX(5px) scaleY(.85); } }
@keyframes eo-lightning { 0% { opacity: 0; } 2% { opacity: 0; } 3% { opacity: 1; } 4% { opacity: .8; } 5% { opacity: 0; } 100% { opacity: 0; } }

.scn-bad-imitations {
  background: 
    linear-gradient(135deg, #1a1410 0%, #2a2018 40%, #3a2c24 100%),
    radial-gradient(ellipse at 70% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-bad-imitations .wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: bi-wall 20s ease-in-out infinite alternate;
}
.scn-bad-imitations .bookshelf {
  position: absolute;
  left: 5%;
  top: 15%;
  width: 18%;
  height: 60%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1a10 50%, #1a0e08 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 4px 0 8px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateY(-2deg);
  animation: bi-shelf 30s ease-in-out infinite alternate;
}
.scn-bad-imitations .books {
  position: absolute;
  left: 6%;
  top: 18%;
  width: 16%;
  height: 55%;
  background: 
    linear-gradient(90deg, 
      transparent 0%,
      #5e3a20 8%, #5e3a20 12%,
      transparent 12%,
      #704020 16%, #704020 20%,
      transparent 20%,
      #4a3020 24%, #4a3020 28%,
      transparent 28%,
      #6a4a2a 32%, #6a4a2a 36%,
      transparent 36%,
      #3a2a18 40%, #3a2a18 44%,
      transparent 44%,
      #5a4020 48%, #5a4020 52%,
      transparent 52%,
      #7a5a30 56%, #7a5a30 60%,
      transparent 60%,
      #4a3020 64%, #4a3020 68%,
      transparent 68%,
      #6a4a2a 72%, #6a4a2a 76%,
      transparent 76%,
      #3a2a18 80%, #3a2a18 84%,
      transparent 84%,
      #5e3a20 88%, #5e3a20 92%,
      transparent 100%
    );
  filter: blur(0.5px);
  opacity: 0.9;
  animation: bi-books 25s ease-in-out infinite alternate;
}
.scn-bad-imitations .desk {
  position: absolute;
  bottom: 12%;
  left: 20%;
  right: 10%;
  height: 10%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(2deg);
  animation: bi-desk 35s ease-in-out infinite alternate;
}
.scn-bad-imitations .lamp {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 8px;
  height: 14px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 
    0 0 12px 4px rgba(200,160,100,0.3),
    0 0 24px 8px rgba(200,160,100,0.2),
    0 0 48px 16px rgba(200,160,100,0.1);
  transform-origin: bottom center;
  animation: bi-lamp 4s ease-in-out infinite alternate;
}
.scn-bad-imitations .figure {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  transform-origin: bottom center;
  animation: bi-figure 6s ease-in-out infinite alternate;
}
.scn-bad-imitations .bust {
  position: absolute;
  bottom: 14%;
  left: 52%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4030 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateY(-8deg);
  animation: bi-bust 12s ease-in-out infinite alternate;
}
.scn-bad-imitations .dust1,
.scn-bad-imitations .dust2 {
  position: absolute;
  width: 4px;
  height: 4px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-bad-imitations .dust1 {
  top: 30%;
  left: 40%;
  animation: bi-dust1 25s linear infinite;
  animation-delay: 0s;
}
.scn-bad-imitations .dust2 {
  top: 45%;
  left: 70%;
  animation: bi-dust2 35s linear infinite;
  animation-delay: -5s;
}

@keyframes bi-wall {
  0%   { opacity: 0.9; }
  50%  { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes bi-shelf {
  0%   { transform: perspective(400px) rotateY(-2deg) translateX(0); }
  50%  { transform: perspective(400px) rotateY(-1.5deg) translateX(1px); }
  100% { transform: perspective(400px) rotateY(-2.2deg) translateX(0); }
}
@keyframes bi-books {
  0%   { opacity: 0.9; filter: blur(0.5px); }
  50%  { opacity: 0.95; filter: blur(0.3px); }
  100% { opacity: 0.88; filter: blur(0.6px); }
}
@keyframes bi-desk {
  0%   { transform: perspective(300px) rotateX(2deg) scaleY(1); }
  50%  { transform: perspective(300px) rotateX(2.3deg) scaleY(1.01); }
  100% { transform: perspective(300px) rotateX(1.8deg) scaleY(1); }
}
@keyframes bi-lamp {
  0%   { box-shadow: 0 0 12px 4px rgba(200,160,100,0.3), 0 0 24px 8px rgba(200,160,100,0.2), 0 0 48px 16px rgba(200,160,100,0.1); }
  50%  { box-shadow: 0 0 16px 6px rgba(200,160,100,0.4), 0 0 32px 12px rgba(200,160,100,0.3), 0 0 64px 20px rgba(200,160,100,0.15); }
  100% { box-shadow: 0 0 10px 3px rgba(200,160,100,0.25), 0 0 20px 6px rgba(200,160,100,0.15), 0 0 40px 12px rgba(200,160,100,0.1); }
}
@keyframes bi-figure {
  0%   { transform: rotate(2deg) translateY(0); }
  50%  { transform: rotate(1.8deg) translateY(-1px); }
  100% { transform: rotate(2.2deg) translateY(0); }
}
@keyframes bi-bust {
  0%   { transform: perspective(200px) rotateY(-8deg) scaleX(1); }
  50%  { transform: perspective(200px) rotateY(-7deg) scaleX(1.02); }
  100% { transform: perspective(200px) rotateY(-9deg) scaleX(0.98); }
}
@keyframes bi-dust1 {
  0%   { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25%  { transform: translate(10px, -8px) scale(1.5); opacity: 0.6; }
  50%  { transform: translate(20px, -15px) scale(0.8); opacity: 0.2; }
  75%  { transform: translate(30px, -5px) scale(1.2); opacity: 0.5; }
  100% { transform: translate(40px, -20px) scale(1); opacity: 0.3; }
}
@keyframes bi-dust2 {
  0%   { transform: translate(0, 0) scale(1); opacity: 0.2; }
  25%  { transform: translate(-8px, -10px) scale(1.3); opacity: 0.5; }
  50%  { transform: translate(-18px, -6px) scale(0.9); opacity: 0.3; }
  75%  { transform: translate(-25px, -14px) scale(1.1); opacity: 0.6; }
  100% { transform: translate(-35px, -8px) scale(0.8); opacity: 0.2; }
}

.scn-pole-marchus-takes-over {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 40%, #0d0b0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}

.scn-pole-marchus-takes-over .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1f1814 0%, #2a221c 50%, #1a1410 100%);
  /* subtle texture */
  opacity: .7;
  animation: pm-drift 30s ease-in-out infinite alternate;
}

.scn-pole-marchus-takes-over .pillar {
  position: absolute;
  top: 10%;
  bottom: 0;
  width: 12%;
  background: linear-gradient(90deg, #2c241e, #1f1814, #2c241e);
  border-radius: 4px;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.5);
}

.scn-pole-marchus-takes-over .pillar.left {
  left: 8%;
}

.scn-pole-marchus-takes-over .pillar.right {
  right: 8%;
}

.scn-pole-marchus-takes-over .table {
  position: absolute;
  bottom: 28%;
  left: 25%;
  right: 25%;
  height: 8%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 40% 40% 4px 4px / 100% 100% 4px 4px;
  box-shadow: 0 12px 20px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,235,160,.1);
}

.scn-pole-marchus-takes-over .figure-left {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 8%;
  height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0b0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pm-breathe 5s ease-in-out infinite;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
}

.scn-pole-marchus-takes-over .figure-left::before {
  content: '';
  position: absolute;
  top: -10%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: inherit;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  /* head shape */
}

.scn-pole-marchus-takes-over .figure-right {
  position: absolute;
  bottom: 30%;
  right: 28%;
  width: 9%;
  height: 45%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0b0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pm-breathe 6s ease-in-out infinite reverse;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
}

.scn-pole-marchus-takes-over .figure-right::before {
  content: '';
  position: absolute;
  top: -8%;
  left: 15%;
  width: 70%;
  height: 28%;
  background: inherit;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}

.scn-pole-marchus-takes-over .lamp {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 4%;
  height: 6%;
  background: radial-gradient(circle, #f5c27a, #d98a40);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(245,194,122,.4), 0 0 60px 20px rgba(245,194,122,.2), 0 0 90px 30px rgba(245,194,122,.1);
  animation: pm-flicker 3s ease-in-out infinite alternate;
  transform-origin: bottom center;
}

.scn-pole-marchus-takes-over .scroll {
  position: absolute;
  bottom: 30%;
  left: 44%;
  width: 6%;
  height: 4%;
  background: linear-gradient(90deg, #d4b48a, #e8d4b0, #d4b48a);
  border-radius: 20% 20% 40% 40% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pm-scroll 8s ease-in-out infinite;
}

@keyframes pm-drift {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .7; }
}

@keyframes pm-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

@keyframes pm-flicker {
  0% { box-shadow: 0 0 20px 8px rgba(245,194,122,.3), 0 0 40px 15px rgba(245,194,122,.15); opacity: .85; }
  50% { box-shadow: 0 0 40px 15px rgba(245,194,122,.5), 0 0 80px 25px rgba(245,194,122,.25); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(245,194,122,.35), 0 0 50px 20px rgba(245,194,122,.18); opacity: .9; }
}

@keyframes pm-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}

.scn-self-education-thousand-things {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #1a0a00 100%);
}
.scn-self-education-thousand-things .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%);
  animation: sed-wall-breathe 20s ease-in-out infinite alternate;
}
.scn-self-education-thousand-things .bookshelf {
  position: absolute;
  bottom: 35%;
  left: 5%;
  width: 30%;
  height: 40%;
  background:
    repeating-linear-gradient(
      90deg,
      #4a3a2a 0px, #4a3a2a 12px,
      #6a5a4a 12px, #6a5a4a 14px,
      #5a4a3a 14px, #5a4a3a 26px,
      #3a2a1a 26px, #3a2a1a 28px,
      #4a3a2a 28px, #4a3a2a 40px
    );
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6), 0 6px 10px rgba(0,0,0,.4);
  transform: scaleX(0.95);
  background-size: 40px 100%;
  filter: brightness(0.7);
}
.scn-self-education-thousand-things .desk {
  position: absolute;
  bottom: 10%;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-self-education-thousand-things .lamp {
  position: absolute;
  bottom: 40%;
  left: 35%;
  width: 20px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 80%, #ffc080 0%, #a06030 60%, #603020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow:
    0 0 30px 10px rgba(255,192,128,.6),
    0 0 60px 20px rgba(255,192,128,.3),
    0 0 100px 40px rgba(255,192,128,.1);
  animation: sed-lamp-glow 6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-self-education-thousand-things .figure {
  position: absolute;
  bottom: 12%;
  left: 28%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: sed-figure-breathe 4s ease-in-out infinite;
  z-index: 3;
}
.scn-self-education-thousand-things .book {
  position: absolute;
  bottom: 16%;
  left: 35%;
  width: 40px;
  height: 25px;
  background: linear-gradient(135deg, #d4c4a4 0%, #b8a888 50%, #9a8a6a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,.3),
    0 4px 8px rgba(0,0,0,.4),
    0 0 20px 4px rgba(255,200,150,.3);
  transform: rotate(-5deg);
  animation: sed-book-glow 8s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-self-education-thousand-things .mote-1,
.scn-self-education-thousand-things .mote-2 {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(255,220,180,.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: sed-mote-drift 12s linear infinite;
}
.scn-self-education-thousand-things .mote-1 {
  top: 50%;
  left: 20%;
  animation-delay: 0s;
}
.scn-self-education-thousand-things .mote-2 {
  top: 60%;
  left: 70%;
  animation-delay: -4s;
  width: 3px;
  height: 6px;
  background: rgba(255,200,150,.5);
  filter: blur(3px);
}
@keyframes sed-wall-breathe {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes sed-lamp-glow {
  0% { box-shadow: 0 0 20px 8px rgba(255,192,128,.5), 0 0 50px 15px rgba(255,192,128,.2), 0 0 80px 30px rgba(255,192,128,.1); opacity: .9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,150,.7), 0 0 80px 25px rgba(255,208,150,.4), 0 0 120px 45px rgba(255,208,150,.15); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,192,128,.55), 0 0 60px 20px rgba(255,192,128,.25), 0 0 100px 35px rgba(255,192,128,.12); opacity: .92; }
}
@keyframes sed-figure-breathe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sed-book-glow {
  0% { box-shadow: inset 0 2px 4px rgba(255,255,255,.3), 0 4px 8px rgba(0,0,0,.4), 0 0 15px 3px rgba(255,200,150,.2); }
  50% { box-shadow: inset 0 2px 6px rgba(255,255,255,.5), 0 4px 12px rgba(0,0,0,.4), 0 0 30px 8px rgba(255,200,150,.4); }
  100% { box-shadow: inset 0 2px 4px rgba(255,255,255,.3), 0 4px 8px rgba(0,0,0,.4), 0 0 20px 5px rgba(255,200,150,.25); }
}
@keyframes sed-mote-drift {
  0% { transform: translate(0, 0) scale(1); opacity: .5; }
  25% { transform: translate(15px, -10px) scale(1.1); opacity: .8; }
  50% { transform: translate(30px, -20px) scale(1.2); opacity: .6; }
  75% { transform: translate(45px, -5px) scale(0.9); opacity: .7; }
  100% { transform: translate(60px, -15px) scale(1); opacity: .5; }
}

.scn-pole-marchus-invitation {
  background: linear-gradient(180deg, #a4c2f4 0%, #f7e9b0 70%, #d4a373 100%),
              radial-gradient(circle at 80% 20%, rgba(255,248,200,0.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-pole-marchus-invitation .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, rgba(255,255,240,0.1) 0%, rgba(200,220,255,0.3) 50%, rgba(255,255,240,0.1) 100%);
  filter: blur(10px);
  animation: pm-sky-drift 25s ease-in-out infinite;
}
.scn-pole-marchus-invitation .hills {
  position: absolute; bottom: 30%; left:0; right:0; height: 20%;
  background: linear-gradient(180deg, #5a7a4a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: pm-hills-sway 12s ease-in-out infinite alternate;
}
.scn-pole-marchus-invitation .road {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #c4a46a 0%, #8b6b3a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pm-road-pulse 8s ease-in-out infinite;
}
.scn-pole-marchus-invitation .tree-left {
  position: absolute; bottom: 35%; left: 8%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pm-tree-sway 6s ease-in-out infinite;
}
.scn-pole-marchus-invitation .tree-right {
  position: absolute; bottom: 38%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a6a3a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pm-tree-sway 7s ease-in-out infinite 2s;
}
.scn-pole-marchus-invitation .figure-1 {
  position: absolute; bottom: 21%; left: 35%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-walk-1 4s ease-in-out infinite;
}
.scn-pole-marchus-invitation .figure-2 {
  position: absolute; bottom: 21%; left: 50%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-walk-2 4.2s ease-in-out infinite 0.5s;
}
.scn-pole-marchus-invitation .sun-glow {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pm-sun-glow 5s ease-in-out infinite alternate;
}
@keyframes pm-sky-drift {
  0% { transform: translateX(0); }
  50% { transform: translateX(15px); }
  100% { transform: translateX(0); }
}
@keyframes pm-hills-sway {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pm-road-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pm-tree-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pm-figure-walk-1 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(0deg); }
  100% { transform: translateX(32px) rotate(2deg); }
}
@keyframes pm-figure-walk-2 {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(8px) rotate(-1deg); }
  50% { transform: translateX(16px) rotate(2deg); }
  75% { transform: translateX(24px) rotate(0deg); }
  100% { transform: translateX(32px) rotate(-1deg); }
}
@keyframes pm-sun-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

.scn-other-corruptions {
  background:
    linear-gradient(180deg, #1a1220 0%, #0f0a14 100%),
    radial-gradient(ellipse 140px 200px at 22% 28%, rgba(255, 180, 80, 0.35) 0%, transparent 70%);
  background-blend-mode: normal;
}

.scn-other-corruptions .backdrop {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #241b2e 0%, #140d1a 100%);
  animation: oc-backdrop-pulse 20s ease-in-out infinite alternate;
}

.scn-other-corruptions .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1420 0%, #120c16 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}

.scn-other-corruptions .pedestal {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 40px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2d3a 0%, #1f1820 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}

.scn-other-corruptions .bust {
  position: absolute;
  bottom: calc(25% + 60px - 4px);
  left: 50%;
  width: 30px;
  height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1220 0%, #0d0814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 -6px 12px rgba(0,0,0,0.6);
  animation: oc-bust-sway 6s ease-in-out infinite;
}

.scn-other-corruptions .lamp {
  position: absolute;
  left: 22%;
  bottom: 32%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #c08040 70%);
  border-radius: 30% 30% 50% 50%;
  box-shadow:
    0 0 20px 6px rgba(255, 180, 60, 0.6),
    0 0 40px 12px rgba(255, 180, 60, 0.3);
  animation: oc-lamp-glow 3s ease-in-out infinite alternate;
}

.scn-other-corruptions .light-beam {
  position: absolute;
  left: 18%;
  bottom: 30%;
  width: 60px;
  height: 100px;
  clip-path: polygon(0 0, 100% 30%, 90% 100%, 10% 100%);
  background: linear-gradient(135deg, rgba(255, 180, 60, 0.15) 0%, rgba(255, 180, 60, 0.02) 80%);
  transform-origin: left bottom;
  animation: oc-beam-sway 8s ease-in-out infinite;
}

.scn-other-corruptions .book {
  position: absolute;
  left: 48%;
  bottom: 27%;
  width: 28px;
  height: 20px;
  background: linear-gradient(180deg, #b87878 0%, #7a4444 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: oc-book-shimmer 5s ease-in-out infinite alternate;
}

.scn-other-corruptions .mote {
  position: absolute;
  width: 3px;
  height: 3px;
  background: rgba(255, 220, 160, 0.5);
  border-radius: 50%;
  filter: blur(1px);
}

.scn-other-corruptions .mote-1 {
  left: 30%;
  top: 45%;
  animation: oc-mote-drift-1 18s linear infinite;
}

.scn-other-corruptions .mote-2 {
  left: 60%;
  top: 35%;
  animation: oc-mote-drift-2 22s linear infinite;
  animation-delay: 4s;
}

@keyframes oc-backdrop-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.88; }
}

@keyframes oc-bust-sway {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}

@keyframes oc-lamp-glow {
  0% { box-shadow: 0 0 14px 4px rgba(255, 180, 60, 0.5), 0 0 30px 8px rgba(255, 180, 60, 0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 24px 8px rgba(255, 200, 80, 0.7), 0 0 50px 14px rgba(255, 200, 80, 0.4); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px rgba(255, 180, 60, 0.55), 0 0 36px 10px rgba(255, 180, 60, 0.25); opacity: 0.92; }
}

@keyframes oc-beam-sway {
  0% { transform: rotate(-5deg) scaleX(0.9); }
  50% { transform: rotate(2deg) scaleX(1); }
  100% { transform: rotate(-3deg) scaleX(0.85); }
}

@keyframes oc-book-shimmer {
  0% { background: linear-gradient(180deg, #b87878 0%, #7a4444 100%); }
  50% { background: linear-gradient(180deg, #c88878 0%, #8a5454 100%); }
  100% { background: linear-gradient(180deg, #b07070 0%, #6e3a3a 100%); }
}

@keyframes oc-mote-drift-1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  25% { transform: translate(8px, -6px) scale(1.1); opacity: 0.5; }
  50% { transform: translate(-4px, -12px) scale(0.9); opacity: 0.8; }
  75% { transform: translate(10px, -5px) scale(1.2); opacity: 0.3; }
  100% { transform: translate(-2px, 0) scale(1); opacity: 0.2; }
}

@keyframes oc-mote-drift-2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.1; }
  20% { transform: translate(-5px, -8px) scale(1.3); opacity: 0.6; }
  40% { transform: translate(6px, -14px) scale(0.8); opacity: 0.4; }
  60% { transform: translate(-8px, -10px) scale(1.1); opacity: 0.7; }
  80% { transform: translate(4px, -4px) scale(0.9); opacity: 0.3; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.1; }
}

.scn-how-to-convince\? {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 40%, #141428 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 60%);
}
.scn-how-to-convince\? .bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 30%, #2a2a4e 0%, transparent 70%);
  animation: si-htc-bg 12s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-how-to-convince\? .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a24 100%);
  transform-origin: bottom center;
  animation: si-htc-floor 18s ease-in-out infinite;
}
.scn-how-to-convince\? .table {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 15px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  animation: si-htc-table 20s ease-in-out infinite;
}
.scn-how-to-convince\? .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #cc8844 60%, #663300 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #cc8844;
  animation: si-htc-lamp 0.8s ease-in-out infinite alternate;
}
.scn-how-to-convince\? .figure1 {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 130px;
  background: linear-gradient(180deg, #15151a 0%, #0a0a0e 30%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-htc-fig1 4s ease-in-out infinite alternate;
  animation-delay: 0s;
}
.scn-how-to-convince\? .figure2 {
  position: absolute; bottom: 25%; right: 42%; width: 30px; height: 130px;
  background: linear-gradient(180deg, #15151a 0%, #0a0a0e 30%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-htc-fig2 5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-how-to-convince\? .shadow {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.8) 0%, transparent 100%);
  animation: si-htc-shadow 3s ease-in-out infinite alternate;
}

@keyframes si-htc-bg {
  0%   { opacity: 0.7; }
  50%  { opacity: 0.85; }
  100% { opacity: 0.65; }
}
@keyframes si-htc-floor {
  0%   { transform: skewX(0deg); }
  50%  { transform: skewX(-2deg); }
  100% { transform: skewX(0deg); }
}
@keyframes si-htc-table {
  0%   { transform: translateX(-50%) scaleY(1); }
  50%  { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes si-htc-lamp {
  0%   { transform: translateX(-50%) scale(0.95) rotate(-3deg); opacity: 0.8; box-shadow: 0 0 20px 5px #cc8844; }
  50%  { transform: translateX(-50%) scale(1.02) rotate(2deg); opacity: 1; box-shadow: 0 0 35px 12px #cc8844; }
  100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 25px 8px #cc8844; }
}
@keyframes si-htc-fig1 {
  0%   { transform: rotate(-2deg) translateY(0); }
  50%  { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes si-htc-fig2 {
  0%   { transform: rotate(2deg) translateY(0); }
  50%  { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes si-htc-shadow {
  0%   { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.4; }
  50%  { transform: translateX(-50%) scaleX(1.1) scaleY(0.8); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(0.95) scaleY(1.1); opacity: 0.35; }
}

.scn-philosopher-statesman-in-history {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-philosopher-statesman-in-history .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e14, #1a120a);
}
.scn-philosopher-statesman-in-history .bookshelf {
  position: absolute; left: 5%; top: 20%; width: 60px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a, #2a1a0a);
  border-radius: 4px;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.5);
}
.scn-philosopher-statesman-in-history .books {
  position: absolute; left: 8%; top: 22%; width: 50px; height: 66%;
  background: repeating-linear-gradient(90deg, 
    #5a4a3a 0px, #5a4a3a 8px,
    #7a6a5a 8px, #7a6a5a 16px,
    #8a7a6a 16px, #8a7a6a 24px,
    #6a5a4a 24px, #6a5a4a 32px,
    #9a8a7a 32px, #9a8a7a 40px
  );
  border-radius: 0 0 2px 2px;
}
.scn-philosopher-statesman-in-history .desk {
  position: absolute; left: 15%; right: 15%; bottom: 15%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.4);
}
.scn-philosopher-statesman-in-history .figure {
  position: absolute; left: 38%; bottom: 15%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #0f0a05 0%, #0a0705 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psh-figure 6s ease-in-out infinite;
}
.scn-philosopher-statesman-in-history .lamp {
  position: absolute; left: 55%; bottom: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a, #5a4a3a);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 15px 5px rgba(200,150,80,0.4);
  animation: psh-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-philosopher-statesman-in-history .glow {
  position: absolute; left: 40%; right: 10%; bottom: 15%; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,150,80,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: psh-glow 4s ease-in-out infinite alternate;
}
.scn-philosopher-statesman-in-history .candle {
  position: absolute; left: 30%; bottom: 15%; width: 12px; height: 35px;
  background: linear-gradient(180deg, #c8b088, #8a7a5a);
  border-radius: 2px 2px 0 0;
}
.scn-philosopher-statesman-in-history .flame {
  position: absolute; left: 30%; bottom: 43%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,153,51,0.5);
  animation: psh-flame 2s ease-in-out infinite alternate;
  transform-origin: center bottom;
}
@keyframes psh-figure {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes psh-lamp-glow {
  0% { box-shadow: 0 0 12px 5px rgba(200,150,80,0.5); }
  50% { box-shadow: 0 0 24px 12px rgba(200,150,80,0.7); }
  100% { box-shadow: 0 0 15px 6px rgba(200,150,80,0.5); }
}
@keyframes psh-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes psh-flame {
  0% { transform: scale(1,1) rotate(0deg); filter: brightness(1); }
  50% { transform: scale(1.1,1.2) rotate(5deg); filter: brightness(1.2); }
  100% { transform: scale(0.95,1.05) rotate(-5deg); filter: brightness(0.9); }
}

.scn-physician-and-pilot{background:linear-gradient(180deg,#2a2220,#1a1620),radial-gradient(ellipse at 50% 70%,#3a2e2a,transparent 60%);}
.scn-physician-and-pilot .wall{position:absolute;inset:0;background:linear-gradient(180deg,#2a2220,#1a1620);}
.scn-physician-and-pilot .floor{position:absolute;bottom:0;left:0;right:0;height:18%;background:linear-gradient(180deg,#3a2e2a,#1a1610);}
.scn-physician-and-pilot .window{position:absolute;left:5%;top:10%;width:20%;height:30%;background:linear-gradient(135deg,#1a2a3a 0%,#2a3a4a 60%,#0a0a1a 100%);border-radius:4px;box-shadow:inset 0 0 10px rgba(0,0,0,.5);}
.scn-physician-and-pilot .lamp{position:absolute;left:50%;bottom:36%;width:4%;height:6%;transform:translateX(-50%);background:radial-gradient(circle,#f0b080,#b08050);border-radius:50%;box-shadow:0 0 12px 4px #c08040;animation:pp-glow 3s ease-in-out infinite alternate;}
.scn-physician-and-pilot .glow{position:absolute;left:50%;bottom:36%;width:12%;height:18%;transform:translateX(-50%) translateY(-20%);background:radial-gradient(circle,rgba(200,150,100,.3),transparent 70%);border-radius:50%;filter:blur(8px);animation:pp-glow 3s ease-in-out infinite alternate;animation-delay:.5s;}
.scn-physician-and-pilot .table{position:absolute;left:50%;bottom:22%;width:50%;height:12%;transform:translateX(-50%);background:linear-gradient(180deg,#4a3a30,#2a1e18);border-radius:4px;box-shadow:0 -2px 8px rgba(0,0,0,.4);}
.scn-physician-and-pilot .figure-physician{position:absolute;left:28%;bottom:6%;width:14%;height:30%;background:linear-gradient(180deg,#0a080a,#0a0608);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:pp-breath 5s ease-in-out infinite;}
.scn-physician-and-pilot .figure-pilot{position:absolute;right:28%;bottom:6%;width:14%;height:30%;background:linear-gradient(180deg,#0a080a,#0a0608);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:pp-sway 6s ease-in-out infinite;}
.scn-physician-and-pilot .scroll{position:absolute;left:50%;bottom:28%;width:8%;height:3%;transform:translateX(-50%);background:linear-gradient(180deg,#c8b090,#a08070);border-radius:10% / 50%;animation:pp-scroll 8s ease-in-out infinite;}
@keyframes pp-glow{0%{opacity:.8;box-shadow:0 0 8px 2px #c08040}50%{opacity:1;box-shadow:0 0 20px 6px #e0a060}100%{opacity:.85;box-shadow:0 0 10px 3px #c08040}}
@keyframes pp-breath{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
@keyframes pp-sway{0%{transform:rotate(0deg)}50%{transform:rotate(1.5deg)}100%{transform:rotate(0deg)}}
@keyframes pp-scroll{0%{transform:translateX(-50%) rotate(0deg)}50%{transform:translateX(-50%) rotate(-3deg) translateY(-1px)}100%{transform:translateX(-50%) rotate(0deg)}}

.scn-waxen-tablet {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2c2018 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 60%);
}

.scn-waxen-tablet .tablet {
  position: absolute;
  width: 60%;
  height: 30%;
  top: 35%;
  left: 20%;
  background: linear-gradient(135deg, #e8d4b8 0%, #c8b090 100%);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.7), inset 0 2px 4px rgba(255,255,255,0.15);
  animation: wx-float 8s ease-in-out infinite alternate;
  z-index: 2;
}

.scn-waxen-tablet .marks {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
  background-image: 
    radial-gradient(circle at 10% 20%, #8c6e50 2px, transparent 2px),
    radial-gradient(circle at 30% 50%, #7a5c3a 2px, transparent 2px),
    radial-gradient(circle at 50% 70%, #6b4d2e 2px, transparent 2px),
    radial-gradient(circle at 70% 30%, #9b7b5a 1px, transparent 1px),
    radial-gradient(circle at 90% 80%, #5a3f2a 2px, transparent 2px);
  background-size: 40px 40px;
  animation: wx-marks 20s ease-in-out infinite alternate;
}

.scn-waxen-tablet .candle {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a870 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  z-index: 3;
}

.scn-waxen-tablet .flame {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: wx-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 8px rgba(255,160,30,0.6);
}

.scn-waxen-tablet .glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -30%);
  background: radial-gradient(circle, rgba(255,180,60,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: wx-glow 4s ease-in-out infinite alternate;
  z-index: 1;
}

.scn-waxen-tablet .shadow {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 60%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  z-index: 0;
}

.scn-waxen-tablet .dust1,
.scn-waxen-tablet .dust2 {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: wx-dust 15s linear infinite;
}

.scn-waxen-tablet .dust1 {
  top: 20%;
  left: 30%;
  animation-delay: 0s;
}

.scn-waxen-tablet .dust2 {
  top: 40%;
  left: 70%;
  animation-delay: -7s;
}

@keyframes wx-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

@keyframes wx-marks {
  0% { background-position: 0 0; }
  50% { background-position: 5px 5px; }
  100% { background-position: 10px 10px; }
}

@keyframes wx-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.1) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); opacity: 0.8; }
}

@keyframes wx-glow {
  0% { opacity: 0.6; transform: translate(-50%, -30%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -30%) scale(1.05); }
  100% { opacity: 0.7; transform: translate(-50%, -30%) scale(0.95); }
}

@keyframes wx-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  50% { transform: translateY(-30px) translateX(10px); opacity: 0.5; }
  100% { transform: translateY(-60px) translateX(-5px); opacity: 0; }
}

.scn-will-and-way {
  background:
    linear-gradient(170deg, #2a1e18 0%, #1a1210 30%, #100b08 70%, #080604 100%),
    radial-gradient(ellipse at 80% 65%, rgba(200,150,80,0.12) 0%, transparent 50%);
}
.scn-will-and-way .wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 40%);
  pointer-events:none;
}
.scn-will-and-way .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-will-and-way .window {
  position:absolute; top:15%; left:12%; width:28%; height:35%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 70%, #0a1a2a 100%);
  border: 4px solid #3a2a1e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 15px rgba(100,130,160,0.15);
  animation: ww-window 10s ease-in-out infinite alternate;
}
.scn-will-and-way .desk {
  position:absolute; bottom:25%; left:15%; right:15%; height:18%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-will-and-way .book {
  position:absolute; bottom:calc(25% + 10px); left:22%;
  width:45px; height:32px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: perspective(600px) rotateY(15deg) rotateX(5deg);
  animation: ww-book 12s ease-in-out infinite alternate;
}
.scn-will-and-way .figure-body {
  position:absolute; bottom:calc(25% + 18%); left:36%; width:50px; height:70px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ww-body 5s ease-in-out infinite alternate;
}
.scn-will-and-way .figure-head {
  position:absolute; bottom:calc(25% + 18% + 60px); left:39%; width:30px; height:34px;
  background: #0f0a08;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8) rotate(-5deg);
  animation: ww-head 6s ease-in-out infinite alternate;
}
.scn-will-and-way .lamp {
  position:absolute; bottom:calc(25% + 10px); left:62%; width:14px; height:22px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -4px 12px 4px rgba(200,150,80,0.5);
  animation: ww-lamp 4s ease-in-out infinite alternate;
}
.scn-will-and-way .glow {
  position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse at 80% 65%, rgba(200,150,80,0.08) 0%, transparent 55%);
  animation: ww-glow 7s ease-in-out infinite alternate;
}

@keyframes ww-window {
  0%   { opacity:0.4; }
  50%  { opacity:0.7; }
  100% { opacity:0.5; }
}
@keyframes ww-book {
  0%   { transform: perspective(600px) rotateY(15deg) rotateX(5deg); }
  50%  { transform: perspective(600px) rotateY(18deg) rotateX(7deg); }
  100% { transform: perspective(600px) rotateY(12deg) rotateX(3deg); }
}
@keyframes ww-body {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-1.5px); }
  100% { transform: translateY(0); }
}
@keyframes ww-head {
  0%   { transform: scaleX(0.8) rotate(-5deg); }
  50%  { transform: scaleX(0.82) rotate(-3deg); }
  100% { transform: scaleX(0.8) rotate(-5deg); }
}
@keyframes ww-lamp {
  0%   { box-shadow: 0 -4px 8px 2px rgba(200,150,80,0.35); }
  50%  { box-shadow: 0 -4px 16px 6px rgba(200,150,80,0.65); }
  100% { box-shadow: 0 -4px 10px 3px rgba(200,150,80,0.45); }
}
@keyframes ww-glow {
  0%   { opacity:0.5; }
  50%  { opacity:0.8; }
  100% { opacity:0.6; }
}

.scn-injure-anyone\?{background:linear-gradient(#2a1e1a,#1a0f0a,#0a0500),radial-gradient(circle at 50% 80%,rgba(255,150,50,0.15),transparent 50%);position:relative;width:100%;height:100%}
.scn-injure-anyone\? .w{position:absolute;inset:0 0 50% 0;background:linear-gradient(#3a2a22,#1a100a)}
.scn-injure-anyone\? .s{position:absolute;bottom:30%;left:20%;right:20%;height:12%;background:linear-gradient(#5a3a2a,#3a2010);border-radius:4px 4px 0 0}
.scn-injure-anyone\? .g{position:absolute;bottom:35%;left:30%;width:20%;height:20%;background:radial-gradient(ellipse at 50% 100%,#0a0a0a 0%,#080808 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:g 6s ease-in-out alternate}
.scn-injure-anyone\? .c{position:absolute;bottom:30%;left:55%;width:6%;height:15%;background:linear-gradient(#ffd080,#b06030);border-radius:50% 50% 20% 20%/20% 20% 10% 10%;box-shadow:0 0 10px 4px rgba(255,160,0,.3);animation:c 3s ease-in-out alternate}
.scn-injure-anyone\? .l{position:absolute;bottom:35%;left:55%;width:20%;height:20%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,180,80,.5) 0%,rgba(255,100,0,.1) 50%,transparent 100%);border-radius:50%;animation:l 4s ease-in-out alternate}
.scn-injure-anyone\? .b{position:absolute;bottom:30%;left:30%;width:8%;height:4%;background:#5a3a2a;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.5);transform:rotate(-5deg);animation:b 12s ease-in-out}
@keyframes g{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(.98)}100%{transform:translateY(0) scale(1)}}
@keyframes c{0%{transform:scaleY(1);opacity:.9}50%{transform:scaleY(1.05);opacity:1}100%{transform:scaleY(.95);opacity:.85}}
@keyframes l{0%{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}100%{opacity:.6;transform:scale(.95)}}
@keyframes b{0%{transform:rotate(-5deg) translateX(0)}50%{transform:rotate(-4deg) translateX(2px)}100%{transform:rotate(-5deg) translateX(0)}}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.book-row { position: absolute; pointer-events: none; }
.cage { position: absolute; pointer-events: none; }
.dot { position: absolute; pointer-events: none; }
.hound { position: absolute; pointer-events: none; }
.part { position: absolute; pointer-events: none; }
.pearl { position: absolute; pointer-events: none; }
.reveler { position: absolute; pointer-events: none; }
.satellite { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.sound-wave { position: absolute; pointer-events: none; }
.string { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-the-judge-and-the-physician {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 50%, #d4b896 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-the-judge-and-the-physician .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fdf2e3 0%, #ecd9c0 100%);
}
.scn-the-judge-and-the-physician .window {
  position: absolute; top: 8%; left: 55%; width: 28%; height: 38%;
  background: radial-gradient(ellipse at 50% 50%, #fffae6 0%, #e0c8a0 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px #f5e0c0, 0 0 40px #fff5dd;
  animation: jp-window 8s ease-in-out infinite alternate;
}
.scn-the-judge-and-the-physician .judge {
  position: absolute; bottom: 18%; left: 22%; width: 14%; height: 52%;
  background: linear-gradient(135deg, #3a2c22 0%, #2a1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jp-figure 6s ease-in-out infinite;
}
.scn-the-judge-and-the-physician .physician {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 48%;
  background: linear-gradient(135deg, #4a3a30 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jp-figure 6s ease-in-out infinite reverse;
}
.scn-the-judge-and-the-physician .bench {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-the-judge-and-the-physician .book {
  position: absolute; bottom: 16%; left: 30%; width: 8%; height: 6%;
  background: #7a5a3a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: jp-book 10s ease-in-out infinite alternate;
}
.scn-the-judge-and-the-physician .lamp {
  position: absolute; top: 12%; left: 40%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, #d4a050 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #ffe080, 0 0 60px 20px rgba(255,224,128,0.3);
  animation: jp-lamp 4s ease-in-out infinite alternate;
}
@keyframes jp-window {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes jp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes jp-book {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes jp-lamp {
  0% { box-shadow: 0 0 20px 5px #ffe080, 0 0 40px 10px rgba(255,224,128,0.2); }
  50% { box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 25px rgba(255,208,96,0.4); }
  100% { box-shadow: 0 0 25px 8px #ffe080, 0 0 50px 15px rgba(255,224,128,0.3); }
}

.scn-asclepius-and-herodicus {
  background: 
    linear-gradient(180deg, #e3d4c0 0%, #d4c0a8 50%, #b8a088 100%),
    radial-gradient(ellipse at 50% 30%, #fdf0e0 0%, transparent 60%);
}
.scn-asclepius-and-herodicus .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 100%);
}
.scn-asclepius-and-herodicus .pillar {
  position: absolute; bottom: 0; left: 10%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 30%, #c8b8a0 70%);
  border-radius: 8px; box-shadow: 0 0 12px rgba(0,0,0,0.15);
}
.scn-asclepius-and-herodicus .asclepius {
  position: absolute; bottom: 20%; left: 30%; width: 16%; height: 50%;
  background: linear-gradient(135deg, #4a3a2e 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ah-figure 7s ease-in-out infinite;
}
.scn-asclepius-and-herodicus .bed {
  position: absolute; bottom: 22%; right: 25%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #6a5240 0%, #4a3a2a 100%);
  border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-asclepius-and-herodicus .bowl {
  position: absolute; bottom: 32%; right: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle, #c8a070 0%, #8a6a4a 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ah-bowl 5s ease-in-out infinite alternate;
}
.scn-asclepius-and-herodicus .light {
  position: absolute; top: 8%; left: 50%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #fff5e0 0%, transparent 70%);
  animation: ah-light 9s ease-in-out infinite alternate;
}
@keyframes ah-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ah-bowl {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.03); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes ah-light {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 0.9; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}

.scn-the-carpenter-and-the-rich-man {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4ac 50%, #b8a48c 100%),
    radial-gradient(ellipse at 80% 40%, #fdf0dc 0%, transparent 60%);
}
.scn-the-carpenter-and-the-rich-man .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f2e6d4 0%, #dcccb4 100%);
}
.scn-the-carpenter-and-the-rich-man .workbench {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 16%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 6px; box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}
.scn-the-carpenter-and-the-rich-man .carpenter {
  position: absolute; bottom: 26%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(135deg, #3a2e22 0%, #221a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cr-worker 6s ease-in-out infinite;
}
.scn-the-carpenter-and-the-rich-man .rich-man {
  position: absolute; bottom: 26%; right: 18%; width: 14%; height: 44%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cr-worker 6s ease-in-out infinite reverse;
}
.scn-the-carpenter-and-the-rich-man .saw {
  position: absolute; bottom: 30%; left: 30%; width: 3%; height: 20%;
  background: #7a6a5a; border-radius: 2px; transform: rotate(15deg);
  animation: cr-saw 4s ease-in-out infinite alternate;
}
.scn-the-carpenter-and-the-rich-man .wood-plank {
  position: absolute; bottom: 22%; left: 25%; width: 20%; height: 4%;
  background: linear-gradient(90deg, #8a7050 0%, #a08860 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
@keyframes cr-worker {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cr-saw {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(10deg); }
}

.scn-the-physician-and-the-judge {
  background: 
    linear-gradient(180deg, #e8d8c0 0%, #d4c0a0 50%, #b8a080 100%),
    radial-gradient(ellipse at 60% 20%, #fdecd0 0%, transparent 60%);
}
.scn-the-physician-and-the-judge .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #dcc8a8 100%);
}
.scn-the-physician-and-the-judge .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 6px 14px rgba(0,0,0,0.25);
}
.scn-the-physician-and-the-judge .judge {
  position: absolute; bottom: 22%; left: 22%; width: 14%; height: 46%;
  background: linear-gradient(135deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pj-figure 7s ease-in-out infinite;
}
.scn-the-physician-and-the-judge .physician {
  position: absolute; bottom: 22%; right: 22%; width: 12%; height: 42%;
  background: linear-gradient(135deg, #4a3a2e 0%, #261e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pj-figure 7s ease-in-out infinite reverse;
}
.scn-the-physician-and-the-judge .scales {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #b09878 0%, #8a7054 100%);
  clip-path: polygon(50% 0%, 60% 40%, 100% 60%, 60% 80%, 50% 100%, 40% 80%, 0% 60%, 40% 40%);
  animation: pj-scales 8s ease-in-out infinite alternate;
}
.scn-the-physician-and-the-judge .scroll {
  position: absolute; bottom: 18%; left: 38%; width: 6%; height: 8%;
  background: #c8b098; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pj-scroll 10s ease-in-out infinite alternate;
}
@keyframes pj-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pj-scales {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes pj-scroll {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.08); }
  100% { transform: scaleY(1); }
}

.scn-gymnastic-training {
  background: linear-gradient(180deg, #f5f0e6 0%, #e8dcc8 50%, #d4c8b0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 70%);
}
.scn-gymnastic-training .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #e0d8c4 0%, #d0c4ac 100%);
}
.scn-gymnastic-training .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8bca4 0%, #b0a48c 100%);
}
.scn-gymnastic-training .window {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 80px;
  background: linear-gradient(145deg, #c0d4e8 0%, #a0bcd4 100%);
  border-radius: 4px; box-shadow: inset 0 0 12px rgba(255,255,240,0.5);
  animation: gt-window 8s ease-in-out infinite alternate;
}
.scn-gymnastic-training .mat {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(90deg, #8a9a7a 0%, #7a8a6a 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.15);
}
.scn-gymnastic-training .figure {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c8b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-figure 6s ease-in-out infinite alternate;
}
.scn-gymnastic-training .shadow {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.1); border-radius: 50%;
  filter: blur(4px);
  animation: gt-shadow 6s ease-in-out infinite alternate;
}
.scn-gymnastic-training .lamp {
  position: absolute; top: 5%; left: 15%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffe8b0 0%, #e8c870 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 24px 6px rgba(232,200,112,0.4);
  animation: gt-lamp 4s ease-in-out infinite alternate;
}
@keyframes gt-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(-4px) rotate(2deg); }
}
@keyframes gt-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.3; }
  100% { transform: scaleX(0.9); opacity: 0.6; }
}
@keyframes gt-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(232,200,112,0.3); }
  50% { box-shadow: 0 0 30px 8px rgba(232,200,112,0.6); }
  100% { box-shadow: 0 0 18px 3px rgba(232,200,112,0.4); }
}

.scn-simple-gymnastic {
  background: linear-gradient(135deg, #ece4d8 0%, #d8d0c0 50%, #c8bca8 100%),
              radial-gradient(ellipse at 70% 20%, #f5f0e0 0%, transparent 80%);
}
.scn-simple-gymnastic .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e0d4c4 0%, #d0c4b0 100%);
}
.scn-simple-gymnastic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8bca8 0%, #b0a490 100%);
}
.scn-simple-gymnastic .column {
  position: absolute; bottom: 10%; left: 20%; width: 16px; height: 70%;
  background: linear-gradient(90deg, #e0d4c4 0%, #ccc0ac 50%, #b8ac98 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-simple-gymnastic .figure {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sg-figure 7s ease-in-out infinite alternate;
}
.scn-simple-gymnastic .shield {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 24px;
  background: radial-gradient(circle, #c8b080 0%, #b09868 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sg-shield 7s ease-in-out infinite alternate;
}
.scn-simple-gymnastic .light-ray {
  position: absolute; top: 5%; left: 45%; width: 40px; height: 4px;
  background: linear-gradient(90deg, rgba(255,248,230,0) 0%, rgba(255,248,230,0.6) 100%);
  transform: rotate(-20deg);
  animation: sg-lightray 10s linear infinite;
}
.scn-simple-gymnastic .scroll {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 2px;
  animation: sg-scroll 14s ease-in-out infinite;
}
@keyframes sg-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-2deg); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes sg-shield {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.05); }
  100% { transform: translateY(2px) scale(0.95); }
}
@keyframes sg-lightray {
  0% { transform: rotate(-20deg) translateX(-20px); opacity: 0; }
  50% { opacity: 0.8; }
  100% { transform: rotate(-20deg) translateX(60px); opacity: 0; }
}
@keyframes sg-scroll {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-simple-food-like-homers-heroes {
  background: linear-gradient(180deg, #f5ecdc 0%, #e8dcc8 50%, #d0c4ac 100%),
              radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 70%);
}
.scn-simple-food-like-homers-heroes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4c8b4 0%, #b8ac98 100%);
}
.scn-simple-food-like-homers-heroes .table {
  position: absolute; bottom: 30%; left: 25%; width: 100px; height: 14px;
  background: linear-gradient(90deg, #c8b89c 0%, #b8a88c 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-simple-food-like-homers-heroes .plate {
  position: absolute; bottom: 36%; left: 35%; width: 44px; height: 10px;
  background: radial-gradient(ellipse, #e0d4c0 0%, #ccc0a8 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.scn-simple-food-like-homers-heroes .bread {
  position: absolute; bottom: 38%; left: 37%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #d4b898 0%, #c0a080 100%);
  border-radius: 30% 30% 20% 20%;
  animation: sf-bread 5s ease-in-out infinite alternate;
}
.scn-simple-food-like-homers-heroes .olive {
  position: absolute; bottom: 37%; left: 42%; width: 8px; height: 8px;
  background: radial-gradient(circle, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: sf-olive 3s ease-in-out infinite alternate;
}
.scn-simple-food-like-homers-heroes .figure {
  position: absolute; bottom: 28%; left: 50%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-figure 8s ease-in-out infinite alternate;
}
.scn-simple-food-like-homers-heroes .cup {
  position: absolute; bottom: 34%; left: 30%; width: 14px; height: 16px;
  background: linear-gradient(90deg, #d4c0a8 0%, #c0ac94 100%);
  border-radius: 4px 4px 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
@keyframes sf-bread {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(2deg); }
  100% { transform: scale(0.95) rotate(-1deg); }
}
@keyframes sf-olive {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sf-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(8px) translateY(-4px); }
  100% { transform: translateX(-4px) translateY(2px); }
}

.scn-the-valetudinarian {
  background: linear-gradient(180deg, #f5ece0 0%, #e8dcc8 50%, #d0c4b0 100%),
              radial-gradient(ellipse at 60% 10%, #fff0d0 0%, transparent 80%);
}
.scn-the-valetudinarian .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ece0cc 0%, #d8ccb8 100%);
}
.scn-the-valetudinarian .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d0c4b0 0%, #b8ac98 100%);
}
.scn-the-valetudinarian .bed {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #e0d4c0 0%, #c8bca8 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: tv-bed 6s ease-in-out infinite alternate;
}
.scn-the-valetudinarian .figure {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tv-figure 4s ease-in-out infinite alternate;
}
.scn-the-valetudinarian .bottle {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 24px;
  background: linear-gradient(90deg, #b8a898 0%, #a09080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
  animation: tv-bottle 8s ease-in-out infinite;
}
.scn-the-valetudinarian .spoon {
  position: absolute; bottom: 32%; left: 50%; width: 18px; height: 6px;
  background: linear-gradient(90deg, #d4c4b0 0%, #c0b09c 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-20deg);
  animation: tv-spoon 3s ease-in-out infinite alternate;
}
.scn-the-valetudinarian .vapor {
  position: absolute; top: 15%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,248,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tv-vapor 5s ease-in-out infinite;
}
@keyframes tv-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(0); }
}
@keyframes tv-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes tv-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tv-spoon {
  0% { transform: rotate(-20deg) translateX(0); }
  100% { transform: rotate(-10deg) translateX(6px); }
}
@keyframes tv-vapor {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.6; }
  100% { transform: translateY(0) scale(1); opacity: 0.2; }
}

/* Scene: temperance-in-the-state */
.scn-temperance-in-the-state {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 40%, #f0e68c 70%, #d2b48c 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 60%);
}
.scn-temperance-in-the-state .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ffe4b5 0%, #87ceeb 100%); animation: temp-sky 15s ease-in-out infinite alternate;
}
.scn-temperance-in-the-state .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; border-radius: 50%; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%); box-shadow: 0 0 40px 20px #ffd700, 0 0 80px 40px rgba(255,215,0,0.3); animation: temp-sun 8s ease-in-out infinite alternate;
}
.scn-temperance-in-the-state .temple {
  position: absolute; bottom: 30%; left: 30%; width: 200px; height: 150px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.2); animation: temp-temple 12s ease-in-out infinite alternate;
}
.scn-temperance-in-the-state .figure {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: temp-figure 6s ease-in-out infinite;
}
.scn-temperance-in-the-state .water {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 60px; background: linear-gradient(180deg, #87ceeb 0%, #4169e1 100%); border-radius: 0 0 50% 50%; opacity: 0.8; animation: temp-water 4s ease-in-out infinite;
}
.scn-temperance-in-the-state .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); border-radius: 20% 20% 0 0;
}
@keyframes temp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes temp-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 15px #ffd700; } 50% { transform: scale(1.1); box-shadow: 0 0 50px 25px #ffd700, 0 0 90px 45px rgba(255,215,0,0.4); } 100% { transform: scale(0.95); box-shadow: 0 0 35px 18px #ffd700; } }
@keyframes temp-temple { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes temp-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes temp-water { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.2); } 100% { opacity: 0.7; transform: scaleY(1); } }

/* Scene: justice-in-the-state */
.scn-justice-in-the-state {
  background: linear-gradient(180deg, #fffacd 0%, #f5deb3 30%, #d2b48c 60%, #8b7355 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 50%);
}
.scn-justice-in-the-state .wall {
  position: absolute; inset: 0 10% 20% 10%; background: linear-gradient(180deg, #e0c9a8 0%, #c4a882 100%); border-radius: 5px; box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-justice-in-the-state .window {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 100px; background: linear-gradient(180deg, #87ceeb 0%, #fff 100%); border: 6px solid #8b4513; border-radius: 10%; animation: jst-window 10s ease-in-out infinite alternate;
}
.scn-justice-in-the-state .judge {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 60px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: jst-judge 7s ease-in-out infinite;
}
.scn-justice-in-the-state .scales {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 40px; background: linear-gradient(180deg, #b8860b 0%, #8b6914 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: jst-scales 5s ease-in-out infinite alternate;
}
.scn-justice-in-the-state .bench {
  position: absolute; bottom: 22%; left: 30%; width: 140px; height: 20px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-justice-in-the-state .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%); border-radius: 10% 10% 0 0;
}
@keyframes jst-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(135,206,235,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(135,206,235,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(135,206,235,0.4); } }
@keyframes jst-judge { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes jst-scales { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

/* Scene: the-residue-is-justice */
.scn-the-residue-is-justice {
  background: linear-gradient(180deg, #87ceeb 0%, #98fb98 40%, #2e8b57 70%, #006400 100%), radial-gradient(ellipse at 50% 10%, #fffacd 0%, transparent 60%);
}
.scn-the-residue-is-justice .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffe4b5 0%, #87ceeb 100%); animation: res-sky 20s ease-in-out infinite alternate;
}
.scn-the-residue-is-justice .trees {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: res-trees 15s ease-in-out infinite alternate;
}
.scn-the-residue-is-justice .thicket {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 80px; background: radial-gradient(ellipse at 50% 100%, #006400 0%, #228b22 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(0,100,0,0.5); animation: res-thicket 8s ease-in-out infinite;
}
.scn-the-residue-is-justice .hunter-left {
  position: absolute; bottom: 15%; left: 10%; width: 25px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: res-hunt 6s ease-in-out infinite;
}
.scn-the-residue-is-justice .hunter-right {
  position: absolute; bottom: 15%; right: 10%; width: 25px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: res-hunt 7s ease-in-out infinite reverse;
}
.scn-the-residue-is-justice .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2e8b57 0%, #006400 100%); border-radius: 30% 30% 0 0;
}
@keyframes res-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes res-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes res-thicket { 0% { transform: scale(0.95); box-shadow: 0 0 20px 5px rgba(0,100,0,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(0,100,0,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 25px 8px rgba(0,100,0,0.45); } }
@keyframes res-hunt { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-3deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: justice-is-doing-ones-own-work */
.scn-justice-is-doing-ones-own-work {
  background: linear-gradient(180deg, #ffa07a 0%, #f5deb3 30%, #d2b48c 60%, #a0522d 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 50%);
}
.scn-justice-is-doing-ones-own-work .wall {
  position: absolute; inset: 0 5% 15% 5%; background: linear-gradient(180deg, #e0c9a8 0%, #c4a882 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-justice-is-doing-ones-own-work .workbench {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 20px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-justice-is-doing-ones-own-work .carpenter {
  position: absolute; bottom: 25%; left: 15%; width: 30px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: own-worker 6s ease-in-out infinite;
}
.scn-justice-is-doing-ones-own-work .potter {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: own-worker 8s ease-in-out infinite 0.5s;
}
.scn-justice-is-doing-ones-own-work .weaver {
  position: absolute; bottom: 26%; left: 75%; width: 30px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: own-worker 7s ease-in-out infinite 1s;
}
.scn-justice-is-doing-ones-own-work .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 20% 20% 0 0;
}
@keyframes own-worker { 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); } }

/* three-modes-of-payment */
.scn-three-modes-of-payment {
  background: linear-gradient(135deg, #2b1e12 0%, #3a281a 40%, #1c120a 100%), radial-gradient(ellipse at 50% 80%, #5a3e28 0%, transparent 60%);
}
.scn-three-modes-of-payment .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1e10 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-three-modes-of-payment .coin {
  position: absolute; bottom: 22%; width: 24px; height: 24px;
  border-radius: 50%; background: radial-gradient(circle, #e8c870 0%, #b08840 60%, #806030 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5), inset 0 1px 2px rgba(255,215,0,0.3);
}
.scn-three-modes-of-payment .coin-1 { left: 32%; animation: tmp-coin 5s ease-in-out infinite 0s; }
.scn-three-modes-of-payment .coin-2 { left: 44%; animation: tmp-coin 5s ease-in-out infinite 0.5s; }
.scn-three-modes-of-payment .coin-3 { left: 56%; animation: tmp-coin 5s ease-in-out infinite 1s; }
.scn-three-modes-of-payment .hand {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 60% 40% 40% 60% / 30% 40% 40% 30%;
  transform-origin: 60% 100%; animation: tmp-hand 6s ease-in-out infinite;
}
.scn-three-modes-of-payment .candle {
  position: absolute; bottom: 22%; left: 68%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b8a080 60%, #7a6040 100%);
  border-radius: 2px 2px 6px 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-three-modes-of-payment .flame {
  position: absolute; bottom: 48%; left: 67.4%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffdd80 0%, #f0a040 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tmp-flame 2s ease-in-out infinite alternate;
}
.scn-three-modes-of-payment .glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 70% 40%, rgba(255,200,80,0.08) 0%, transparent 60%);
  animation: tmp-glow 4s ease-in-out infinite alternate;
}
@keyframes tmp-coin {
  0% { transform: translateY(0); }
  25% { transform: translateY(-4px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tmp-hand {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(8deg) translateY(-2px); }
}
@keyframes tmp-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.7; }
  50% { transform: scaleY(1.3) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(1.1); opacity: 0.9; }
}
@keyframes tmp-glow {
  0% { opacity: 0.5; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.05); }
}

/* penalty-for-refusing-to-rule */
.scn-penalty-for-refusing-to-rule {
  background: linear-gradient(180deg, #1e1610 0%, #2a1e14 40%, #14100a 100%),
              radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, transparent 70%);
}
.scn-penalty-for-refusing-to-rule .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
}
.scn-penalty-for-refusing-to-rule .throne {
  position: absolute; bottom: 12%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-penalty-for-refusing-to-rule .throne::after {
  content: ''; position: absolute; bottom: 8px; left: 10px; right: 10px; height: 12px;
  background: #4a3a2a; border-radius: 4px;
}
.scn-penalty-for-refusing-to-rule .figure {
  position: absolute; bottom: 14%; left: 44%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 50% 100%; animation: prr-figure 8s ease-in-out infinite;
}
.scn-penalty-for-refusing-to-rule .chain {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 8px, transparent 8px, transparent 12px);
  border-radius: 2px; animation: prr-chain 3s ease-in-out infinite;
}
.scn-penalty-for-refusing-to-rule .shadow {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: prr-shadow 6s ease-in-out infinite alternate;
}
.scn-penalty-for-refusing-to-rule .lamp {
  position: absolute; top: 10%; left: 15%; width: 6px; height: 20px;
  background: #6a5a4a; border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.15);
  animation: prr-lamp 4s ease-in-out infinite alternate;
}
@keyframes prr-figure {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-5deg) translateX(-8px); }
  50% { transform: rotate(0deg) translateX(-16px); }
  75% { transform: rotate(3deg) translateX(-8px); }
}
@keyframes prr-chain {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes prr-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  100% { transform: scaleX(1.2); opacity: 0.7; }
}
@keyframes prr-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(200,160,80,0.1); }
  100% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,160,80,0.2); }
}

/* the-three-rewards-of-rule */
.scn-the-three-rewards-of-rule {
  background: linear-gradient(135deg, #2a1f14 0%, #1a120a 40%, #0e0a06 100%),
              radial-gradient(ellipse at 50% 70%, #4a3825 0%, transparent 60%);
}
.scn-the-three-rewards-of-rule .pedestal {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-the-three-rewards-of-rule .crown {
  position: absolute; bottom: 22%; left: 34%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #e8c870 0%, #b09040 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: trr-reward 7s ease-in-out infinite 0s;
}
.scn-the-three-rewards-of-rule .laurel {
  position: absolute; bottom: 22%; left: 46%; width: 24px; height: 24px;
  background: radial-gradient(circle, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(90,122,58,0.5);
  animation: trr-reward 7s ease-in-out infinite 1s;
}
.scn-the-three-rewards-of-rule .purse {
  position: absolute; bottom: 22%; left: 58%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 30% 30% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: trr-reward 7s ease-in-out infinite 2s;
}
.scn-the-three-rewards-of-rule .hand {
  position: absolute; bottom: 18%; left: 42%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 40% 40% 50% / 50% 60% 60% 50%;
  transform-origin: 50% 100%; animation: trr-hand 6s ease-in-out infinite;
}
.scn-the-three-rewards-of-rule .light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 30%, rgba(200,160,80,0.05) 0%, transparent 60%);
  animation: trr-light 5s ease-in-out infinite alternate;
}
@keyframes trr-reward {
  0% { transform: translateY(0); }
  25% { transform: translateY(-6px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes trr-hand {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(10deg) translateY(-2px); }
}
@keyframes trr-light {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* the-worst-punishment */
.scn-the-worst-punishment {
  background: linear-gradient(180deg, #0a0806 0%, #1a120e 40%, #0f0c0a 100%),
              radial-gradient(ellipse at 50% 50%, #1e1610 0%, transparent 70%);
}
.scn-the-worst-punishment .wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #1a140e 0px, #1a140e 8px, #14100a 8px, #14100a 10px);
  opacity: 0.3;
}
.scn-the-worst-punishment .figure {
  position: absolute; bottom: 14%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: twp-figure 10s ease-in-out infinite;
}
.scn-the-worst-punishment .chains {
  position: absolute; left: 50%; width: 4px;
  background: repeating-linear-gradient(180deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 10px);
}
.scn-the-worst-punishment .chains-1 { bottom: 78%; height: 60px; transform: translateX(-30px); animation: twp-chain 4s ease-in-out infinite; }
.scn-the-worst-punishment .chains-2 { bottom: 78%; height: 60px; transform: translateX(30px); animation: twp-chain 4s ease-in-out infinite 1s; }
.scn-the-worst-punishment .window {
  position: absolute; top: 10%; left: 40%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #14100a 0%, #1a1410 100%);
  border: 4px solid #2a1e14; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-the-worst-punishment .bar {
  position: absolute; top: 10%; left: 40%; width: 4px; height: 64px;
  background: #2a1e14; border-radius: 2px;
}
.scn-the-worst-punishment .bar-1 { left: calc(40% + 6px); }
.scn-the-worst-punishment .bar-2 { left: calc(40% + 18px); }
.scn-the-worst-punishment .bar-3 { left: calc(40% + 30px); }
@keyframes twp-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
}
@keyframes twp-chain {
  0%, 100% { transform: translateX(-30px) rotate(0deg); }
  50% { transform: translateX(-30px) rotate(3deg); }
}

.scn-books-of-musaeus-and-orpheus {
  background: linear-gradient(180deg, #1a1423 0%, #2a1f33 40%, #1a0f1a 100%), radial-gradient(ellipse at 50% 100%, #2a1f33 0%, transparent 70%);
}
.scn-books-of-musaeus-and-orpheus .bo-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f33 0%, #0d0a12 100%); animation: bo-bg 12s ease-in-out infinite alternate; }
.scn-books-of-musaeus-and-orpheus .bo-altar { position:absolute; bottom:20%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: bo-altar 6s ease-in-out infinite; }
.scn-books-of-musaeus-and-orpheus .bo-scroll { position:absolute; bottom:30%; left:45%; width:40px; height:50px; background: linear-gradient(135deg, #c8a86a 0%, #a07840 100%); border-radius: 10% 40% 30% 10%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bo-scroll 8s ease-in-out infinite; }
.scn-books-of-musaeus-and-orpheus .bo-flame { position:absolute; bottom:38%; left:50%; width:14px; height:28px; background: radial-gradient(circle at 50% 80%, #ffaa40 0%, #ff6000 60%, transparent 100%); border-radius:50% 50% 20% 20% / 60% 60% 40% 40%; animation: bo-flame 1.5s ease-in-out infinite alternate; box-shadow: 0 0 24px 10px rgba(255,120,0,.6); }
.scn-books-of-musaeus-and-orpheus .bo-smoke { position:absolute; bottom:45%; left:48%; width:40px; height:20px; background: radial-gradient(circle, rgba(180,160,140,.3) 0%, transparent 70%); filter: blur(6px); animation: bo-smoke 4s ease-out infinite; }
.scn-books-of-musaeus-and-orpheus .bo-shadow { position:absolute; bottom:15%; left:40%; width:80px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation: bo-shadow 6s ease-in-out infinite; }
.scn-books-of-musaeus-and-orpheus .bo-figure { position:absolute; bottom:20%; right:35%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0404 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bo-figure 5s ease-in-out infinite; }
@keyframes bo-bg { 0% { opacity:.8 } 50% { opacity:.6 } 100% { opacity:.9 } }
@keyframes bo-altar { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes bo-scroll { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } }
@keyframes bo-flame { 0% { transform: scaleY(1) scaleX(1); opacity:1; } 50% { transform: scaleY(1.3) scaleX(.85); opacity:.9; } 100% { transform: scaleY(.9) scaleX(1.1); opacity:1; } }
@keyframes bo-smoke { 0% { transform: translateY(0) scale(1); opacity:.4; } 100% { transform: translateY(-60px) scale(3); opacity:0; } }
@keyframes bo-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.5); opacity:.8; } 100% { transform: scaleX(1); opacity:.5; } }
@keyframes bo-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } }

.scn-the-gods-can-be-bought {
  background: linear-gradient(180deg, #1f171f 0%, #2f202f 30%, #0f0810 100%), radial-gradient(ellipse at 50% 100%, #2f202f 0%, transparent 70%);
}
.scn-the-gods-can-be-bought .gc-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2f202f 0%, #0f0810 100%); animation: gc-bg 14s ease-in-out infinite alternate; }
.scn-the-gods-can-be-bought .gc-temple { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-the-gods-can-be-bought .gc-statue { position:absolute; bottom:30%; left:50%; width:50px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #1a1010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: gc-statue 10s ease-in-out infinite; }
.scn-the-gods-can-be-bought .gc-offering { position:absolute; bottom:25%; left:43%; width:20px; height:20px; background: radial-gradient(circle, #b08050 0%, #7a5030 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(180,120,60,.4); animation: gc-offering 4s ease-in-out infinite alternate; }
.scn-the-gods-can-be-bought .gc-smoke { position:absolute; bottom:45%; left:48%; width:30px; height:40px; background: radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 60%); filter: blur(8px); animation: gc-smoke 5s ease-out infinite; }
.scn-the-gods-can-be-bought .gc-coin { position:absolute; bottom:22%; left:55%; width:12px; height:12px; background: radial-gradient(circle, #d0a050 0%, #b08030 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: gc-coin 3s ease-in-out infinite; }
.scn-the-gods-can-be-bought .gc-light { position:absolute; bottom:38%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,180,80,.15) 0%, transparent 70%); pointer-events:none; animation: gc-light 8s ease-in-out infinite alternate; }
@keyframes gc-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes gc-statue { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } }
@keyframes gc-offering { 0% { transform: scale(1) translateY(0); opacity:.8; } 100% { transform: scale(1.2) translateY(-4px); opacity:1; } }
@keyframes gc-smoke { 0% { transform: translateY(0) scale(1); opacity:.5; } 100% { transform: translateY(-80px) scale(4); opacity:0; } }
@keyframes gc-coin { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(90deg) translateY(-6px); } 50% { transform: rotate(180deg) translateY(0); } 75% { transform: rotate(270deg) translateY(-4px); } 100% { transform: rotate(360deg) translateY(0); } }
@keyframes gc-light { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.7; transform: scale(1.4); } 100% { opacity:.4; transform: scale(.9); } }

.scn-ask-socrates-to-defend-justice {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #0e0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2030 0%, transparent 70%);
}
.scn-ask-socrates-to-defend-justice .as-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #0e0a1a 100%); animation: as-bg 16s ease-in-out infinite alternate; }
.scn-ask-socrates-to-defend-justice .as-column { position:absolute; bottom:0; left:20%; width:20px; height:80%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: as-column 12s ease-in-out infinite; }
.scn-ask-socrates-to-defend-justice .as-socrates { position:absolute; bottom:20%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #0e040e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-socrates 5s ease-in-out infinite; }
.scn-ask-socrates-to-defend-justice .as-scroll { position:absolute; bottom:28%; left:40%; width:35px; height:45px; background: linear-gradient(135deg, #b89868 0%, #8a7040 100%); border-radius: 10% 30% 20% 10%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: as-scroll 7s ease-in-out infinite; }
.scn-ask-socrates-to-defend-justice .as-lamp { position:absolute; bottom:35%; left:32%; width:12px; height:18px; background: radial-gradient(circle at 50% 80%, #ffbb50 0%, #cc6400 60%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 0 18px 6px rgba(255,130,0,.6); animation: as-lamp 2.5s ease-in-out infinite alternate; }
.scn-ask-socrates-to-defend-justice .as-shadow { position:absolute; bottom:10%; left:30%; width:100px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 100%); animation: as-shadow 6s ease-in-out infinite; }
@keyframes as-bg { 0% { opacity:.8 } 50% { opacity:.7 } 100% { opacity:.9 } }
@keyframes as-column { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes as-socrates { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes as-scroll { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } }
@keyframes as-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.2) scaleX(.85); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.85; } }
@keyframes as-shadow { 0% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.3); opacity:.9; } 100% { transform: scaleX(1); opacity:.6; } }

.scn-reading-large-letters {
  background: linear-gradient(180deg, #2a2018 0%, #3a2a20 30%, #1a1008 100%), radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-reading-large-letters .rl-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); animation: rl-bg 18s ease-in-out infinite alternate; }
.scn-reading-large-letters .rl-table { position:absolute; bottom:0; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-reading-large-letters .rl-scroll { position:absolute; bottom:20%; left:25%; width:120px; height:90px; background: linear-gradient(135deg, #c8a868 0%, #a07838 100%); border-radius: 2% 40% 30% 2%; transform: rotate(5deg); box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: rl-scroll 10s ease-in-out infinite; overflow:hidden; }
.scn-reading-large-letters .rl-scroll::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 2px, #c8a868 2px, #c8a868 6px); opacity:.3; }
.scn-reading-large-letters .rl-hand { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #c89868 0%, #a07040 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: rl-hand 4s ease-in-out infinite; }
.scn-reading-large-letters .rl-candle { position:absolute; bottom:35%; left:65%; width:10px; height:30px; background: linear-gradient(180deg, #f0e0c8 0%, #d0b090 60%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px rgba(255,200,100,.3); animation: rl-candle 3s ease-in-out infinite alternate; }
.scn-reading-large-letters .rl-glow { position:absolute; bottom:30%; left:60%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.2) 0%, transparent 70%); pointer-events:none; animation: rl-glow 5s ease-in-out infinite alternate; }
@keyframes rl-bg { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes rl-scroll { 0%,100% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.01); } }
@keyframes rl-hand { 0%,100% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(18deg) translateY(-4px); } 75% { transform: rotate(14deg) translateY(-2px); } }
@keyframes rl-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.1) scaleX(.95); opacity:1; } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.85; } }
@keyframes rl-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.3); } 100% { opacity:.4; transform: scale(.9); } }

/* thrasymachus-blushes - calm, dim interior */
.scn-thrasymachus-blushes {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 60%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-thrasymachus-blushes .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-thrasymachus-blushes .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0e04 0%, #0e0802 100%); }
.scn-thrasymachus-blushes .figure-left { position:absolute; bottom:28%; left:22%; width:30px; 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: tb-fig-left 6s ease-in-out infinite; }
.scn-thrasymachus-blushes .figure-right { position:absolute; bottom:28%; right:22%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-fig-right 6s ease-in-out infinite 0.5s; }
.scn-thrasymachus-blushes .table { position:absolute; bottom:30%; left:50%; width:70px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-thrasymachus-blushes .lamp { position:absolute; bottom:40%; left:45%; width:10px; height:16px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: tb-lamp 4s ease-in-out infinite alternate; }
.scn-thrasymachus-blushes .blush-glow { position:absolute; bottom:32%; right:28%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, transparent 70%); border-radius:50%; animation: tb-blush 5s ease-in-out infinite; }
@keyframes tb-fig-left { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes tb-fig-right { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes tb-lamp { 0% { opacity:.8; box-shadow: 0 0 12px 4px #c08040; } 50% { opacity:1; box-shadow: 0 0 28px 8px #ffd060; } 100% { opacity:.85; box-shadow: 0 0 16px 5px #c08040; } }
@keyframes tb-blush { 0%,100% { opacity:.4; transform: scale(1); } 50% { opacity:.8; transform: scale(1.3); } }

/* injustice-means-weakness - tense, dim interior */
.scn-injustice-means-weakness {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%), radial-gradient(ellipse at 50% 90%, #2a2a4e 0%, transparent 70%);
}
.scn-injustice-means-weakness .bg-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-injustice-means-weakness .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0e0e1a 0%, #08080e 100%); }
.scn-injustice-means-weakness .figure-strong { position:absolute; bottom:30%; left:60%; width:28px; height:70px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iw-strong 7s ease-in-out infinite; }
.scn-injustice-means-weakness .figure-weak { position:absolute; bottom:30%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scale(0.8) rotate(-10deg); animation: iw-weak 4s ease-in-out infinite; }
.scn-injustice-means-weakness .shadow { position:absolute; bottom:30%; left:45%; width:40px; height:10px; background: rgba(0,0,0,.6); border-radius:50%; filter: blur(3px); animation: iw-shadow 5s ease-in-out infinite; }
.scn-injustice-means-weakness .chains { position:absolute; bottom:25%; left:38%; width:6px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: top center; animation: iw-chains 3s ease-in-out infinite alternate; }
@keyframes iw-strong { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes iw-weak { 0%,100% { transform: scale(0.8) rotate(-10deg) translateY(0); } 50% { transform: scale(0.75) rotate(-12deg) translateY(4px); } }
@keyframes iw-shadow { 0%,100% { opacity:.5; transform: scaleX(1); } 50% { opacity:.8; transform: scaleX(1.1); } }
@keyframes iw-chains { 0% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }

/* the-power-of-injustice - tense, dim interior */
.scn-the-power-of-injustice {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%), radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 80%);
}
.scn-the-power-of-injustice .bg-throne { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); }
.scn-the-power-of-injustice .pillar-left { position:absolute; top:0; left:10%; width:12px; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); box-shadow: 2px 0 4px rgba(0,0,0,.5); }
.scn-the-power-of-injustice .pillar-right { position:absolute; top:0; right:10%; width:12px; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); box-shadow: -2px 0 4px rgba(0,0,0,.5); }
.scn-the-power-of-injustice .throne { position:absolute; bottom:30%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-the-power-of-injustice .figure-king { position:absolute; bottom:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pi-king 8s ease-in-out infinite; }
.scn-the-power-of-injustice .power-glow { position:absolute; bottom:48%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #a0461a 0%, transparent 70%); border-radius:50%; animation: pi-glow 3s ease-in-out infinite alternate; }
.scn-the-power-of-injustice .scepter { position:absolute; bottom:42%; left:62%; width:4px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: pi-scepter 5s ease-in-out infinite; }
@keyframes pi-king { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes pi-glow { 0% { opacity:.6; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.4); } 100% { opacity:.7; transform:translateX(-50%) scale(1.1); } }
@keyframes pi-scepter { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } }

/* band-of-thieves - tense, dim interior */
.scn-band-of-thieves {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%), radial-gradient(ellipse at 50% 90%, #2a2a4e 0%, transparent 80%);
}
.scn-band-of-thieves .bg-cave { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-band-of-thieves .table { position:absolute; bottom:30%; left:50%; width:100px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: 0 3px 6px rgba(0,0,0,.5); }
.scn-band-of-thieves .map { position:absolute; bottom:33%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bt-map 10s ease-in-out infinite; }
.scn-band-of-thieves .thief-1 { position:absolute; bottom:30%; left:22%; width:24px; height:52px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-thief1 6s ease-in-out infinite; }
.scn-band-of-thieves .thief-2 { position:absolute; bottom:30%; right:22%; width:24px; height:52px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-thief2 6s ease-in-out infinite 0.5s; }
.scn-band-of-thieves .thief-3 { position:absolute; bottom:32%; left:46%; width:20px; height:44px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-thief3 8s ease-in-out infinite 1s; }
.scn-band-of-thieves .candle { position:absolute; bottom:32%; left:54%; width:6px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #806040 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #f0c068; animation: bt-candle 3s ease-in-out infinite alternate; }
@keyframes bt-map { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); } }
@keyframes bt-thief1 { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes bt-thief2 { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes bt-thief3 { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.95); } }
@keyframes bt-candle { 0% { opacity:.8; box-shadow: 0 0 8px 2px #f0c068; } 50% { opacity:1; box-shadow: 0 0 16px 6px #ffd080; } 100% { opacity:.85; box-shadow: 0 0 10px 3px #f0c068; } }

.scn-the-lean-dogs-and-fat-sheep {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 50%, #8a4a2a 0%, transparent 60%);
}
.scn-the-lean-dogs-and-fat-sheep .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a1a 80%, transparent);
  animation: ld-sky 8s ease-in-out infinite alternate;
}
.scn-the-lean-dogs-and-fat-sheep .city-wall {
  position: absolute; bottom: 40%; left: 10%; width: 60%; height: 18%;
  background: repeating-linear-gradient(0deg, #3a2a1a 0px, #4a3a2a 4px, #3a2a1a 8px);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
  animation: ld-wall 10s ease-in-out infinite;
}
.scn-the-lean-dogs-and-fat-sheep .dog {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-dog 1.5s ease-in-out infinite;
}
.scn-the-lean-dogs-and-fat-sheep .sheep {
  position: absolute; bottom: 32%; left: 50%; width: 28px; height: 20px;
  background: radial-gradient(ellipse at 40% 40%, #c8a880 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ld-sheep 3s ease-in-out infinite alternate;
}
.scn-the-lean-dogs-and-fat-sheep .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
}
.scn-the-lean-dogs-and-fat-sheep .dust-line {
  position: absolute; bottom: 36%; left: 35%; width: 30%; height: 2px;
  background: rgba(80,60,40,.4);
  filter: blur(1px);
  animation: ld-dust 2s ease-in-out infinite;
}
@keyframes ld-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes ld-wall {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ld-dog {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ld-sheep {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.02); }
  100% { transform: translateX(-2px) scaleX(0.98); }
}
@keyframes ld-dust {
  0% { opacity: 0; transform: translateY(0) scaleX(1); }
  50% { opacity: 0.6; transform: translateY(-2px) scaleX(1.3); }
  100% { opacity: 0; transform: translateY(0) scaleX(0.8); }
}

.scn-the-law-of-innovation {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a5e 0%, transparent 70%);
}
.scn-the-law-of-innovation .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: li-sky 15s ease-in-out infinite alternate;
}
.scn-the-law-of-innovation .moon {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #d0d0e8 0%, #b0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(180,180,220,.3), 0 0 80px 20px rgba(180,180,220,.1);
  animation: li-moon 20s ease-in-out infinite alternate;
}
.scn-the-law-of-innovation .pillar {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 50%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: li-pillar 6s ease-in-out infinite;
}
.scn-the-law-of-innovation .guardian-figure {
  position: absolute; bottom: 25%; left: 42%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-guardian 4s ease-in-out infinite;
}
.scn-the-law-of-innovation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-the-law-of-innovation .glow-haze {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(180,180,220,.08) 0%, transparent 100%);
  filter: blur(8px);
  animation: li-haze 8s ease-in-out infinite alternate;
}
@keyframes li-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes li-moon {
  0% { transform: translateY(0) scale(1); filter: brightness(1); }
  50% { transform: translateY(4px) scale(1.02); filter: brightness(1.1); }
  100% { transform: translateY(-2px) scale(0.98); filter: brightness(0.9); }
}
@keyframes li-pillar {
  0% { transform: scaleY(1); opacity: 1; }
  50% { transform: scaleY(1.01); opacity: .9; }
  100% { transform: scaleY(1); opacity: 1; }
}
@keyframes li-guardian {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(2px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes li-haze {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .2; transform: scale(0.95); }
}

.scn-music-and-law {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 80%);
}
.scn-music-and-law .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: ml-sky 12s ease-in-out infinite alternate;
}
.scn-music-and-law .moon {
  position: absolute; top: 5%; left: 50%; width: 36px; height: 36px;
  background: radial-gradient(circle at 30% 30%, #d0d0e8 0%, #b0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(180,180,220,.3), 0 0 60px 15px rgba(180,180,220,.1);
  animation: ml-moon 18s ease-in-out infinite alternate;
}
.scn-music-and-law .lyre {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ml-lyre 5s ease-in-out infinite;
}
.scn-music-and-law .dancer {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-dancer 3s ease-in-out infinite;
}
.scn-music-and-law .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
}
.scn-music-and-law .notes {
  position: absolute; top: 20%; left: 40%; width: 8px; height: 12px;
  background: radial-gradient(circle, #b0b0d0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ml-notes 4s ease-in-out infinite;
}
@keyframes ml-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes ml-moon {
  0% { transform: translateX(-10px) scale(1); }
  50% { transform: translateX(0) scale(1.03); }
  100% { transform: translateX(10px) scale(0.97); }
}
@keyframes ml-lyre {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ml-dancer {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(0) translateX(3px); }
  50% { transform: rotate(5deg) translateX(0); }
  75% { transform: rotate(0) translateX(-3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes ml-notes {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  50% { opacity: .6; transform: translateY(-15px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-30px) scale(0.8); }
}

.scn-lesser-regulations {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a5e 0%, transparent 70%);
}
.scn-lesser-regulations .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: lr-sky 10s ease-in-out infinite alternate;
}
.scn-lesser-regulations .moon {
  position: absolute; top: 3%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #d0d0e8 0%, #b0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 6px rgba(180,180,220,.3);
  animation: lr-moon 12s ease-in-out infinite alternate;
}
.scn-lesser-regulations .elder {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-elder 4s ease-in-out infinite;
}
.scn-lesser-regulations .youth {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lr-youth 3s ease-in-out infinite;
}
.scn-lesser-regulations .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-lesser-regulations .garment {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 20px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10%;
  opacity: .7;
  animation: lr-garment 6s ease-in-out infinite alternate;
}
@keyframes lr-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes lr-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(3px) scale(1.02); }
  100% { transform: translateY(-2px) scale(0.98); }
}
@keyframes lr-elder {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes lr-youth {
  0% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-2px) rotate(-2deg); }
  70% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes lr-garment {
  0% { transform: translateY(0) rotate(0); opacity: .7; }
  50% { transform: translateY(-3px) rotate(5deg); opacity: .9; }
  100% { transform: translateY(0) rotate(0); opacity: .7; }
}

.scn-the-happy-just-man-conclusion {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1612 0%, #2a2018 50%, #1a1612 100%);
}
.scn-the-happy-just-man-conclusion .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #2a201a 0%, #1f1814 100%); border-bottom:6px solid #0e0c0a; }
.scn-the-happy-just-man-conclusion .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-top:2px solid #4a3a2a; }
.scn-the-happy-just-man-conclusion .table { position:absolute; bottom:25%; left:25%; right:25%; height:4%; background:linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.6); }
.scn-the-happy-just-man-conclusion .figure { position:absolute; bottom:28%; left:47%; width:20px; height:50px; background:linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; animation:hjc-figure 4s ease-in-out infinite; }
.scn-the-happy-just-man-conclusion .lamp { position:absolute; bottom:30%; right:28%; width:12px; height:18px; background:linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:4px 4px 8px 8px; box-shadow:0 0 10px 2px rgba(180,140,60,.5); }
.scn-the-happy-just-man-conclusion .glow { position:absolute; bottom:25%; right:26%; width:40px; height:50px; background:radial-gradient(ellipse at 50% 0%, rgba(200,160,80,.25) 0%, transparent 60%); border-radius:50%; filter:blur(6px); animation:hjc-glow 5s ease-in-out infinite alternate; }
@keyframes hjc-figure { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-4px) rotate(2deg); } 100% { transform:translateX(4px) rotate(-2deg); } }
@keyframes hjc-glow { 0% { opacity:.5; } 50% { opacity:.9; } 100% { opacity:.6; } }

.scn-end-of-book-i {
  background:
    radial-gradient(ellipse at 50% 60%, #2a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1814 0%, #12100c 100%);
}
.scn-end-of-book-i .desk { position:absolute; bottom:20%; left:15%; right:15%; height:3%; background:linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:3px; box-shadow:0 -2px 4px rgba(0,0,0,.5); }
.scn-end-of-book-i .hand { position:absolute; bottom:23%; left:35%; width:14px; height:28px; background:linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:eob-hand 3s ease-in-out infinite; }
.scn-end-of-book-i .candle { position:absolute; bottom:24%; right:30%; width:8px; height:24px; background:linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:2px; box-shadow:0 0 12px 4px rgba(200,160,80,.3); }
.scn-end-of-book-i .scroll { position:absolute; bottom:22%; left:40%; width:20px; height:6px; background:linear-gradient(90deg, #9a8a6a 0%, #b8a88a 50%, #9a8a6a 100%); border-radius:4px; transform:rotate(-10deg); }
.scn-end-of-book-i .inkwell { position:absolute; bottom:21%; right:40%; width:16px; height:12px; background:radial-gradient(circle at 50% 60%, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40%; box-shadow:0 2px 4px rgba(0,0,0,.6); }
.scn-end-of-book-i .shadow { position:absolute; bottom:18%; left:30%; right:30%; height:4%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%); filter:blur(4px); animation:eob-shadow 8s ease-in-out infinite alternate; }
@keyframes eob-hand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-6px) rotate(-5deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes eob-shadow { 0% { opacity:.3; } 100% { opacity:.7; } }

.scn-glaucon-revives-the-argument {
  background:
    radial-gradient(ellipse at 30% 70%, #2a1a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1010 0%, #100a0a 100%);
}
.scn-glaucon-revives-the-argument .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #1f1818 0%, #0f0c0c 100%); }
.scn-glaucon-revives-the-argument .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); border-top:2px solid #1f1010; }
.scn-glaucon-revives-the-argument .figure-left { position:absolute; bottom:28%; left:20%; width:22px; height:60px; background:linear-gradient(180deg, #0f0a0a 0%, #050303 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; animation:gra-left 2.5s ease-in-out infinite; }
.scn-glaucon-revives-the-argument .figure-right { position:absolute; bottom:28%; right:20%; width:22px; height:60px; background:linear-gradient(180deg, #0f0a0a 0%, #050303 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; animation:gra-right 3s ease-in-out infinite; }
.scn-glaucon-revives-the-argument .table { position:absolute; bottom:25%; left:25%; right:25%; height:4%; background:linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.8); }
.scn-glaucon-revives-the-argument .lantern { position:absolute; bottom:32%; left:48%; width:14px; height:20px; background:linear-gradient(180deg, #704020 0%, #401000 100%); border-radius:6px 6px 10px 10px; box-shadow:0 0 20px 4px rgba(200,100,40,.4); animation:gra-lantern 4s ease-in-out infinite reverse; }
.scn-glaucon-revives-the-argument .glow { position:absolute; bottom:28%; left:44%; right:44%; height:30%; background:radial-gradient(ellipse at 50% 0%, rgba(200,120,60,.25) 0%, transparent 70%); filter:blur(8px); animation:gra-glow 3s ease-in-out infinite alternate; }
@keyframes gra-left { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-6px) rotate(-3deg); } 70% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes gra-right { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(8px) rotate(4deg); } 70% { transform:translateX(-4px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes gra-lantern { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.05) rotate(5deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes gra-glow { 0% { opacity:.6; } 100% { opacity:.95; } }

.scn-origin-of-justice-a-compact {
  background:
    radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%),
    linear-gradient(180deg, #0e0e1a 0%, #08080f 100%);
}
.scn-origin-of-justice-a-compact .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-top:2px solid #2a2a4a; }
.scn-origin-of-justice-a-compact .hand-left { position:absolute; bottom:20%; left:30%; width:18px; height:30px; background:linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:ojc-handl 3.5s ease-in-out infinite; }
.scn-origin-of-justice-a-compact .hand-right { position:absolute; bottom:20%; right:30%; width:18px; height:30px; background:linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:ojc-handr 3.5s ease-in-out infinite; }
.scn-origin-of-justice-a-compact .scroll { position:absolute; bottom:22%; left:42%; width:24px; height:10px; background:linear-gradient(90deg, #8a7a5a 0%, #a89070 50%, #8a7a5a 100%); border-radius:4px; transform:rotate(-8deg); box-shadow:0 0 8px rgba(0,0,0,.5); }
.scn-origin-of-justice-a-compact .seal { position:absolute; bottom:20%; left:48%; width:12px; height:12px; background:radial-gradient(circle at 50% 50%, #6a5040 0%, #3a2a20 100%); border-radius:50%; box-shadow:0 0 6px #2a1a10; animation:ojc-seal 6s ease-in-out infinite; }
.scn-origin-of-justice-a-compact .shadow { position:absolute; bottom:16%; left:25%; right:25%; height:6%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 50%, transparent 100%); filter:blur(6px); animation:ojc-shadow 10s ease-in-out infinite alternate; }
@keyframes ojc-handl { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(10deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ojc-handr { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-8px) rotate(-10deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ojc-seal { 0% { transform:scale(1); } 50% { transform:scale(0.9); } 100% { transform:scale(1); } }
@keyframes ojc-shadow { 0% { opacity:.2; } 100% { opacity:.6; } }

.scn-the-good-man-does-not-lament { background: linear-gradient(180deg, #2e2a44 0%, #1f1c33 60%, #141128 100%), radial-gradient(ellipse at 30% 70%, #4a3e5e 0%, transparent 70%); }
.scn-the-good-man-does-not-lament .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2640 0%, #1a1630 100%); opacity:0.6; animation: gd-breathe 8s ease-in-out infinite alternate; }
.scn-the-good-man-does-not-lament .wall-shadow { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50% 50% 0 0; }
.scn-the-good-man-does-not-lament .chair { position:absolute; bottom:15%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
.scn-the-good-man-does-not-lament .figure-seated { position:absolute; bottom:25%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-the-good-man-does-not-lament .face-profile { position:absolute; bottom:36%; left:48%; width:14px; height:16px; background: radial-gradient(ellipse at 30% 50%, #c8a878 0%, #8a6a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); box-shadow: inset -2px -2px 4px rgba(0,0,0,0.3); }
.scn-the-good-man-does-not-lament .lamp { position:absolute; bottom:42%; left:35%; width:12px; height:20px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; }
.scn-the-good-man-does-not-lament .lamp-glow { position:absolute; bottom:40%; left:34%; width:40px; height:40px; background: radial-gradient(circle, #f0d090 0%, #c09050 40%, transparent 70%); border-radius:50%; opacity:0.8; animation: gd-flicker 2s ease-in-out infinite alternate; }
.scn-the-good-man-does-not-lament .book-shelf { position:absolute; top:15%; right:10%; width:60px; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
@keyframes gd-breathe { 0%,100% { opacity:0.6 } 50% { opacity:0.7 } }
@keyframes gd-flicker { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(1); } }

.scn-achilles-lamentations-censored { background: linear-gradient(0deg, #1a1420 0%, #2d2030 40%, #3a2a4a 100%), radial-gradient(ellipse at 60% 80%, #3a2a4a 0%, transparent 60%); }
.scn-achilles-lamentations-censored .tent-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2030 0%, #1a1020 100%); opacity:0.7; animation: ac-pulse 5s ease-in-out infinite alternate; }
.scn-achilles-lamentations-censored .tent-post { position:absolute; top:10%; left:20%; width:8px; height:80%; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.5); }
.scn-achilles-lamentations-censored .tent-post + .tent-post { left:75%; }
.scn-achilles-lamentations-censored .table { position:absolute; bottom:20%; left:25%; right:25%; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-achilles-lamentations-censored .scroll { position:absolute; bottom:24%; left:40%; width:50px; height:12px; background: linear-gradient(180deg, #b8a074 0%, #8a6a4a 100%); border-radius: 2px; transform: rotate(5deg); animation: ac-shake 6s ease-in-out infinite; }
.scn-achilles-lamentations-censored .censored-bar { position:absolute; bottom:24%; left:35%; width:70px; height:6px; background: #2a1a2a; border-radius: 2px; transform: rotate(-3deg); animation: ac-censor 3s step-end infinite; }
.scn-achilles-lamentations-censored .achilles-figure { position:absolute; bottom:32%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ac-tremble 0.5s ease-in-out infinite alternate; }
.scn-achilles-lamentations-censored .achilles-arm { position:absolute; bottom:42%; left:55%; width:20px; height:6px; background: #2a1a2a; border-radius: 50% 50% 0 0; transform-origin: left center; animation: ac-cover 3s ease-in-out infinite; }
.scn-achilles-lamentations-censored .torch { position:absolute; top:25%; right:15%; width:10px; height:16px; background: linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -8px 20px #c07030; }
.scn-achilles-lamentations-censored .torch-glow { position:absolute; top:20%; right:13%; width:40px; height:40px; background: radial-gradient(circle, #ffa040 0%, #c07030 30%, transparent 60%); border-radius:50%; animation: ac-flare 2s ease-in-out infinite alternate; }
@keyframes ac-pulse { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes ac-shake { 0%,100% { transform:rotate(5deg) translateY(0) } 25% { transform:rotate(3deg) translateY(-1px) } 50% { transform:rotate(7deg) translateY(1px) } 75% { transform:rotate(4deg) translateY(-2px) } }
@keyframes ac-censor { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }
@keyframes ac-tremble { 0% { transform:translateX(-50%) rotate(0deg) } 100% { transform:translateX(-50%) rotate(2deg) } }
@keyframes ac-cover { 0% { transform:rotate(0deg) } 50% { transform:rotate(30deg) } 100% { transform:rotate(0deg) } }
@keyframes ac-flare { 0% { opacity:0.6; transform:scale(0.9) } 100% { opacity:1; transform:scale(1.1) } }

.scn-no-excessive-laughter { background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%); }
.scn-no-excessive-laughter .heaven-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a3a 0%, #0e0e22 100%); opacity:0.8; animation: nl-swell 12s ease-in-out infinite alternate; }
.scn-no-excessive-laughter .cloud-pedestal { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.08) 0%, transparent 70%); border-radius: 60%; filter: blur(10px); }
.scn-no-excessive-laughter .zeus-throne { position:absolute; bottom:25%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
.scn-no-excessive-laughter .zeus-figure { position:absolute; bottom:35%; left:50%; width:45px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-no-excessive-laughter .sarpedon-body { position:absolute; bottom:15%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-10deg); }
.scn-no-excessive-laughter .sarpedon-hand { position:absolute; bottom:30%; left:33%; width:18px; height:4px; background: #3a2a2a; border-radius: 50%; transform: rotate(-30deg); transform-origin: right center; animation: nl-reach 6s ease-in-out infinite; }
.scn-no-excessive-laughter .tear-drop { position:absolute; bottom:38%; left:38%; width:4px; height:7px; background: radial-gradient(ellipse at 50% 30%, #6090c0 0%, #305080 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: nl-fall 4s ease-in infinite; }
.scn-no-excessive-laughter .veil { position:absolute; bottom:40%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, rgba(100,80,130,0.3) 0%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(4px); animation: nl-drift 9s ease-in-out infinite alternate; }
@keyframes nl-swell { 0%,100% { opacity:0.8 } 50% { opacity:0.9 } }
@keyframes nl-reach { 0% { transform:rotate(-30deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-30deg) } }
@keyframes nl-fall { 0% { transform:translateY(0); opacity:1 } 100% { transform:translateY(20px); opacity:0 } }
@keyframes nl-drift { 0% { transform:translateX(0) rotate(0deg) } 100% { transform:translateX(-10px) rotate(5deg) } }

.scn-truth-and-temperance { background: linear-gradient(180deg, #2c2838 0%, #1c1830 50%, #0e0c1e 100%), radial-gradient(ellipse at 70% 60%, #3a3050 0%, transparent 60%); }
.scn-truth-and-temperance .study-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a30 0%, #100e20 100%); opacity:0.7; animation: tt-breathe 10s ease-in-out infinite alternate; }
.scn-truth-and-temperance .desk { position:absolute; bottom:15%; left:20%; right:20%; height:12px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
.scn-truth-and-temperance .lamp-desktop { position:absolute; bottom:25%; left:30%; width:10px; height:14px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; }
.scn-truth-and-temperance .book-open { position:absolute; bottom:30%; left:40%; width:40px; height:10px; background: linear-gradient(180deg, #b8a074 0%, #8a6a4a 100%); border-radius: 2px; transform: perspective(30px) rotateX(10deg); }
.scn-truth-and-temperance .hand-temperance { position:absolute; bottom:35%; left:45%; width:16px; height:20px; background: radial-gradient(ellipse at 30% 50%, #c8a878 0%, #8a6a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: tt-tap 3s ease-in-out infinite; }
.scn-truth-and-temperance .truth-flame { position:absolute; bottom:28%; left:28%; width:6px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #c09050 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: tt-flicker 1.5s ease-in-out infinite alternate; }
.scn-truth-and-temperance .shadow-laugh { position:absolute; bottom:20%; right:20%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(100,80,130,0.15) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: tt-spread 8s ease-in-out infinite; }
.scn-truth-and-temperance .silhouette-figure { position:absolute; bottom:40%; right:15%; width:20px; height:50px; background: linear-gradient(180deg, #1a1020 0%, #0e0810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: tt-turn 12s ease-in-out infinite; }
@keyframes tt-breathe { 0%,100% { opacity:0.7 } 50% { opacity:0.85 } }
@keyframes tt-tap { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes tt-flicker { 0% { opacity:0.8; transform:scale(1) } 100% { opacity:1; transform:scale(1.2) } }
@keyframes tt-spread { 0% { opacity:0.3; transform:scale(0.9) } 50% { opacity:0.6; transform:scale(1.2) } 100% { opacity:0.3; transform:scale(0.9) } }
@keyframes tt-turn { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(180deg) } }

/* ---- old-age-a-new-perspective ---- */
.scn-old-age-a-new-perspective {
  background: 
    linear-gradient(180deg, #2a1d15 0%, #1f1410 40%, #3a281f 100%),
    radial-gradient(ellipse at 60% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-old-age-a-new-perspective .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1d15, #1f1410, #2a1d15); 
}
.scn-old-age-a-new-perspective .window-glow { 
  position: absolute; top: 10%; left: 70%; width: 50px; height: 60px; 
  background: radial-gradient(circle at center, #d4a04a 0%, #8a6a32 60%, transparent 100%); 
  border-radius: 30% 30% 10% 10%; 
  box-shadow: 0 0 40px 10px rgba(180, 130, 60, 0.4); 
  animation: old-glow 6s ease-in-out infinite alternate; 
}
.scn-old-age-a-new-perspective .elder { 
  position: absolute; bottom: 22%; left: 30%; width: 32px; height: 60px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: old-breathe 4s ease-in-out infinite; 
}
.scn-old-age-a-new-perspective .youth { 
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 54px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: old-breathe 4s ease-in-out 1.5s infinite; 
}
.scn-old-age-a-new-perspective .table { 
  position: absolute; bottom: 18%; left: 38%; width: 60px; height: 12px; 
  background: linear-gradient(180deg, #5a3a2a, #3a2215); 
  border-radius: 4px; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); 
}
.scn-old-age-a-new-perspective .lamp { 
  position: absolute; bottom: 26%; left: 46%; width: 14px; height: 20px; 
  background: radial-gradient(circle at 50% 30%, #e8b86a 0%, #a07a40 60%, transparent 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 30px 10px rgba(200, 150, 60, 0.6), 0 0 60px 20px rgba(160, 120, 40, 0.3); 
  animation: old-flicker 3s ease-in-out infinite alternate; 
}
@keyframes old-glow { 
  0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(180, 130, 60, 0.3); } 
  50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(200, 150, 70, 0.6); } 
  100% { opacity: 0.8; box-shadow: 0 0 35px 10px rgba(180, 130, 60, 0.4); } 
}
@keyframes old-breathe { 
  0% { transform: translateY(0) rotate(-0.5deg); } 
  50% { transform: translateY(-3px) rotate(0.5deg); } 
  100% { transform: translateY(0) rotate(-0.5deg); } 
}
@keyframes old-flicker { 
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 
  30% { transform: scale(1.02) rotate(2deg); opacity: 1; } 
  70% { transform: scale(0.98) rotate(-1deg); opacity: 0.9; } 
  100% { transform: scale(1) rotate(0deg); opacity: 0.85; } 
}

/* ---- sophocles-on-old-age ---- */
.scn-sophocles-on-old-age {
  background: 
    linear-gradient(180deg, #1e1612 0%, #2a1f18 40%, #1c130e 100%),
    radial-gradient(ellipse at 80% 20%, #4a3528 0%, transparent 50%);
}
.scn-sophocles-on-old-age .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1e1612, #2a1f18, #1c130e); 
}
.scn-sophocles-on-old-age .open-window { 
  position: absolute; top: 12%; right: 10%; width: 45px; height: 60px; 
  background: radial-gradient(circle at 50% 30%, #b09060 0%, #5a4a30 80%, transparent 100%); 
  border-radius: 10% 10% 30% 30%; 
  box-shadow: 0 0 30px 6px rgba(160, 130, 80, 0.5); 
  animation: sop-light 8s ease-in-out infinite alternate; 
}
.scn-sophocles-on-old-age .figure-seated { 
  position: absolute; bottom: 22%; left: 30%; width: 34px; height: 56px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); 
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; 
  transform-origin: bottom center; 
  animation: sop-sit 6s ease-in-out infinite; 
}
.scn-sophocles-on-old-age .chair { 
  position: absolute; bottom: 16%; left: 22%; width: 50px; height: 30px; 
  background: linear-gradient(180deg, #4a3525 0%, #2a1f15 100%); 
  border-radius: 8% 8% 4% 4%; 
  box-shadow: 0 4px 10px rgba(0,0,0,0.6); 
}
.scn-sophocles-on-old-age .book { 
  position: absolute; bottom: 26%; left: 40%; width: 20px; height: 14px; 
  background: linear-gradient(135deg, #6a5a3a, #4a3a2a); 
  border-radius: 2px 8px 8px 2px; 
  transform-origin: left center; 
  animation: sop-book 8s ease-in-out infinite; 
}
.scn-sophocles-on-old-age .shadow-line { 
  position: absolute; bottom: 14%; left: 25%; width: 70px; height: 4px; 
  background: rgba(0,0,0,0.4); 
  border-radius: 50%; 
  filter: blur(3px); 
  animation: sop-shadow 10s ease-in-out infinite alternate; 
}
@keyframes sop-light { 
  0% { opacity: 0.6; box-shadow: 0 0 20px 4px rgba(160, 130, 80, 0.3); } 
  50% { opacity: 1; box-shadow: 0 0 45px 12px rgba(180, 150, 90, 0.6); } 
  100% { opacity: 0.7; box-shadow: 0 0 25px 6px rgba(160, 130, 80, 0.35); } 
}
@keyframes sop-sit { 
  0% { transform: translateY(0) rotate(0deg); } 
  40% { transform: translateY(-2px) rotate(1deg); } 
  80% { transform: translateY(0) rotate(-0.5deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes sop-book { 
  0% { transform: rotate(5deg) scaleX(1); } 
  50% { transform: rotate(-3deg) scaleX(1.05); } 
  100% { transform: rotate(5deg) scaleX(1); } 
}
@keyframes sop-shadow { 
  0% { opacity: 0.3; transform: translateX(0) scaleX(1); } 
  50% { opacity: 0.6; transform: translateX(5px) scaleX(1.2); } 
  100% { opacity: 0.3; transform: translateX(0) scaleX(1); } 
}

/* ---- riches-and-temper ---- */
.scn-riches-and-temper {
  background: 
    linear-gradient(180deg, #1f1812 0%, #2a2218 40%, #18120e 100%),
    radial-gradient(ellipse at 50% 60%, #4a3828 0%, transparent 70%);
}
.scn-riches-and-temper .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1f1812, #2a2218, #18120e); 
}
.scn-riches-and-temper .table-wide { 
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 14px; 
  background: linear-gradient(180deg, #5a4230, #3a2a1c); 
  border-radius: 6px; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.5); 
}
.scn-riches-and-temper .coins { 
  position: absolute; bottom: 32%; left: 42%; width: 40px; height: 20px; 
  background: radial-gradient(circle at 30% 40%, #c8a060, #a08040, #604828); 
  border-radius: 50%; 
  box-shadow: 0 0 10px 3px rgba(160, 120, 60, 0.3); 
  animation: ric-gleam 4s ease-in-out infinite alternate; 
}
.scn-riches-and-temper .scale { 
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 30px; 
  background: linear-gradient(180deg, #6a5240, #3a2a1c); 
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%); 
  transform: translateX(-50%); 
  animation: ric-sway 6s ease-in-out infinite; 
}
.scn-riches-and-temper .shadow-figure-left { 
  position: absolute; bottom: 18%; left: 10%; width: 24px; height: 50px; 
  background: linear-gradient(180deg, #1a1210, #0a0808); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom; 
  animation: ric-turn 10s ease-in-out infinite; 
}
.scn-riches-and-temper .shadow-figure-right { 
  position: absolute; bottom: 18%; right: 12%; width: 24px; height: 48px; 
  background: linear-gradient(180deg, #2a1a12, #100a08); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom; 
  animation: ric-turn 10s ease-in-out 5s infinite reverse; 
}
@keyframes ric-gleam { 
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(160, 120, 60, 0.3); } 
  40% { opacity: 1; box-shadow: 0 0 20px 6px rgba(200, 160, 80, 0.6); } 
  80% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(160, 120, 60, 0.4); } 
  100% { opacity: 0.7; } 
}
@keyframes ric-sway { 
  0% { transform: translateX(-50%) rotate(-1deg); } 
  50% { transform: translateX(-50%) rotate(1deg); } 
  100% { transform: translateX(-50%) rotate(-1deg); } 
}
@keyframes ric-turn { 
  0% { transform: rotate(0deg) translateX(0); } 
  50% { transform: rotate(3deg) translateX(4px); } 
  100% { transform: rotate(0deg) translateX(0); } 
}

/* ---- wealth-and-truth ---- */
.scn-wealth-and-truth {
  background: 
    linear-gradient(180deg, #1a1210 0%, #241a14 40%, #140e0c 100%),
    radial-gradient(ellipse at 40% 70%, #3a2a1c 0%, transparent 60%);
}
.scn-wealth-and-truth .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1210, #241a14, #140e0c); 
}
.scn-wealth-and-truth .bed { 
  position: absolute; bottom: 14%; left: 30%; width: 80px; height: 40px; 
  background: linear-gradient(180deg, #4a3525, #2a1f14); 
  border-radius: 10%; 
  box-shadow: 0 6px 16px rgba(0,0,0,0.6); 
}
.scn-wealth-and-truth .figure-lying { 
  position: absolute; bottom: 20%; left: 38%; width: 50px; height: 30px; 
  background: linear-gradient(180deg, #3a2a1a, #1a1210); 
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; 
  transform-origin: bottom center; 
  animation: wea-breath 5s ease-in-out infinite; 
}
.scn-wealth-and-truth .chest { 
  position: absolute; bottom: 10%; left: 55%; width: 40px; height: 20px; 
  background: linear-gradient(180deg, #6a4e32, #3a2a18); 
  border-radius: 4px; 
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); 
  animation: wea-chest 12s ease-in-out infinite; 
}
.scn-wealth-and-truth .lamp-low { 
  position: absolute; bottom: 32%; left: 48%; width: 12px; height: 16px; 
  background: radial-gradient(circle at 50% 40%, #d4a84a 0%, #a08040 60%, transparent 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 25px 8px rgba(180, 140, 60, 0.5); 
  animation: wea-flicker 3.5s ease-in-out infinite alternate; 
}
.scn-wealth-and-truth .shadow-veil { 
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%; 
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); 
  animation: wea-veil 8s ease-in-out infinite alternate; 
}
@keyframes wea-breath { 
  0% { transform: scaleY(1) translateY(0); } 
  50% { transform: scaleY(1.03) translateY(-2px); } 
  100% { transform: scaleY(1) translateY(0); } 
}
@keyframes wea-chest { 
  0% { opacity: 0.8; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); } 
  50% { opacity: 1; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5), 0 0 12px 2px rgba(120, 90, 50, 0.2); } 
  100% { opacity: 0.8; } 
}
@keyframes wea-flicker { 
  0% { transform: scale(1) rotate(0deg); opacity: 0.75; box-shadow: 0 0 20px 6px rgba(180, 140, 60, 0.4); } 
  40% { transform: scale(1.03) rotate(2deg); opacity: 1; box-shadow: 0 0 35px 10px rgba(200, 160, 80, 0.6); } 
  80% { transform: scale(0.98) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 22px 7px rgba(180, 140, 60, 0.45); } 
  100% { transform: scale(1) rotate(0deg); opacity: 0.75; } 
}
@keyframes wea-veil { 
  0% { opacity: 0.4; } 
  50% { opacity: 0.7; } 
  100% { opacity: 0.4; } 
}

/* thrasymachus-bursts-forth */
.scn-thrasymachus-bursts-forth {
  background: linear-gradient(180deg, #2b1d14 0%, #1a100a 40%, #0d0804 100%), radial-gradient(ellipse at 30% 60%, #4a2a14 0%, transparent 70%);
}
.scn-thrasymachus-bursts-forth .bg-shadow {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a0f08 40%, transparent 70%); animation: tbf-shadow 4s ease-in-out infinite alternate;
}
.scn-thrasymachus-bursts-forth .spotlight {
  position:absolute; inset:15% 20% 30% 20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,.25) 0%, transparent 60%); animation: tbf-spot 3s ease-in-out infinite;
}
.scn-thrasymachus-bursts-forth .figure {
  position:absolute; bottom:20%; left:35%; width:60px; height:80px;
  background: linear-gradient(180deg, #2c1810 0%, #0d0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbf-burst 0.8s ease-in-out infinite alternate;
}
.scn-thrasymachus-bursts-forth .arm {
  position:absolute; bottom:45%; left:48%; width:30px; height:10px;
  background: #1a0e08; border-radius: 0 80% 80% 0 / 0 60% 60% 0;
  transform-origin: left center;
  animation: tbf-arm 0.6s ease-in-out infinite alternate;
}
.scn-thrasymachus-bursts-forth .debris {
  position:absolute; bottom:15%; left:20%; width:14px; height:14px;
  background: #3a2515; border-radius: 30% 70% 50% 50%;
  animation: tbf-debris 2s ease-in-out infinite;
}
.scn-thrasymachus-bursts-forth .dust-a {
  position:absolute; bottom:30%; left:25%; width:8px; height:8px;
  background: rgba(180,140,80,.4); border-radius: 50%; filter: blur(3px);
  animation: tbf-dust 3s linear infinite;
}
.scn-thrasymachus-bursts-forth .dust-b {
  position:absolute; bottom:25%; left:55%; width:10px; height:10px;
  background: rgba(160,120,70,.3); border-radius: 50%; filter: blur(4px);
  animation: tbf-dust 4s linear infinite reverse;
}
.scn-thrasymachus-bursts-forth .furniture {
  position:absolute; bottom:10%; left:60%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a2515 0%, #1a0e08 100%);
  border-radius: 4px; transform: rotate(-15deg);
  animation: tbf-tilt 2s ease-in-out infinite alternate;
}
@keyframes tbf-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes tbf-spot { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(.9) } }
@keyframes tbf-burst { 0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } 100% { transform: translateX(12px) translateY(-6px) rotate(4deg) scaleX(1.2) } }
@keyframes tbf-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes tbf-debris { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20px,-30px) rotate(60deg) } 50% { transform: translate(40px,-10px) rotate(120deg) } 75% { transform: translate(60px,-40px) rotate(180deg) } 100% { transform: translate(80px,0) rotate(240deg) opacity:0 } }
@keyframes tbf-dust { 0% { transform: translateY(0) scale(1) opacity:.6 } 50% { transform: translateY(-20px) scale(1.5) opacity:.3 } 100% { transform: translateY(-40px) scale(2) opacity:0 } }
@keyframes tbf-tilt { 0% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-20deg) } }

/* socrates-irony-accused */
.scn-socrates-irony-accused {
  background: linear-gradient(90deg, #1f1410 0%, #2a1a12 50%, #1f1410 100%), radial-gradient(ellipse at 70% 40%, #3a2518 0%, transparent 60%);
}
.scn-socrates-irony-accused .bg-panels {
  position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 20px, #2a1a12 20px, #2a1a12 22px); opacity:.5; animation: sia-panels 12s linear infinite;
}
.scn-socrates-irony-accused .socrates-silhouette {
  position:absolute; bottom:15%; left:20%; width:45px; height:70px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); filter: drop-shadow(0 4px 6px rgba(0,0,0,.6));
  animation: sia-sway 3s ease-in-out infinite;
}
.scn-socrates-irony-accused .hands {
  position:absolute; bottom:45%; left:30%; width:20px; height:18px;
  background: #1a0e08; border-radius: 50% 50% 0 0; transform: rotate(20deg);
  animation: sia-hands 2s ease-in-out infinite alternate;
}
.scn-socrates-irony-accused .table-point {
  position:absolute; bottom:20%; left:45%; width:30px; height:8px;
  background: linear-gradient(90deg, #3a2515, #1a0e08);
  border-radius: 50%; transform: rotate(-10deg);
  animation: sia-point 1.5s ease-in-out infinite alternate;
}
.scn-socrates-irony-accused .shadow-accuser {
  position:absolute; bottom:15%; right:10%; width:50px; height:80px;
  background: rgba(20,10,5,.6); border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  filter: blur(5px); animation: sia-shadow 5s ease-in-out infinite alternate;
}
.scn-socrates-irony-accused .flicker {
  position:absolute; inset:20% 30% 20% 30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,.15) 0%, transparent 50%);
  animation: sia-flicker 0.8s ease-in-out infinite alternate;
}
.scn-socrates-irony-accused .scroll {
  position:absolute; bottom:25%; left:50%; width:14px; height:20px;
  background: linear-gradient(180deg, #c8a070 0%, #a07850 100%);
  border-radius: 30% 30% 50% 50%; transform: rotate(5deg);
  animation: sia-scroll 6s ease-in-out infinite;
}
@keyframes sia-panels { 0% { background-position: 0 0; } 100% { background-position: 0 100px; } }
@keyframes sia-sway { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes sia-hands { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(40deg) scale(1.1); } 100% { transform: rotate(15deg) scale(.9); } }
@keyframes sia-point { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(10px); } 100% { transform: rotate(-15deg) translateX(-5px); } }
@keyframes sia-shadow { 0% { opacity:.5; transform: scaleY(1); } 100% { opacity:.8; transform: scaleY(1.2); } }
@keyframes sia-flicker { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }
@keyframes sia-scroll { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(8deg) translateY(2px); } }

/* thrasymachus-defines-justice */
.scn-thrasymachus-defines-justice {
  background: linear-gradient(180deg, #1f1410 0%, #2a1a12 30%, #1a0e08 70%, #0d0603 100%), radial-gradient(ellipse at 50% 30%, #3a2518 0%, transparent 60%);
}
.scn-thrasymachus-defines-justice .bg-cave {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #1a0e08 40%, transparent 80%); animation: tdj-cave 10s ease-in-out infinite alternate;
}
.scn-thrasymachus-defines-justice .throne {
  position:absolute; bottom:10%; left:40%; width:80px; height:60px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: tdj-throne 4s ease-in-out infinite;
}
.scn-thrasymachus-defines-justice .speaker {
  position:absolute; bottom:20%; left:44%; width:40px; height:60px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tdj-speak 2s ease-in-out infinite alternate;
}
.scn-thrasymachus-defines-justice .audience-left {
  position:absolute; bottom:10%; left:15%; width:30px; height:50px;
  background: #1a0e08; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg); filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
  animation: tdj-audience 6s ease-in-out infinite;
}
.scn-thrasymachus-defines-justice .audience-right {
  position:absolute; bottom:10%; right:15%; width:30px; height:50px;
  background: #1a0e08; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg); filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
  animation: tdj-audience 6s ease-in-out infinite reverse;
}
.scn-thrasymachus-defines-justice .torch-a {
  position:absolute; top:25%; left:20%; width:6px; height:20px;
  background: linear-gradient(180deg, #c07030, #602000);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,100,40,.6);
  animation: tdj-torch 2s ease-in-out infinite alternate;
}
.scn-thrasymachus-defines-justice .torch-b {
  position:absolute; top:25%; right:20%; width:6px; height:20px;
  background: linear-gradient(180deg, #c07030, #602000);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,100,40,.6);
  animation: tdj-torch 2.5s ease-in-out infinite alternate-reverse;
}
.scn-thrasymachus-defines-justice .coin-pile {
  position:absolute; bottom:8%; left:50%; width:20px; height:8px;
  background: radial-gradient(ellipse, #c0a060 0%, #806030 50%, #402010 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: tdj-coin 3s ease-in-out infinite;
}
@keyframes tdj-cave { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes tdj-throne { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes tdj-speak { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes tdj-audience { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tdj-torch { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.3) scaleX(1.1); opacity:1; } 100% { transform: scaleY(.9) scaleX(.9); opacity:.7; } }
@keyframes tdj-coin { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(.95); } }

/* might-is-right */
.scn-might-is-right {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 40%, #0d0603 100%), radial-gradient(ellipse at 70% 30%, #3a2515 0%, transparent 70%);
}
.scn-might-is-right .bg-column {
  position:absolute; inset:0 40% 0 40%; background: linear-gradient(90deg, #2a1a12 0%, #3a2515 50%, #2a1a12 100%); box-shadow: -4px 0 8px rgba(0,0,0,.5), 4px 0 8px rgba(0,0,0,.5); animation: mir-column 15s ease-in-out infinite;
}
.scn-might-is-right .strong-arm {
  position:absolute; bottom:25%; left:45%; width:40px; height:60px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0603 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: mir-arm 2s ease-in-out infinite alternate;
}
.scn-might-is-right .crown {
  position:absolute; top:15%; left:47%; width:30px; height:15px;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: mir-crown 3s ease-in-out infinite;
}
.scn-might-is-right .subdued-figure {
  position:absolute; bottom:10%; left:20%; width:35px; height:50px;
  background: #1a0e08; border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(10deg); filter: drop-shadow(0 2px 4px rgba(0,0,0,.6));
  animation: mir-sub 5s ease-in-out infinite;
}
.scn-might-is-right .chain {
  position:absolute; bottom:20%; left:25%; width:20px; height:4px;
  background: #504030; border-radius: 2px;
  animation: mir-chain 4s ease-in-out infinite;
}
.scn-might-is-right .shadow-ruler {
  position:absolute; top:10%; left:30%; width:100px; height:120px;
  background: rgba(10,5,2,.3); filter: blur(10px);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  animation: mir-ruler-shadow 8s ease-in-out infinite alternate;
}
.scn-might-is-right .sparkle {
  position:absolute; top:20%; left:50%; width:4px; height:4px;
  background: #c0a060; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,160,96,.7);
  animation: mir-spark 2.5s ease-in-out infinite;
}
@keyframes mir-column { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes mir-arm { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes mir-crown { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(2px) scale(.95); } }
@keyframes mir-sub { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-3px); } 50% { transform: rotate(12deg) translateY(2px); } 75% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes mir-chain { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.2); } 100% { transform: translateX(-4px) scaleY(.9); } }
@keyframes mir-ruler-shadow { 0% { opacity:.3; transform: scale(1); } 100% { opacity:.5; transform: scale(1.2); } }
@keyframes mir-spark { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(2); } 100% { opacity:.4; transform: scale(.5); } }

/* lies-as-medicine */
.scn-lies-as-medicine {
  background:
    linear-gradient(145deg, #2a1a0e 0%, #3a2a1a 40%, #1a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-lies-as-medicine .bg   { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a06 100%); animation: lim-breathe 8s ease-in-out infinite; }
.scn-lies-as-medicine .wall { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:20px; box-shadow: inset 0 0 60px rgba(0,0,0,.7); }
.scn-lies-as-medicine .arch { position:absolute; bottom:20%; left:30%; width:40%; height:55%; background: radial-gradient(ellipse at 50% 100%, transparent 0%, #1a1a0e 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 2px solid #5a4a3a; box-shadow: inset 0 -30px 40px rgba(0,0,0,.5); }
.scn-lies-as-medicine .figure { position:absolute; bottom:22%; left:38%; width:20%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lim-sway 6s ease-in-out infinite; }
.scn-lies-as-medicine .book { position:absolute; bottom:26%; left:44%; width:8%; height:6%; background: #6a5a4a; border-radius: 3px; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: lim-flip 12s ease-in-out infinite; }
.scn-lies-as-medicine .lamp { position:absolute; bottom:40%; left:48%; width:4%; height:8%; background: radial-gradient(circle, #c8a050 0%, #8a7030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px #c8a050, 0 0 40px 16px rgba(200,160,80,.3); animation: lim-glow 4s ease-in-out infinite; }
.scn-lies-as-medicine .glow { position:absolute; bottom:20%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse, rgba(200,160,80,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: lim-pulse 7s ease-in-out infinite; }

@keyframes lim-breathe { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes lim-sway { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(2deg) } 75% { transform: translateX(-1%) rotate(-1deg) } }
@keyframes lim-flip { 0%,100% { transform: rotateY(0deg) } 50% { transform: rotateY(180deg) } }
@keyframes lim-glow { 0%,100% { box-shadow: 0 0 20px 8px #c8a050, 0 0 40px 16px rgba(200,160,80,.3); } 50% { box-shadow: 0 0 30px 12px #e0b060, 0 0 60px 24px rgba(224,176,96,.5); } }
@keyframes lim-pulse { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.05) } }

/* fear-of-death */
.scn-fear-of-death {
  background:
    linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 40% 60%, #2a3a4a 0%, transparent 70%);
}
.scn-fear-of-death .bg   { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 60%); animation: fod-flicker 3s steps(2) infinite; }
.scn-fear-of-death .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-fear-of-death .shadow-fig { position:absolute; bottom:15%; left:55%; width:25%; height:55%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fod-reach 2s ease-in-out infinite; filter: blur(1px); }
.scn-fear-of-death .guardian { position:absolute; bottom:18%; left:25%; width:18%; height:40%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fod-brace 4s ease-in-out infinite; }
.scn-fear-of-death .weapon { position:absolute; bottom:15%; left:32%; width:4%; height:20%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom center; animation: fod-thrust 3s ease-in-out infinite; }
.scn-fear-of-death .dust { position:absolute; top:20%; left:10%; width:10%; height:10%; background: radial-gradient(circle, rgba(200,200,220,.1) 0%, transparent 70%); filter: blur(6px); animation: fod-drift 20s linear infinite; }

@keyframes fod-flicker { 0%,100% { opacity:.9 } 50% { opacity:.75 } }
@keyframes fod-reach { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1) } 30% { transform: translateX(8%) rotate(5deg) scaleY(1.1) } 70% { transform: translateX(-3%) rotate(-3deg) scaleY(.95) } }
@keyframes fod-brace { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5%) rotate(3deg) } }
@keyframes fod-thrust { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-5%) } }
@keyframes fod-drift { 0% { transform: translateX(0) translateY(0) } 100% { transform: translateX(80vw) translateY(-20%) } }

/* homer-on-the-underworld */
.scn-homer-on-the-underworld {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a0e1a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #2a1a2a 0%, transparent 80%);
}
.scn-homer-on-the-underworld .bg   { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #0a0a0a 0%, #000 100%); animation: hou-shroud 15s ease-in-out infinite; }
.scn-homer-on-the-underworld .pit  { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 40px #000; }
.scn-homer-on-the-underworld .throne { position:absolute; bottom:35%; left:35%; width:30%; height:30%; background: linear-gradient(135deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 0 40px rgba(0,0,0,.8); }
.scn-homer-on-the-underworld .pluto { position:absolute; bottom:38%; left:42%; width:16%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hou-sit 12s ease-in-out infinite; }
.scn-homer-on-the-underworld .shade-a { position:absolute; bottom:20%; left:15%; width:12%; height:30%; background: radial-gradient(ellipse, rgba(60,40,60,.3) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: hou-float-a 25s linear infinite; }
.scn-homer-on-the-underworld .shade-b { position:absolute; bottom:10%; right:20%; width:10%; height:25%; background: radial-gradient(ellipse, rgba(40,30,50,.4) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: hou-float-b 30s linear infinite; animation-delay: -5s; }
.scn-homer-on-the-underworld .chain { position:absolute; bottom:40%; left:30%; width:4%; height:15%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: top center; animation: hou-rattle 4s ease-in-out infinite; }

@keyframes hou-shroud { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes hou-sit { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2%) rotate(1deg) } }
@keyframes hou-float-a { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(30%) translateY(-10%) } 100% { transform: translateX(60%) translateY(0) } }
@keyframes hou-float-b { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-20%) translateY(-15%) } 100% { transform: translateX(-40%) translateY(0) } }
@keyframes hou-rattle { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } }

/* no-lamentations */
.scn-no-lamentations {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a1a 30%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-no-lamentations .bg   { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, #0a0a0a 50%, transparent 100%); animation: nol-sweep 10s ease-in-out infinite; }
.scn-no-lamentations .door { position:absolute; bottom:10%; left:35%; width:30%; height:70%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 4px; box-shadow: inset -10px 0 20px rgba(0,0,0,.6), 0 0 30px #000; border-left: 2px solid #5a3a2a; }
.scn-no-lamentations .guardian { position:absolute; bottom:15%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nol-raise-arm 3s ease-in-out infinite; }
.scn-no-lamentations .shadow { position:absolute; bottom:10%; left:25%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); filter: blur(10px); animation: nol-creep 6s ease-in-out infinite; }
.scn-no-lamentations .tear { position:absolute; bottom:22%; left:30%; width:4%; height:8%; background: radial-gradient(circle, #b87878 0%, #5e1a1d 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; animation: nol-drip 4s ease-in-out infinite; opacity:0.7; }
.scn-no-lamentations .glow { position:absolute; bottom:20%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse, rgba(200,160,80,.1) 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: nol-glimmer 5s ease-in-out infinite; }

@keyframes nol-sweep { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes nol-raise-arm { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5%) rotate(-5deg) } 60% { transform: translateX(-3%) rotate(3deg) } }
@keyframes nol-creep { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(10%) scale(1.2) } }
@keyframes nol-drip { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(20%) scaleY(1.3) } }
@keyframes nol-glimmer { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

/* the-hydra-of-legislation */
.scn-the-hydra-of-legislation {
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 100%);
  position: relative;
}
.scn-the-hydra-of-legislation .moon {
  position: absolute; top: 6%; right: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0e0ff 0%, #8090c0 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(128,144,192,0.5);
  animation: hl-moon 15s ease-in-out infinite alternate;
}
.scn-the-hydra-of-legislation .cloud-1 {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,240,0.3), rgba(200,210,240,0.1));
  filter: blur(6px); border-radius: 50%;
  animation: hl-cloud-drift 40s linear infinite;
}
.scn-the-hydra-of-legislation .cloud-2 {
  position: absolute; top: 18%; right: 20%; width: 80px; height: 14px;
  background: linear-gradient(90deg, rgba(200,210,240,0.2), rgba(200,210,240,0.05));
  filter: blur(4px); border-radius: 50%;
  animation: hl-cloud-drift 55s linear infinite reverse;
}
.scn-the-hydra-of-legislation .body {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: hl-body-breathe 6s ease-in-out infinite;
}
.scn-the-hydra-of-legislation .head {
  position: absolute; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 50% 60% 40% 40% / 60% 70% 40% 40%;
  transform-origin: bottom center;
}
.scn-the-hydra-of-legislation .head1 {
  bottom: 45%; left: 35%; animation: hl-head-bob 2.5s ease-in-out infinite;
}
.scn-the-hydra-of-legislation .head2 {
  bottom: 48%; left: 50%; transform: translateX(-50%); animation: hl-head-bob 3s ease-in-out infinite 0.5s;
}
.scn-the-hydra-of-legislation .head3 {
  bottom: 45%; right: 35%; animation: hl-head-bob 2.8s ease-in-out infinite 1s;
}
.scn-the-hydra-of-legislation .tail {
  position: absolute; bottom: 22%; left: 30%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #3a5a4a 0%, #2a4a3a 100%);
  border-radius: 10% 10% 50% 50%;
  transform: rotate(20deg);
  animation: hl-tail-wag 4s ease-in-out infinite;
}
.scn-the-hydra-of-legislation .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(180,200,220,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: hl-mist-pulse 8s ease-in-out infinite;
}
@keyframes hl-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hl-cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(200vw); } }
@keyframes hl-body-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hl-head-bob { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hl-tail-wag { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes hl-mist-pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* the-oracle-of-delphi */
.scn-the-oracle-of-delphi {
  background: linear-gradient(180deg, #1a1a3a 0%, #1e1e42 40%, #2a2a52 100%), radial-gradient(ellipse at 70% 20%, #3a3a6a 0%, transparent 60%);
  position: relative;
}
.scn-the-oracle-of-delphi .temple-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  opacity: 0.5;
}
.scn-the-oracle-of-delphi .column-left {
  position: absolute; bottom: 15%; left: 25%; width: 16px; height: 200px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 20px rgba(200,200,240,0.2);
}
.scn-the-oracle-of-delphi .column-right {
  position: absolute; bottom: 15%; right: 25%; width: 16px; height: 200px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 20px rgba(200,200,240,0.2);
}
.scn-the-oracle-of-delphi .oracle-figure {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #b8b8c8 0%, #9090a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: od-figure-sway 8s ease-in-out infinite;
}
.scn-the-oracle-of-delphi .tripod {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(200,200,255,0.15);
}
.scn-the-oracle-of-delphi .smoke {
  position: absolute; bottom: 35%; left: 50%;
  width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,220,255,0.2) 0%, transparent 70%);
  filter: blur(12px);
  border-radius: 50%;
}
.scn-the-oracle-of-delphi .smoke-1 {
  transform: translateX(-50%);
  animation: od-smoke-rise 6s ease-out infinite;
}
.scn-the-oracle-of-delphi .smoke-2 {
  transform: translateX(-40%);
  animation: od-smoke-rise 8s ease-out infinite 3s;
}
.scn-the-oracle-of-delphi .moon-glow {
  position: absolute; top: 5%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,200,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: od-moon-pulse 12s ease-in-out infinite alternate;
}
@keyframes od-figure-sway { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes od-smoke-rise { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-40px) scale(2); opacity: 0.2; } 100% { transform: translateY(-80px) scale(3); opacity: 0; } }
@keyframes od-moon-pulse { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }

/* state-cannot-be-measured */
.scn-state-cannot-be-measured {
  background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 50%, #4a4a6a 100%), radial-gradient(ellipse at 50% 100%, #4a4a6a 0%, transparent 70%);
  position: relative;
}
.scn-state-cannot-be-measured .podium {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  transform: translateX(-50%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
}
.scn-state-cannot-be-measured .figure-politician {
  position: absolute; bottom: 24%; left: 50%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sm-figure-wobble 3s ease-in-out infinite;
}
.scn-state-cannot-be-measured .measuring-tape {
  position: absolute; bottom: 30%; left: 30%; width: 200px; height: 6px;
  background: linear-gradient(90deg, #d0d0e0 0%, #b0b0c0 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  transform-origin: left center;
  animation: sm-tape-unwind 8s ease-in-out infinite;
}
.scn-state-cannot-be-measured .crowd-1 {
  position: absolute; bottom: 14%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sm-crowd-bounce 4s ease-in-out infinite;
}
.scn-state-cannot-be-measured .crowd-2 {
  position: absolute; bottom: 12%; right: 20%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sm-crowd-bounce 4.5s ease-in-out infinite 1s;
}
.scn-state-cannot-be-measured .sign-post {
  position: absolute; bottom: 30%; left: 12%; width: 8px; height: 60px;
  background: #5a5a6a;
  border-radius: 2px;
}
.scn-state-cannot-be-measured .lamp {
  position: absolute; top: 15%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0e0b0 0%, #c0a070 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(192,160,112,0.6);
  animation: sm-lamp-flicker 2s ease-in-out infinite alternate;
}
@keyframes sm-figure-wobble { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes sm-tape-unwind { 0% { transform: rotate(-15deg) scaleX(0.8); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(0.8); } }
@keyframes sm-crowd-bounce { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); } }
@keyframes sm-lamp-flicker { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(192,160,112,0.4); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(192,160,112,0.8); } }

/* the-four-virtues */
.scn-the-four-virtues {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 50%, #c8b898 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  position: relative;
}
.scn-the-four-virtues .sun {
  position: absolute; top: 5%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d088 60%, #e0b060 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 60px 30px rgba(240,208,136,0.4);
  animation: fv-sun-glow 12s ease-in-out infinite alternate;
}
.scn-the-four-virtues .virtue {
  position: absolute; bottom: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-the-four-virtues .virtue.justice {
  left: 10%; animation: fv-virtue-breathe 6s ease-in-out infinite;
}
.scn-the-four-virtues .virtue.temperance {
  left: 30%; animation: fv-virtue-breathe 6s ease-in-out infinite 1s;
}
.scn-the-four-virtues .virtue.fortitude {
  left: 50%; transform: translateX(-50%); animation: fv-virtue-breathe 6s ease-in-out infinite 2s;
}
.scn-the-four-virtues .virtue.prudence {
  right: 10%; animation: fv-virtue-breathe 6s ease-in-out infinite 3s;
}
.scn-the-four-virtues .pedestal {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 20px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  border-radius: 10% 10% 0 0;
}
.scn-the-four-virtues .rays {
  position: absolute; top: 8%; left: 10%; right: 10%; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.2) 0%, transparent 70%);
  filter: blur(20px);
  animation: fv-rays-pulse 8s ease-in-out infinite alternate;
}
@keyframes fv-sun-glow { 0% { box-shadow: 0 0 40px 20px rgba(240,208,136,0.3); transform: translateX(-50%) scale(1); } 50% { box-shadow: 0 0 80px 40px rgba(240,208,136,0.6); transform: translateX(-50%) scale(1.05); } 100% { box-shadow: 0 0 40px 20px rgba(240,208,136,0.3); transform: translateX(-50%) scale(1); } }
@keyframes fv-virtue-breathe { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.03) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes fv-rays-pulse { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

.scn-temperance-and-obedience { background: linear-gradient(180deg, #1f1b16 0%, #2a231c 40%, #3d3227 100%), radial-gradient(ellipse at 50% 60%, #2a231c 0%, transparent 70%); }
.scn-temperance-and-obedience .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3d3227 0%, #2a231c 100%); }
.scn-temperance-and-obedience .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3e32 0%, #2a231c 100%); }
.scn-temperance-and-obedience .window { position:absolute; top:18%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(135deg, #5a4e3e 0%, #3d3227 100%); border:3px solid #5a4e3e; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-temperance-and-obedience .figure { position:absolute; bottom:25%; left:48%; width:20px; height:45px; background: linear-gradient(180deg, #2a231c 0%, #1f1b16 100%); border-radius:45% 45% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: to-figure 6s ease-in-out infinite; }
.scn-temperance-and-obedience .book   { position:absolute; bottom:28%; left:52%; width:22px; height:16px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:2px; transform:rotate(5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: to-book 4s ease-in-out infinite; }
.scn-temperance-and-obedience .candle { position:absolute; bottom:32%; left:44%; width:6px; height:14px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:2px; }
.scn-temperance-and-obedience .flame  { position:absolute; bottom:46%; left:44.5%; width:8px; height:10px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ffa050 70%, transparent 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 12px 3px #ffa050, 0 0 24px 6px rgba(255,160,80,.3); animation: to-flame 2s ease-in-out infinite alternate; }
.scn-temperance-and-obedience .dust   { position:absolute; top:20%; left:20%; width:4px; height:4px; background:rgba(200,180,160,.6); border-radius:50%; filter:blur(1px); animation: to-dust 12s linear infinite; }
@keyframes to-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes to-book   { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-1px); } }
@keyframes to-flame  { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.1) scaleX(.8); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.8; } }
@keyframes to-dust   { 0% { transform: translate(0,0) scale(1); opacity:.6; } 25% { transform: translate(10px,-8px) scale(1.2); opacity:.3; } 50% { transform: translate(20px,-15px) scale(.8); opacity:.5; } 75% { transform: translate(30px,-5px) scale(1.1); opacity:.2; } 100% { transform: translate(40px,-20px) scale(1); opacity:.6; } }

.scn-stories-to-suppress { background: linear-gradient(180deg, #151210 0%, #2a221a 50%, #1f1914 100%), radial-gradient(ellipse at 30% 40%, #2a221a 0%, transparent 80%); }
.scn-stories-to-suppress .bg-dark      { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
.scn-stories-to-suppress .table        { position:absolute; bottom:20%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3d3227 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-stories-to-suppress .board        { position:absolute; bottom:30%; left:20%; width:45%; height:8%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-stories-to-suppress .cup          { position:absolute; bottom:35%; left:55%; width:14px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:0 0 4px 4px; transform:rotate(-10deg); box-shadow: 0 3px 6px rgba(0,0,0,.5); }
.scn-stories-to-suppress .figure-right { position:absolute; bottom:22%; right:12%; width:24px; height:50px; background: linear-gradient(180deg, #2a221a 0%, #151210 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ss-figure-r 3s ease-in-out infinite; }
.scn-stories-to-suppress .figure-left  { position:absolute; bottom:22%; left:12%; width:22px; height:48px; background: linear-gradient(180deg, #1f1914 0%, #151210 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ss-figure-l 3.5s ease-in-out infinite; }
.scn-stories-to-suppress .shadow-lurk   { position:absolute; bottom:15%; left:10%; width:60px; height:70px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%); filter:blur(4px); animation: ss-lurk 5s ease-in-out infinite; }
.scn-stories-to-suppress .wine-splash   { position:absolute; bottom:32%; left:58%; width:12px; height:8px; background: radial-gradient(ellipse at 50% 0%, #a0461a 0%, #702243 60%, transparent 70%); border-radius:50%; filter:blur(2px); animation: ss-splash 2s ease-in-out infinite; }
@keyframes ss-figure-r { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes ss-figure-l { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ss-lurk     { 0%,100% { transform: scale(1) translateY(0); opacity:.5; } 50% { transform: scale(1.05) translateY(-3px); opacity:.8; } }
@keyframes ss-splash   { 0% { transform: scale(1) rotate(0deg); opacity:.6; } 50% { transform: scale(1.3) rotate(10deg); opacity:.3; } 100% { transform: scale(.9) rotate(-5deg); opacity:.6; } }

.scn-avarice-and-achilles { background: linear-gradient(180deg, #1a1612 0%, #2e241c 50%, #1f1914 100%), radial-gradient(ellipse at 70% 50%, #3d3227 0%, transparent 70%); }
.scn-avarice-and-achilles .chamber   { position:absolute; inset:0; background: linear-gradient(135deg, #2e241c 0%, #1a1612 100%); }
.scn-avarice-and-achilles .throne    { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3d3227 100%); border-radius:12px 12px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-avarice-and-achilles .achilles  { position:absolute; bottom:25%; right:15%; width:22px; height:50px; background: linear-gradient(180deg, #2e241c 0%, #1a1612 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform: rotate(15deg); transform-origin: bottom center; animation: aa-achilles 4s ease-in-out infinite; }
.scn-avarice-and-achilles .gift-pile { position:absolute; bottom:20%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; box-shadow: 0 0 8px #c8a060; animation: aa-gift 3s ease-in-out infinite; }
.scn-avarice-and-achilles .coin      { position:absolute; bottom:22%; left:25%; width:8px; height:8px; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 100%); border-radius:50%; box-shadow: 0 0 6px #c8a060; animation: aa-coin 2s ease-in-out infinite; }
.scn-avarice-and-achilles .brazier   { position:absolute; bottom:18%; left:40%; width:12px; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #3d3227 100%); border-radius:4px 4px 0 0; }
.scn-avarice-and-achilles .spear     { position:absolute; bottom:35%; right:30%; width:4px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:2px; transform:rotate(-20deg); transform-origin: bottom center; animation: aa-spear 3.5s ease-in-out infinite; }
@keyframes aa-achilles { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes aa-gift     { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes aa-coin     { 0% { transform: translate(0,0) rotate(0deg); opacity:.8; } 50% { transform: translate(-3px,-4px) rotate(90deg); opacity:1; } 100% { transform: translate(0,0) rotate(180deg); opacity:.8; } }
@keyframes aa-spear    { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateY(2px); } }

.scn-evil-not-from-gods { background: linear-gradient(180deg, #1a0e0a 0%, #2a1410 40%, #1f0f0c 100%), radial-gradient(ellipse at 50% 30%, #4a2020 0%, transparent 60%); }
.scn-evil-not-from-gods .pit               { position:absolute; bottom:0; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at 50% 0%, #0a0503 0%, #1a0e0a 70%); border-radius:50% 50% 0 0; }
.scn-evil-not-from-gods .pyre              { position:absolute; bottom:15%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a4020 0%, #5a2810 100%); border-radius:20px 20px 0 0; box-shadow: 0 0 20px #8a4020; animation: en-pyre 3s ease-in-out infinite; }
.scn-evil-not-from-gods .achilles-silhouette { position:absolute; bottom:25%; right:15%; width:28px; height:60px; background: linear-gradient(180deg, #0a0503 0%, #1a0e0a 100%); border-radius:45% 45% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: en-achilles 4s ease-in-out infinite; }
.scn-evil-not-from-gods .corpse            { position:absolute; bottom:10%; left:30%; width:18px; height:30px; background: linear-gradient(180deg, #3a1a10 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform:rotate(30deg); }
.scn-evil-not-from-gods .river-god         { position:absolute; bottom:40%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; filter:blur(2px); animation: en-river 5s ease-in-out infinite; }
.scn-evil-not-from-gods .flames            { position:absolute; bottom:28%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #8a4020 0%, #5a2810 50%, transparent 80%); filter:blur(4px); animation: en-flames 2s ease-in-out infinite alternate; }
.scn-evil-not-from-gods .spark             { position:absolute; bottom:35%; left:52%; width:3px; height:3px; background:#ffa050; border-radius:50%; box-shadow: 0 0 6px #ffa050; animation: en-spark 1.5s ease-in-out infinite; }
.scn-evil-not-from-gods .ash               { position:absolute; top:20%; left:25%; width:5px; height:5px; background:rgba(160,120,80,.3); border-radius:50%; filter:blur(2px); animation: en-ash 8s linear infinite; }
@keyframes en-pyre    { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes en-achilles { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-3deg); } }
@keyframes en-river   { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.1); } }
@keyframes en-flames  { 0% { transform: scaleY(1) scaleX(1); opacity:.6; } 50% { transform: scaleY(1.2) scaleX(.8); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.7; } }
@keyframes en-spark   { 0%,100% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(8px,-12px) scale(1.5); opacity:0; } }
@keyframes en-ash     { 0% { transform: translate(0,0) scale(1); opacity:.4; } 50% { transform: translate(30px,-20px) scale(.6); opacity:.1; } 100% { transform: translate(60px,-40px) scale(1.2); opacity:.3; } }

.scn-style-of-narration { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c22 100%), radial-gradient(ellipse at 50% 100%, #4a3828 0%, transparent 70%); }
.scn-style-of-narration .desk   { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); }
.scn-style-of-narration .book   { position:absolute; bottom:20%; left:38%; width:60px; height:40px; background: linear-gradient(135deg, #8a7050 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.4); transform: rotate(-2deg); animation: son-book 14s ease-in-out infinite alternate; }
.scn-style-of-narration .lamp   { position:absolute; bottom:32%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #b09070 0%, #604830 100%); border-radius: 40% 40% 6px 6px; box-shadow: 0 0 18px 6px #c08050; animation: son-lamp 6s ease-in-out infinite alternate; }
.scn-style-of-narration .candle { position:absolute; bottom:30%; left:72%; width:6px; height:18px; background: linear-gradient(180deg, #e0c090 0%, #a08060 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 12px 4px #ffd080; animation: son-candle 3s ease-in-out infinite alternate; }
.scn-style-of-narration .figure { position:absolute; bottom:10%; left:58%; width:24px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: son-figure 20s ease-in-out infinite; }
.scn-style-of-narration .shadow { position:absolute; bottom:10%; left:10%; right:10%; height:8%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); animation: son-shadow 20s ease-in-out infinite; }
.scn-style-of-narration .glow   { position:absolute; bottom:30%; left:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,160,100,.35) 0%, transparent 70%); filter: blur(15px); animation: son-glow 8s ease-in-out infinite alternate; }
@keyframes son-book    { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes son-lamp    { 0% { box-shadow: 0 0 14px 4px #c08050; opacity:.9; } 50% { box-shadow: 0 0 22px 8px #d09060; opacity:1; } 100% { box-shadow: 0 0 16px 5px #c08050; opacity:.9; } }
@keyframes son-candle  { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 10px 3px #ffd080; } 50% { transform: scaleY(1.05) scaleX(0.98); box-shadow: 0 0 14px 5px #ffe090; } 100% { transform: scaleY(0.97) scaleX(1.02); box-shadow: 0 0 10px 3px #ffd080; } }
@keyframes son-figure  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-0.5deg); } 50% { transform: translateX(0) rotate(0.5deg); } 75% { transform: translateX(-2px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes son-shadow  { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes son-glow    { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(1); } }

.scn-imitation-and-narration { background: linear-gradient(180deg, #1c1410 0%, #2a1c18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #4a3228 0%, transparent 70%); }
.scn-imitation-and-narration .stage        { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-imitation-and-narration .mask         { position:absolute; bottom:35%; left:50%; width:40px; height:40px; background: linear-gradient(135deg, #8a7050 0%, #604830 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: imn-mask 16s ease-in-out infinite alternate; }
.scn-imitation-and-narration .podium       { position:absolute; bottom:30%; left:40%; width:20px; height:35px; background: linear-gradient(180deg, #6a5040 0%, #3a2a1e 100%); border-radius: 4px; transform: perspective(60px) rotateX(10deg); }
.scn-imitation-and-narration .scroll       { position:absolute; bottom:32%; left:50%; width:60px; height:10px; background: linear-gradient(180deg, #c0a080 0%, #907050 100%); border-radius: 50% / 100% 100% 0 0; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: imn-scroll 22s ease-in-out infinite; }
.scn-imitation-and-narration .figure       { position:absolute; bottom:10%; left:52%; width:30px; height:55px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imn-figure 18s ease-in-out infinite; }
.scn-imitation-and-narration .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #4a1a1a 0%, #2a0e0e 100%); border-radius: 0 40% 0 0 / 0 20% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.5); animation: imn-curtain 25s ease-in-out infinite alternate; }
.scn-imitation-and-narration .curtain-right{ position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #4a1a1a 0%, #2a0e0e 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,.5); animation: imn-curtain 25s ease-in-out infinite alternate-reverse; }
@keyframes imn-mask     { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes imn-scroll   { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes imn-figure   { 0% { transform: translateX(0) scaleY(1); } 33% { transform: translateX(3px) scaleY(1.01); } 66% { transform: translateX(-2px) scaleY(0.99); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes imn-curtain   { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.8; } }

.scn-guardians-must-not-imitate { background: linear-gradient(180deg, #1a1412 0%, #2a2220 40%, #3a2e2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a32 0%, transparent 70%); }
.scn-guardians-must-not-imitate .pedestal  { position:absolute; bottom:15%; left:50%; width:40px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2e26 0%, #1a1410 100%); border-radius: 4px; box-shadow: inset 0 -8px 12px rgba(0,0,0,.4); }
.scn-guardians-must-not-imitate .guardian { position:absolute; bottom:30%; left:50%; width:30px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: gmn-guardian 14s ease-in-out infinite; }
.scn-guardians-must-not-imitate .shield   { position:absolute; bottom:35%; left:42%; width:20px; height:24px; background: linear-gradient(135deg, #6a5a50 0%, #4a3a32 100%); border-radius: 50% / 40% 40% 60% 60%; box-shadow: inset -2px 2px 6px rgba(0,0,0,.3); transform: rotate(15deg); animation: gmn-shield 10s ease-in-out infinite alternate; }
.scn-guardians-must-not-imitate .halo     { position:absolute; bottom:42%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,180,140,.25) 0%, transparent 70%); filter: blur(10px); animation: gmn-halo 20s ease-in-out infinite alternate; }
.scn-guardians-must-not-imitate .shadow   { position:absolute; bottom:15%; left:30%; right:30%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); animation: gmn-shadow 14s ease-in-out infinite; }
@keyframes gmn-guardian { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(-0.5deg) scaleY(0.98); } }
@keyframes gmn-shield   { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(12deg) scale(1.03); } 100% { transform: rotate(15deg) scale(0.97); } }
@keyframes gmn-halo     { 0% { opacity:.5; transform: translateX(-50%) scale(1); } 50% { opacity:.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:.5; transform: translateX(-50%) scale(0.95); } }
@keyframes gmn-shadow   { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-one-man-one-part { background: linear-gradient(180deg, #1c1412 0%, #2a1e1a 40%, #3a2824 100%), radial-gradient(ellipse at 50% 0%, #4a3228 0%, transparent 70%); }
.scn-one-man-one-part .stage     { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-one-man-one-part .figure    { position:absolute; bottom:15%; left:50%; width:28px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omp-figure 16s ease-in-out infinite; }
.scn-one-man-one-part .chair     { position:absolute; bottom:15%; left:44%; width:24px; height:30px; background: linear-gradient(180deg, #3a2e26 0%, #1a1410 100%); border-radius: 4px; transform: perspective(40px) rotateX(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: omp-chair 20s ease-in-out infinite; }
.scn-one-man-one-part .spotlight { position:absolute; top:0; left:25%; right:25%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,140,.12) 0%, transparent 80%); filter: blur(20px); animation: omp-spotlight 12s ease-in-out infinite alternate; }
.scn-one-man-one-part .shadow    { position:absolute; bottom:15%; left:44%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); transform: translateX(10px); animation: omp-shadow 16s ease-in-out infinite; }
@keyframes omp-figure    { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(0.98) rotate(-0.5deg); } }
@keyframes omp-chair     { 0% { transform: translateY(0) perspective(40px) rotateX(5deg); } 50% { transform: translateY(-2px) perspective(40px) rotateX(4deg); } 100% { transform: translateY(0) perspective(40px) rotateX(5deg); } }
@keyframes omp-spotlight { 0% { opacity:.5; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes omp-shadow    { 0% { opacity:.4; transform: translateX(10px) scaleX(1); } 50% { opacity:.6; transform: translateX(8px) scaleX(1.05); } 100% { opacity:.4; transform: translateX(10px) scaleX(1); } }

/* scene 1: injustice-cannot-unite */
.scn-injustice-cannot-unite {
  background: 
    linear-gradient(180deg, #2e1a0e 0%, #1c0f07 40%, #0a0503 100%),
    radial-gradient(ellipse at 50% 60%, #3a2215 0%, transparent 70%);
}
.scn-injustice-cannot-unite .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 30%, rgba(0,0,0,0.2) 70%, rgba(0,0,0,0.6) 100%);
  animation: ini-bg 8s ease-in-out infinite alternate;
}
.scn-injustice-cannot-unite .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1810 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: ini-table 6s ease-in-out infinite;
}
.scn-injustice-cannot-unite .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: ini-figure 4s ease-in-out infinite;
}
.scn-injustice-cannot-unite .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: ini-figure 4s ease-in-out infinite reverse;
}
.scn-injustice-cannot-unite .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #b87a4a 0%, #8a5a2a 50%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0; animation: ini-candle 1.2s ease-in-out infinite;
}
.scn-injustice-cannot-unite .candle::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffa050 0%, #d07030 40%, transparent 70%);
  border-radius: 50%; animation: ini-flame 0.5s ease-in-out infinite alternate;
}
.scn-injustice-cannot-unite .shadow-wall {
  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.8) 100%);
  animation: ini-shadow 10s ease-in-out infinite alternate;
}
@keyframes ini-bg { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes ini-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes ini-figure { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(4px) rotate(2deg)} 50%{transform:translateX(8px) rotate(-1deg)} 75%{transform:translateX(4px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ini-candle { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.95)} 100%{transform:scaleY(1)} }
@keyframes ini-flame { 0%{transform:scale(1) translateY(0); opacity:1} 100%{transform:scale(0.8) translateY(-3px); opacity:0.8} }
@keyframes ini-shadow { 0%{opacity:0.6} 50%{opacity:0.8} 100%{opacity:0.5} }

/* scene 2: justice-excellence-of-soul */
.scn-justice-excellence-of-soul {
  background: 
    linear-gradient(180deg, #1f1820 0%, #2a2230 30%, #0e0b12 100%),
    radial-gradient(ellipse at 50% 30%, #4a3850 0%, transparent 70%);
}
.scn-justice-excellence-of-soul .scale-base {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 25%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%);
  border-radius: 0 0 10px 10px;
}
.scn-justice-excellence-of-soul .scale-arm {
  position: absolute; bottom: 50%; left: 30%; right: 30%; height: 6px;
  background: #4a3a4a; border-radius: 3px; transform-origin: center bottom;
  animation: jus-arm 3s ease-in-out infinite alternate;
}
.scn-justice-excellence-of-soul .scale-pan-left {
  position: absolute; bottom: 48%; left: 22%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #5a4a5a 0%, #2a1a2a 100%);
  border-radius: 50%; transform-origin: top center;
  animation: jus-pan-left 3s ease-in-out infinite alternate;
}
.scn-justice-excellence-of-soul .scale-pan-right {
  position: absolute; bottom: 48%; right: 22%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #5a4a5a 0%, #2a1a2a 100%);
  border-radius: 50%; transform-origin: top center;
  animation: jus-pan-right 3s ease-in-out infinite alternate;
}
.scn-justice-excellence-of-soul .figure-soul {
  position: absolute; bottom: 25%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3850 0%, #2a2030 50%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jus-soul 6s ease-in-out infinite;
}
.scn-justice-excellence-of-soul .glow-aura {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 60%;
  background: radial-gradient(circle, rgba(120,100,140,0.15) 0%, transparent 70%);
  animation: jus-glow 4s ease-in-out infinite alternate;
}
@keyframes jus-arm { 0%{transform:rotate(-5deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(5deg)} }
@keyframes jus-pan-left { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes jus-pan-right { 0%{transform:translateY(0)} 50%{transform:translateY(4px)} 100%{transform:translateY(0)} }
@keyframes jus-soul { 0%,100%{transform:scale(1) translateY(0)} 50%{transform:scale(0.95) translateY(2px)} }
@keyframes jus-glow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.2} }

/* scene 3: the-gods-are-just */
.scn-the-gods-are-just {
  background: 
    linear-gradient(180deg, #2a2528 0%, #1d181c 50%, #0f0b10 100%),
    radial-gradient(ellipse at 50% 80%, #4a3f44 0%, transparent 60%);
}
.scn-the-gods-are-just .temple-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(50,42,48,0.8) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
  animation: god-bg 12s ease-in-out infinite alternate;
}
.scn-the-gods-are-just .column-left {
  position: absolute; bottom: 20%; left: 20%; width: 12px; height: 50%;
  background: linear-gradient(90deg, #3a3038, #52454c, #3a3038);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-the-gods-are-just .column-right {
  position: absolute; bottom: 20%; right: 20%; width: 12px; height: 50%;
  background: linear-gradient(90deg, #3a3038, #52454c, #3a3038);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-the-gods-are-just .altar {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #4a3c40 0%, #2a2024 100%);
  border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: god-altar 8s ease-in-out infinite;
}
.scn-the-gods-are-just .offering {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #b07a5a 0%, #7a5038 100%);
  border-radius: 50%; animation: god-offer 10s ease-in-out infinite alternate;
}
.scn-the-gods-are-just .figure-priest {
  position: absolute; bottom: 20%; left: 44%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e24 0%, #140c10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: god-priest 6s ease-in-out infinite;
}
.scn-the-gods-are-just .holy-glow {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 50%;
  background: radial-gradient(circle, rgba(200,180,160,0.12) 0%, transparent 70%);
  animation: god-glow 8s ease-in-out infinite alternate;
}
@keyframes god-bg { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes god-altar { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes god-offer { 0%{transform:scale(0.95)} 50%{transform:scale(1)} 100%{transform:scale(0.95)} }
@keyframes god-priest { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes god-glow { 0%{opacity:0.2} 50%{opacity:0.4} 100%{opacity:0.2} }

/* scene 4: the-happy-just-man */
.scn-the-happy-just-man {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 50%, #5a4030 0%, transparent 70%);
}
.scn-the-happy-just-man .feast-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.5) 100%);
  animation: hap-bg 15s ease-in-out infinite alternate;
}
.scn-the-happy-just-man .table-feast {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2418 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: hap-table 8s ease-in-out infinite;
}
.scn-the-happy-just-man .plate-a {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 28px;
  background: radial-gradient(circle, #c8a080 0%, #a07858 100%);
  border-radius: 50%; animation: hap-plate 6s ease-in-out infinite alternate;
}
.scn-the-happy-just-man .plate-b {
  position: absolute; bottom: 22%; right: 25%; width: 28px; height: 28px;
  background: radial-gradient(circle, #c8a080 0%, #a07858 100%);
  border-radius: 50%; animation: hap-plate 6s ease-in-out infinite alternate-reverse;
}
.scn-the-happy-just-man .wine-cup {
  position: absolute; bottom: 25%; left: 48%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6838 100%);
  border-radius: 0 0 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: hap-cup 4s ease-in-out infinite;
}
.scn-the-happy-just-man .figure-diner {
  position: absolute; bottom: 20%; left: 44%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2820 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hap-diner 7s ease-in-out infinite;
}
.scn-the-happy-just-man .lantern-feast {
  position: absolute; bottom: 30%; left: 10%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #b08040 0%, #8a6028 100%);
  border-radius: 4px; animation: hap-lantern 5s ease-in-out infinite alternate;
}
.scn-the-happy-just-man .lantern-feast::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 18px; height: 18px;
  background: radial-gradient(circle, #ffb060 0%, #d08030 50%, transparent 90%);
  border-radius: 50%; animation: hap-lantern-glow 3s ease-in-out infinite alternate;
}
@keyframes hap-bg { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes hap-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes hap-plate { 0%{transform:scale(1) translateY(0)} 50%{transform:scale(1.05) translateY(-3px)} 100%{transform:scale(1) translateY(0)} }
@keyframes hap-cup { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes hap-diner { 0%{transform:translateX(0)} 25%{transform:translateX(4px)} 50%{transform:translateX(0)} 75%{transform:translateX(-4px)} 100%{transform:translateX(0)} }
@keyframes hap-lantern { 0%{transform:scale(1)} 50%{transform:scale(0.9)} 100%{transform:scale(1)} }
@keyframes hap-lantern-glow { 0%{opacity:0.6; transform:scale(1)} 100%{opacity:1; transform:scale(1.2)} }

/* scene: the-two-statues */
.scn-the-two-statues {
  background:
    radial-gradient(ellipse 40% 60% at 50% 60%, #3a2818 0%, #1e1410 70%),
    linear-gradient(180deg, #2a1e16 0%, #0e0a08 100%);
}
.scn-the-two-statues .wall-left { position:absolute; left:0; top:0; width:15%; height:100%; background: linear-gradient(90deg, #1a1210 0%, #2a1e16 100%); }
.scn-the-two-statues .pedestal-a { position:absolute; bottom:15%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:5%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); }
.scn-the-two-statues .pedestal-b { position:absolute; bottom:15%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:5%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); }
.scn-the-two-statues .statue-a { position:absolute; bottom:42%; left:22%; width:16%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ts-fig 6s ease-in-out infinite; }
.scn-the-two-statues .statue-b { position:absolute; bottom:42%; right:22%; width:16%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ts-fig-rev 6s ease-in-out infinite; }
.scn-the-two-statues .lamp { position:absolute; top:10%; left:48%; width:6%; height:8%; background: radial-gradient(circle, #e8b060 0%, #a07030 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(232,176,96,.5), 0 0 80px 24px rgba(232,176,96,.2); animation: ts-flicker 2s ease-in-out infinite alternate; }
.scn-the-two-statues .shadow-a { position:absolute; bottom:14%; left:18%; width:24%; height:10%; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(8px); animation: ts-shade 8s ease-in-out infinite; }
.scn-the-two-statues .shadow-b { position:absolute; bottom:14%; right:18%; width:24%; height:10%; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(8px); animation: ts-shade-rev 8s ease-in-out infinite; }
.scn-the-two-statues .dust { position:absolute; inset:0; background: radial-gradient(circle at 50% 20%, rgba(232,176,96,.03) 0%, transparent 50%); animation: ts-drift 15s linear infinite; }
@keyframes ts-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes ts-fig-rev { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes ts-flicker { 0%,100% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }
@keyframes ts-shade { 0%,100% { transform: scale(1); opacity:.3; } 50% { transform: scale(1.2); opacity:.5; } }
@keyframes ts-shade-rev { 0%,100% { transform: scale(1); opacity:.3; } 50% { transform: scale(1.15); opacity:.45; } }
@keyframes ts-drift { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }

/* scene: adeimantus-joins-in */
.scn-adeimantus-joins-in {
  background:
    radial-gradient(ellipse 50% 70% at 50% 60%, #2a1c14 0%, #100c0a 80%),
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
}
.scn-adeimantus-joins-in .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-adeimantus-joins-in .doorway { position:absolute; bottom:28%; left:50%; width:30%; height:60%; transform:translateX(-50%); background: #0e0a08; border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-adeimantus-joins-in .figure-incoming { position:absolute; bottom:28%; left:42%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aj-enter 8s ease-in-out infinite; }
.scn-adeimantus-joins-in .torch-left { position:absolute; bottom:35%; left:20%; width:4%; height:50%; background: linear-gradient(180deg, #e8a040 0%, #804020 100%); border-radius: 0 0 10% 10%; box-shadow: 0 0 30px 10px rgba(232,160,64,.4); }
.scn-adeimantus-joins-in .torch-right { position:absolute; bottom:35%; right:20%; width:4%; height:50%; background: linear-gradient(180deg, #e8a040 0%, #804020 100%); border-radius: 0 0 10% 10%; box-shadow: 0 0 30px 10px rgba(232,160,64,.4); animation-delay: .5s; }
.scn-adeimantus-joins-in .speaker-shadow { position:absolute; bottom:27%; left:52%; width:20%; height:8%; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(6px); animation: aj-shadow 6s ease-in-out infinite; }
.scn-adeimantus-joins-in .pillar { position:absolute; bottom:28%; left:5%; width:6%; height:65%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.5); }
@keyframes aj-enter { 0% { transform: translateX(-20px) translateY(0) scale(.95); opacity:.6; } 30% { transform: translateX(0) translateY(-3px) scale(1); opacity:1; } 70% { transform: translateX(0) translateY(-1px) scale(1); } 100% { transform: translateX(20px) translateY(0) scale(.95); opacity:.6; } }
@keyframes aj-shadow { 0%,100% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.3); opacity:.6; } }

/* scene: poets-praise-justice-for-rewards */
.scn-poets-praise-justice-for-rewards {
  background:
    radial-gradient(ellipse 40% 50% at 50% 30%, #3a2a1a 0%, #1a1210 70%),
    linear-gradient(180deg, #2a1e14 0%, #100c0a 100%);
}
.scn-poets-praise-justice-for-rewards .bg-arch { position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-poets-praise-justice-for-rewards .poet-body { position:absolute; bottom:25%; left:40%; width:20%; height:45%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pj-sway 4s ease-in-out infinite; }
.scn-poets-praise-justice-for-rewards .lyre { position:absolute; bottom:35%; left:48%; width:10%; height:18%; background: linear-gradient(90deg, #a08040 0%, #c8a060 50%, #a08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pj-lyre 4s ease-in-out infinite; }
.scn-poets-praise-justice-for-rewards .laurel-crown { position:absolute; bottom:65%; left:44%; width:12%; height:6%; background: linear-gradient(180deg, #a08020 0%, #705010 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 20% 20%, 40% 100%, 60% 20%, 80% 100%, 100% 20%, 100% 100%); animation: pj-crown 4s ease-in-out infinite; }
.scn-poets-praise-justice-for-rewards .reward-coins { position:absolute; bottom:18%; right:20%; width:10%; height:6%; background: radial-gradient(circle at 30% 40%, #d8b840 0%, #8a6820 100%); border-radius: 50%; box-shadow: 0 0 20px rgba(216,184,64,.6); animation: pj-coins 6s ease-in-out infinite; }
.scn-poets-praise-justice-for-rewards .altar { position:absolute; bottom:20%; right:15%; width:14%; height:30%; background: linear-gradient(180deg, #3a2a24 0%, #1e1410 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-poets-praise-justice-for-rewards .flame { position:absolute; bottom:48%; right:19%; width:6%; height:10%; background: radial-gradient(circle, #f0c060 0%, #d08020 60%, transparent 100%); animation: pj-flame 1.5s ease-in-out infinite alternate; }
.scn-poets-praise-justice-for-rewards .murmur-lines { position:absolute; top:20%; left:0; width:100%; height:100%; background: repeating-linear-gradient(45deg, rgba(200,160,80,.04) 0px, transparent 8px); animation: pj-murmur 10s linear infinite; }
@keyframes pj-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes pj-lyre { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } }
@keyframes pj-crown { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes pj-coins { 0%,100% { opacity:.8; } 50% { opacity:1; transform: scale(1.1); } }
@keyframes pj-flame { 0% { opacity:.6; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.2) translateY(-2px); } 100% { opacity:.7; transform: scale(1) translateY(0); } }
@keyframes pj-murmur { 0% { opacity:.1; } 50% { opacity:.3; } 100% { opacity:.1; } }

/* scene: virtue-is-hard-vice-easy */
.scn-virtue-is-hard-vice-easy {
  background:
    radial-gradient(ellipse 60% 50% at 50% 40%, #2a1c14 0%, #100c0a 70%),
    linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
}
.scn-virtue-is-hard-vice-easy .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1e16 0%, #1a1210 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-virtue-is-hard-vice-easy .path-virtue { position:absolute; bottom:35%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%); clip-path: polygon(0 0, 100% 5%, 80% 100%, 20% 100%); box-shadow: inset 0 0 15px rgba(0,0,0,.6); animation: vh-path-up 6s ease-in-out infinite; }
.scn-virtue-is-hard-vice-easy .path-vice { position:absolute; bottom:35%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, #2a1c14 0%, #1e1410 100%); clip-path: polygon(0 5%, 100% 0, 80% 100%, 20% 100%); box-shadow: inset 0 0 15px rgba(0,0,0,.6); animation: vh-path-down 6s ease-in-out infinite; }
.scn-virtue-is-hard-vice-easy .figure-center { position:absolute; bottom:32%; left:48%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vh-figure 8s ease-in-out infinite; }
.scn-virtue-is-hard-vice-easy .sign-left { position:absolute; bottom:40%; left:10%; width:8%; height:15%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%); border-radius: 10% 10% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.4); animation: vh-sign 4s ease-in-out infinite; }
.scn-virtue-is-hard-vice-easy .sign-right { position:absolute; bottom:40%; right:10%; width:8%; height:15%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.4); animation: vh-sign 4s ease-in-out infinite .5s; }
.scn-virtue-is-hard-vice-easy .distance-fog { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 30%, rgba(40,30,20,.3) 0%, transparent 60%); animation: vh-fog 12s linear infinite alternate; }
@keyframes vh-path-up { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.1); } }
@keyframes vh-path-down { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(5px) scaleY(0.9); } }
@keyframes vh-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(-5deg); } }
@keyframes vh-sign { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes vh-fog { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.4; } }

/* Scene: the-noble-lie-3 – calm dusk */
.scn-the-noble-lie-3 {
  background: linear-gradient(180deg, #2c1a3e 0%, #4a2a5a 35%, #6a3a5a 60%, #8a5a4a 100%),
              radial-gradient(ellipse at 50% 100%, #6a3a5a 0%, transparent 70%);
}
.scn-the-noble-lie-3 .sky-nbl3 {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2a5a 0%, #6a4a5a 50%, transparent 100%);
  animation: nbl3-sky 10s ease-in-out infinite alternate;
}
.scn-the-noble-lie-3 .hills-nbl3 {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: nbl3-hills 18s ease-in-out infinite alternate;
}
.scn-the-noble-lie-3 .guardian-nbl3 {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nbl3-guard 8s ease-in-out infinite;
}
.scn-the-noble-lie-3 .torch-nbl3 {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c068 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4);
  animation: nbl3-torch 2s ease-in-out infinite alternate;
}
.scn-the-noble-lie-3 .city-nbl3 {
  position: absolute; bottom: 32%; right: 10%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-the-noble-lie-3 .star-nbl3 {
  position: absolute; top: 10%; left: 80%; width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,.5);
  animation: nbl3-star 3s ease-in-out infinite alternate;
}
.scn-the-noble-lie-3 .cloud-nbl3 {
  position: absolute; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-the-noble-lie-3 .cloud-a-nbl3 { top: 18%; left: 20%; animation: nbl3-drift-a 45s linear infinite; }
.scn-the-noble-lie-3 .cloud-b-nbl3 { top: 12%; right: 30%; animation: nbl3-drift-b 60s linear infinite reverse; }

@keyframes nbl3-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nbl3-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nbl3-guard  { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 75% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes nbl3-torch  { 0% { box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 28px 8px #ffd060, 0 0 56px 16px rgba(255,208,96,.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.35); opacity:.9 } }
@keyframes nbl3-star   { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.5; transform: scale(1) } }
@keyframes nbl3-drift-a{ 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes nbl3-drift-b{ 0% { transform: translateX(0) } 100% { transform: translateX(-140vw) } }

/* Scene: the-earthborn-men – warm dusk */
.scn-the-earthborn-men {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #9a6a3a 60%, #6a3a1a 100%),
              radial-gradient(ellipse at 50% 0%, #9a6a3a 0%, transparent 60%);
}
.scn-the-earthborn-men .earth-nbl3 {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: ebm-earth 12s ease-in-out infinite alternate;
}
.scn-the-earthborn-men .cave-nbl3 {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-the-earthborn-men .figure1-ebm {
  position: absolute; bottom: 35%; left: 26%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ebm-fig1 5s ease-in-out infinite;
}
.scn-the-earthborn-men .figure2-ebm {
  position: absolute; bottom: 32%; left: 42%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ebm-fig2 7s ease-in-out infinite;
}
.scn-the-earthborn-men .light-ebm {
  position: absolute; bottom: 38%; left: 28%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0a050 0%, #c07030 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #c07030, 0 0 48px 16px rgba(192,112,48,.4);
  animation: ebm-light 3s ease-in-out infinite alternate;
}
.scn-the-earthborn-men .dust-ebm {
  position: absolute; bottom: 40%; left: 20%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(160,120,80,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ebm-dust 10s ease-in-out infinite;
}
.scn-the-earthborn-men .frame-ebm {
  position: absolute; inset: 5% 5% 30% 5%;
  border: 4px solid #3a2a1a; background: transparent;
  border-radius: 20px 10px 30px 20px / 30px 20px 20px 10px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
  opacity: .6;
  animation: ebm-frame 15s ease-in-out infinite alternate;
}

@keyframes ebm-earth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes ebm-fig1  { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(2deg) } 70% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes ebm-fig2  { 0%,100% { transform: translateX(0) rotate(0) } 40% { transform: translateX(3px) rotate(-3deg) } 80% { transform: translateX(-3px) rotate(3deg) } }
@keyframes ebm-light { 0% { box-shadow: 0 0 20px 6px #c07030, 0 0 40px 12px rgba(192,112,48,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 10px #e09050, 0 0 60px 20px rgba(224,144,80,.5); opacity:1 } 100% { box-shadow: 0 0 22px 8px #c07030, 0 0 44px 14px rgba(192,112,48,.35); opacity:.9 } }
@keyframes ebm-dust  { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-8px) scale(1.1); opacity:.7 } 100% { transform: translateY(0) scale(1); opacity:.4 } }
@keyframes ebm-frame { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

/* Scene: the-watchdogs – calm dusk with sheep and dog */
.scn-the-watchdogs {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 35%, #7a8a8a 65%, #8a7a6a 100%),
              radial-gradient(ellipse at 50% 100%, #7a8a8a 0%, transparent 70%);
}
.scn-the-watchdogs .wall-wd {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.4);
  animation: wd-wall 20s ease-in-out infinite alternate;
}
.scn-the-watchdogs .dog-wd {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wd-dog 6s ease-in-out infinite;
}
.scn-the-watchdogs .sheep-wd {
  position: absolute; bottom: 20%; width: 30px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #b0a090 0%, #8a7a6a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
  animation: wd-sheep 4s ease-in-out infinite;
}
.scn-the-watchdogs .sheep1-wd { left: 20%; animation-delay: 0s; }
.scn-the-watchdogs .sheep2-wd { left: 60%; animation-delay: 1.5s; }
.scn-the-watchdogs .moon-wd {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0c8d0 0%, #a0a8b0 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(160,168,176,.5);
  animation: wd-moon 12s ease-in-out infinite alternate;
}
.scn-the-watchdogs .grass-wd {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  animation: wd-grass 8s ease-in-out infinite alternate;
}
.scn-the-watchdogs .shadow-wd {
  position: absolute; bottom: 20%; left: 38%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: wd-shadow 6s ease-in-out infinite;
}

@keyframes wd-wall  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wd-dog   { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(5deg) scaleX(0.95) } 75% { transform: translateY(1px) rotate(-3deg) scaleX(1.05) } }
@keyframes wd-sheep { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes wd-moon  { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes wd-grass { 0% { transform: skewX(0) } 50% { transform: skewX(2deg) } 100% { transform: skewX(0) } }
@keyframes wd-shadow{ 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }

/* Scene: happiness-of-the-whole-state – tense dusk with rich/poor contrast */
.scn-happiness-of-the-whole-state {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a2a3e 70%, #2a1a1e 100%),
              radial-gradient(ellipse at 50% 0%, #3a2a3e 0%, transparent 70%);
}
.scn-happiness-of-the-whole-state .bg-hs {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%);
  animation: hs-bg 8s ease-in-out infinite alternate;
}
.scn-happiness-of-the-whole-state .palace-hs {
  position: absolute; bottom: 15%; right: 15%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px 10px rgba(100,80,60,.4);
  animation: hs-palace 6s ease-in-out infinite alternate;
}
.scn-happiness-of-the-whole-state .figure-hs {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-fig 4s ease-in-out infinite;
}
.scn-happiness-of-the-whole-state .poor-hs { left: 25%; animation-delay: 0s; }
.scn-happiness-of-the-whole-state .rich-hs { left: 55%; animation-delay: 0.5s; }
.scn-happiness-of-the-whole-state .coin-hs {
  position: absolute; bottom: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a060 0%, #8a6030 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,96,.5);
  animation: hs-coin 3s ease-in-out infinite alternate;
}
.scn-happiness-of-the-whole-state .coin1-hs { left: 20%; animation-delay: 0s; }
.scn-happiness-of-the-whole-state .coin2-hs { left: 70%; animation-delay: 1.2s; }
.scn-happiness-of-the-whole-state .line-hs {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #8a6030 20%, #c8a060 50%, #8a6030 80%, transparent 100%);
  opacity: .5;
  animation: hs-line 10s ease-in-out infinite alternate;
}

@keyframes hs-bg     { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hs-palace { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) scaleY(0.98) } 100% { transform: scaleX(1) } }
@keyframes hs-fig    { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(1px) rotate(-3deg) } }
@keyframes hs-coin   { 0% { transform: translateY(0) rotate(0); opacity:.7 } 50% { transform: translateY(-6px) rotate(180deg); opacity:1 } 100% { transform: translateY(0) rotate(360deg); opacity:.7 } }
@keyframes hs-line   { 0% { transform: scaleX(0) } 50% { transform: scaleX(1) } 100% { transform: scaleX(0) } }

/* ---------- rulers-make-laws-for-themselves ---------- */
.scn-rulers-make-laws-for-themselves {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(40,30,20,0.8) 0%, transparent 60%),
    linear-gradient(180deg, #1a1510 0%, #2a2015 40%, #1e1812 100%);
}
.scn-rulers-make-laws-for-themselves .shadow-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: rl-shadow 8s ease-in-out infinite alternate;
}
.scn-rulers-make-laws-for-themselves .wall-left {
  position: absolute; top: 0; bottom: 35%; left: 0; width: 25%; background: linear-gradient(90deg, #2a2218 0%, #3a3020 100%); border-right: 2px solid #4a3a2a; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-rulers-make-laws-for-themselves .wall-right {
  position: absolute; top: 0; bottom: 35%; right: 0; width: 25%; background: linear-gradient(270deg, #2a2218 0%, #3a3020 100%); border-left: 2px solid #4a3a2a; box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-rulers-make-laws-for-themselves .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 12px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-rulers-make-laws-for-themselves .candle {
  position: absolute; bottom: 27%; left: 50%; width: 8px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #d4b080 0%, #8a6a40 100%); border-radius: 2px 2px 4px 4px;
}
.scn-rulers-make-laws-for-themselves .candle::after {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%); width: 6px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 50%; animation: rl-flame 1.5s ease-in-out infinite alternate;
}
.scn-rulers-make-laws-for-themselves .figure-seated {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 40px; background: linear-gradient(180deg, #2a2015 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rl-seated 4s ease-in-out infinite;
}
.scn-rulers-make-laws-for-themselves .figure-standing {
  position: absolute; bottom: 18%; left: 56%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1510 0%, #050302 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rl-standing 5s ease-in-out infinite;
}
.scn-rulers-make-laws-for-themselves .scroll {
  position: absolute; bottom: 26%; left: 45%; width: 30px; height: 10px; background: linear-gradient(180deg, #c8b080 0%, #a08050 100%); border-radius: 4px; transform: rotate(-10deg); animation: rl-scroll 6s ease-in-out infinite alternate;
}
.scn-rulers-make-laws-for-themselves .dust {
  position: absolute; top: 40%; left: 20%; width: 100%; height: 60%; background: radial-gradient(circle at 30% 50%, rgba(180,160,120,0.03) 0%, transparent 70%); animation: rl-dust 20s linear infinite;
}
@keyframes rl-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rl-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); } 50% { transform: translateX(-50%) scaleY(1.3) scaleX(0.8); } 100% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); } }
@keyframes rl-seated { 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(0); } }
@keyframes rl-standing { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes rl-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(-3px); } }
@keyframes rl-dust { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(20px, -10px) scale(1.05); } 100% { transform: translate(0, 0) scale(1); } }

/* ---------- the-ruler-can-err ---------- */
.scn-the-ruler-can-err {
  background:
    radial-gradient(ellipse at 60% 40%, rgba(50,35,20,0.7) 0%, transparent 60%),
    linear-gradient(180deg, #1e1a14 0%, #2a2218 50%, #14100a 100%);
}
.scn-the-ruler-can-err .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
}
.scn-the-ruler-can-err .pillar-left {
  position: absolute; top: 0; bottom: 20%; left: 15%; width: 12px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 40%, #3a2a1a 100%); border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-the-ruler-can-err .pillar-right {
  position: absolute; top: 0; bottom: 20%; right: 15%; width: 12px; background: linear-gradient(270deg, #3a2a1a 0%, #5a4a3a 40%, #3a2a1a 100%); border-radius: 2px; box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-the-ruler-can-err .arch {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 35%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0;
}
.scn-the-ruler-can-err .brazier {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 4px 4px 6px 6px; box-shadow: 0 0 20px 6px #c06020, 0 0 40px 12px rgba(192,96,32,0.4); animation: re-brazier-glow 2s ease-in-out infinite alternate;
}
.scn-the-ruler-can-err .figure-socrates {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 44px; background: linear-gradient(180deg, #1a1510 0%, #080503 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: re-figure-left 6s ease-in-out infinite;
}
.scn-the-ruler-can-err .figure-thrasymachus {
  position: absolute; bottom: 18%; left: 56%; width: 24px; height: 48px; background: linear-gradient(180deg, #2a2015 0%, #0a0702 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform-origin: bottom center; animation: re-figure-right 5s ease-in-out infinite;
}
.scn-the-ruler-can-err .hands-gesture {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 12px; background: radial-gradient(ellipse at 50% 50%, #1a150f 0%, transparent 100%); border-radius: 50%; animation: re-hands 3s ease-in-out infinite alternate;
}
@keyframes re-brazier-glow { 0% { box-shadow: 0 0 15px 4px #c06020, 0 0 30px 8px rgba(192,96,32,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #e08030, 0 0 50px 16px rgba(224,128,48,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c06020, 0 0 35px 10px rgba(192,96,32,0.35); opacity: 0.9; } }
@keyframes re-figure-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes re-figure-right { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes re-hands { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -5px) scale(1.2); } 100% { transform: translate(-3px, -2px) scale(0.9); } }

/* ---------- trap-for-thrasymachus ---------- */
.scn-trap-for-thrasymachus {
  background:
    radial-gradient(ellipse at 50% 20%, rgba(30,20,10,0.8) 0%, transparent 70%),
    linear-gradient(180deg, #14100c 0%, #1e1812 50%, #0a0805 100%);
}
.scn-trap-for-thrasymachus .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,8,5,0.5) 0%, transparent 100%); animation: tr-dark-pulse 10s ease-in-out infinite alternate;
}
.scn-trap-for-thrasymachus .platform {
  position: absolute; bottom: 20%; left: 30%; right: 30%; 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-trap-for-thrasymachus .lectern {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px 2px 4px 4px; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-trap-for-thrasymachus .lamp {
  position: absolute; bottom: 32%; left: 50%; width: 10px; height: 8px; transform: translateX(-50%); background: radial-gradient(circle, #c08040 0%, #6a4010 100%); border-radius: 50%; box-shadow: 0 0 30px 6px #a06020, 0 0 60px 12px rgba(160,96,32,0.3); animation: tr-lamp 3s ease-in-out infinite alternate;
}
.scn-trap-for-thrasymachus .figure-leaning {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 44px; background: linear-gradient(180deg, #1a1510 0%, #050302 100%); border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-lean 5s ease-in-out infinite;
}
.scn-trap-for-thrasymachus .figure-perched {
  position: absolute; bottom: 15%; left: 62%; width: 18px; height: 42px; background: linear-gradient(180deg, #2a2015 0%, #0a0702 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: tr-perch 6s ease-in-out infinite;
}
.scn-trap-for-thrasymachus .shadow-pool {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 12%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: tr-pool 12s ease-in-out infinite alternate;
}
.scn-trap-for-thrasymachus .chain {
  position: absolute; top: 10%; left: 48%; width: 4px; height: 30%; background: repeating-linear-gradient(180deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px); animation: tr-chain 8s ease-in-out infinite alternate;
}
@keyframes tr-dark-pulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes tr-lamp { 0% { box-shadow: 0 0 20px 4px #a06020, 0 0 40px 8px rgba(160,96,32,0.25); opacity: 0.8; } 50% { box-shadow: 0 0 35px 8px #c08040, 0 0 70px 16px rgba(192,128,64,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 5px #a06020, 0 0 50px 10px rgba(160,96,32,0.3); opacity: 0.9; } }
@keyframes tr-lean { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(5deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tr-perch { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-4deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes tr-pool { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.2) translateX(5px); } 100% { transform: scaleY(0.9) translateX(-3px); } }
@keyframes tr-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ---------- the-infallible-ruler ---------- */
.scn-the-infallible-ruler {
  background:
    radial-gradient(ellipse at 50% 50%, rgba(40,30,20,0.6) 0%, transparent 80%),
    linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #10100a 100%);
}
.scn-the-infallible-ruler .wall-back {
  position: absolute; top: 0; bottom: 30%; left: 10%; right: 10%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-the-infallible-ruler .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 20px, #2a1a10 20px, #2a1a10 40px); animation: in-floor 15s linear infinite;
}
.scn-the-infallible-ruler .tapestry {
  position: absolute; top: 5%; left: 25%; right: 25%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 50%, #1a1008 100%); border: 2px solid #5a4a3a; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: in-tapestry 12s ease-in-out infinite alternate;
}
.scn-the-infallible-ruler .throne {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
}
.scn-the-infallible-ruler .ruler-figure {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a1510 0%, #080503 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: in-ruler 5s ease-in-out infinite;
}
.scn-the-infallible-ruler .subject-figure {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a2015 0%, #0a0702 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%; transform-origin: bottom center; animation: in-subject 6s ease-in-out infinite;
}
.scn-the-infallible-ruler .lantern-glow {
  position: absolute; bottom: 35%; left: 40%; width: 12px; height: 12px; background: radial-gradient(circle, #c08040 0%, #6a4010 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px #a06020; animation: in-glow 3s ease-in-out infinite alternate;
}
.scn-the-infallible-ruler .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%; background: radial-gradient(circle at 20% 40%, rgba(200,180,140,0.02) 0%, transparent 80%); filter: blur(4px); animation: in-dust 25s linear infinite;
}
@keyframes in-floor { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes in-tapestry { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes in-ruler { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes in-subject { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes in-glow { 0% { box-shadow: 0 0 30px 8px #a06020; opacity: 0.7; } 50% { box-shadow: 0 0 50px 14px #c08040; opacity: 1; } 100% { box-shadow: 0 0 35px 10px #a06020; opacity: 0.8; } }
@keyframes in-dust { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(15px, -8px) scale(1.05); } 100% { transform: translate(0, 0) scale(1); } }

.scn-melody-and-rhythm {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3c2b1c 30%, #4a3828 60%, #2a1e14 100%),
    radial-gradient(ellipse at 70% 30%, #5a4030 0%, transparent 60%);
}
.scn-melody-and-rhythm .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 50%, #4a3828 100%);
  animation: mr-wall 12s ease-in-out infinite alternate;
}
.scn-melody-and-rhythm .lamp-glow {
  position: absolute; top: 15%; left: 45%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(220,180,120,0.35) 0%, rgba(220,180,120,0.05) 70%, transparent 100%);
  border-radius: 50%; filter: blur(20px);
  animation: mr-glow 8s ease-in-out infinite alternate;
}
.scn-melody-and-rhythm .lyre {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: mr-lyre 9s ease-in-out infinite;
}
.scn-melody-and-rhythm .poet {
  position: absolute; bottom: 22%; left: 32%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-poet 6s ease-in-out infinite alternate;
}
.scn-melody-and-rhythm .scroll {
  position: absolute; bottom: 28%; left: 22%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #d4b888 0%, #b89868 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(10deg); animation: mr-scroll 12s ease-in-out infinite;
}
.scn-melody-and-rhythm .window-frame {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 100px;
  border: 4px solid #5a4030; border-radius: 4px;
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: mr-frame 15s ease-in-out infinite alternate;
}
.scn-melody-and-rhythm .window-pane {
  position: absolute; top: 14%; left: 71.5%; width: 74px; height: 94px;
  background: linear-gradient(180deg, rgba(100,80,60,0.3) 0%, rgba(60,40,20,0.2) 100%);
  border-radius: 2px; filter: blur(2px);
  animation: mr-pane 8s ease-in-out infinite alternate;
}

@keyframes mr-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mr-glow { 0% { transform: scale(0.9); opacity: 0.6 } 50% { transform: scale(1.1); opacity: 0.9 } 100% { transform: scale(0.95); opacity: 0.7 } }
@keyframes mr-lyre { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes mr-poet { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mr-scroll { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes mr-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.2) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.25) } }
@keyframes mr-pane { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

.scn-harmonies-to-be-kept {
  background:
    linear-gradient(180deg, #1e1a1a 0%, #2a2220 30%, #3a2e2a 60%, #2a2220 100%),
    radial-gradient(ellipse at 40% 20%, #4a3a32 0%, transparent 50%);
}
.scn-harmonies-to-be-kept .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2e2a 0%, #5a4a42 40%, #3a2e2a 100%);
  animation: hk-wall 15s ease-in-out infinite alternate;
}
.scn-harmonies-to-be-kept .arch {
  position: absolute; top: 5%; left: 55%; width: 100px; height: 60px;
  background: transparent;
  border: 6px solid #705040; border-radius: 50% 50% 0 0; border-bottom: none;
  transform: rotate(-3deg); animation: hk-arch 10s ease-in-out infinite;
}
.scn-harmonies-to-be-kept .singer {
  position: absolute; bottom: 22%; left: 48%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hk-singer 8s ease-in-out infinite alternate;
}
.scn-harmonies-to-be-kept .lamp-stand {
  position: absolute; bottom: 18%; left: 25%; width: 6px; height: 80px;
  background: #5a4a3a; border-radius: 2px;
  animation: hk-lamp 14s ease-in-out infinite;
}
.scn-harmonies-to-be-kept .flame {
  position: absolute; bottom: 58%; left: 24.5%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #d09040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,140,60,0.4);
  animation: hk-flame 3s ease-in-out infinite alternate;
}
.scn-harmonies-to-be-kept .shadow-fig {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 60px;
  background: rgba(10,8,8,0.6); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(3px); animation: hk-shadow 12s ease-in-out infinite;
}

@keyframes hk-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes hk-arch { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes hk-singer { 0% { transform: translateX(0) rotate(-1deg) scale(1) } 50% { transform: translateX(5px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes hk-lamp { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hk-flame { 0% { transform: scaleY(0.9) scaleX(0.8); opacity: 0.7 } 50% { transform: scaleY(1.2) scaleX(1); opacity: 1 } 100% { transform: scaleY(1) scaleX(0.9); opacity: 0.8 } }
@keyframes hk-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.5 } 50% { transform: translateX(3px) scale(1.02); opacity: 0.7 } 100% { transform: translateX(0) scale(1); opacity: 0.55 } }

.scn-instruments-to-be-kept {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2420 30%, #3a322a 60%, #2a2420 100%),
    radial-gradient(ellipse at 30% 40%, #4a3e32 0%, transparent 50%);
}
.scn-instruments-to-be-kept .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: ik-table 20s ease-in-out infinite alternate;
}
.scn-instruments-to-be-kept .lyre-a {
  position: absolute; bottom: 32%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 15% 15% 8% 8%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  transform: rotate(-10deg); animation: ik-lyrea 10s ease-in-out infinite;
}
.scn-instruments-to-be-kept .lyre-b {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 15% 15% 8% 8%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg); animation: ik-lyreb 12s ease-in-out infinite alternate;
}
.scn-instruments-to-be-kept .panpipes {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #b09870 0%, #907050 100%);
  border-radius: 10% 10% 5% 5%; transform: rotate(8deg);
  animation: ik-pipes 15s ease-in-out infinite;
}
.scn-instruments-to-be-kept .bowl {
  position: absolute; bottom: 18%; left: 65%; width: 40px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #805040 0%, #603020 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ik-bowl 18s ease-in-out infinite alternate;
}
.scn-instruments-to-be-kept .candle {
  position: absolute; bottom: 40%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 2px; box-shadow: 0 0 8px 2px rgba(200,160,100,0.3);
  animation: ik-candle 7s ease-in-out infinite;
}
.scn-instruments-to-be-kept .candle-glow {
  position: absolute; bottom: 50%; left: 43%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,120,0.25) 0%, rgba(240,200,120,0.05) 60%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: ik-glow 4s ease-in-out infinite alternate;
}

@keyframes ik-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ik-lyrea { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ik-lyreb { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes ik-pipes { 0% { transform: rotate(8deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(8deg) } }
@keyframes ik-bowl { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ik-candle { 0% { transform: scaleY(1); opacity: 0.9 } 50% { transform: scaleY(1.05); opacity: 1 } 100% { transform: scaleY(1); opacity: 0.95 } }
@keyframes ik-glow { 0% { transform: scale(0.9); opacity: 0.5 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(0.95); opacity: 0.6 } }

.scn-rhythm-and-grace {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a201a 30%, #3a2e26 60%, #2a201a 100%),
    radial-gradient(ellipse at 50% 10%, #5a4434 0%, transparent 50%);
}
.scn-rhythm-and-grace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1e16 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: rg-floor 20s ease-in-out infinite alternate;
}
.scn-rhythm-and-grace .column-left {
  position: absolute; top: 0; left: 5%; width: 12%; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-rhythm-and-grace .column-right {
  position: absolute; top: 0; right: 5%; width: 12%; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-rhythm-and-grace .dancer {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rg-dancer 5s ease-in-out infinite alternate;
}
.scn-rhythm-and-grace .dancer-shadow {
  position: absolute; bottom: 15%; left: 40%; width: 34px; height: 12px;
  background: rgba(10,8,8,0.4); border-radius: 50%;
  filter: blur(4px); animation: rg-shadow 5s ease-in-out infinite alternate;
}
.scn-rhythm-and-grace .garland {
  position: absolute; top: 15%; left: 15%; right: 15%; height: 12px;
  background: linear-gradient(90deg, #8a7a5a 0%, #b09870 30%, #c0a880 50%, #b09870 70%, #8a7a5a 100%);
  border-radius: 50% / 100% 100% 0 0; filter: blur(1px);
  animation: rg-garland 25s ease-in-out infinite alternate;
}
.scn-rhythm-and-grace .brazier {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-rhythm-and-grace .brazier-glow {
  position: absolute; bottom: 35%; left: 52%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,140,60,0.3) 0%, rgba(200,140,60,0.05) 60%, transparent 100%);
  border-radius: 50%; filter: blur(15px);
  animation: rg-bglow 6s ease-in-out infinite alternate;
}

@keyframes rg-floor { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes rg-dancer { 0% { transform: translateX(0) rotate(-3deg) scale(1) } 50% { transform: translateX(8px) rotate(3deg) scale(1.02) } 100% { transform: translateX(0) rotate(-2deg) scale(1) } }
@keyframes rg-shadow { 0% { transform: scale(1); opacity: 0.3 } 50% { transform: scale(1.15); opacity: 0.5 } 100% { transform: scale(1); opacity: 0.35 } }
@keyframes rg-garland { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rg-bglow { 0% { transform: scale(0.9); opacity: 0.4 } 50% { transform: scale(1.1); opacity: 0.7 } 100% { transform: scale(0.95); opacity: 0.5 } }

.scn-beauty-of-style { background: linear-gradient(180deg, #fef0da 0%, #f5dbb0 40%, #e8c89a 100%), radial-gradient(ellipse at 30% 20%, #fff4e0 0%, transparent 60%); }
.scn-beauty-of-style .wall { position: absolute; inset: 0; background: linear-gradient(135deg, #f5e1c0 0%, #e8ccaa 100%); }
.scn-beauty-of-style .window { position: absolute; top: 10%; left: 25%; width: 40%; height: 55%; background: linear-gradient(180deg, #fffbe6 0%, #e6dbb8 90%); border: 6px solid #d4b896; border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 60px rgba(255,244,180,0.2); animation: bos-window 6s ease-in-out infinite alternate; }
.scn-beauty-of-style .desk { position: absolute; bottom: 10%; left: 20%; width: 45%; height: 12%; background: linear-gradient(180deg, #b08a6e 0%, #8a6b52 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.15); }
.scn-beauty-of-style .chair { position: absolute; bottom: 0; left: 30%; width: 20%; height: 18%; background: linear-gradient(180deg, #8a6b52 0%, #6b503a 100%); border-radius: 10% 10% 4% 4%; transform-origin: bottom center; animation: bos-chair 8s ease-in-out infinite; }
.scn-beauty-of-style .figure { position: absolute; bottom: 12%; left: 32%; width: 14%; height: 28%; background: linear-gradient(180deg, #d4b896 0%, #b08a6e 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bos-figure 12s ease-in-out infinite alternate; }
.scn-beauty-of-style .book { position: absolute; bottom: 14%; left: 35%; width: 8%; height: 6%; background: linear-gradient(135deg, #f0d6b0 0%, #d4a874 100%); border-radius: 3%; box-shadow: 0 3px 6px rgba(0,0,0,0.2); animation: bos-book 4s ease-in-out infinite; }
.scn-beauty-of-style .lamp { position: absolute; top: 30%; left: 60%; width: 4%; height: 20%; background: linear-gradient(180deg, #c8a07a 0%, #a07a58 100%); border-radius: 20% 20% 6% 6%; box-shadow: inset 0 0 20px #e8d4b0; animation: bos-lamp 3s ease-in-out infinite alternate; }
@keyframes bos-window { 0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,200,0.2), 0 0 40px rgba(255,244,180,0.1); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,200,0.4), 0 0 80px rgba(255,244,180,0.3); } 100% { opacity: 0.9; box-shadow: inset 0 0 25px rgba(255,255,200,0.25), 0 0 50px rgba(255,244,180,0.15); } }
@keyframes bos-chair { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(-4px) rotate(0); } 75% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes bos-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes bos-book { 0%,100% { transform: translateY(0) scaleX(1); } 30% { transform: translateY(-2px) scaleX(1.02); } 60% { transform: translateY(1px) scaleX(0.98); } }
@keyframes bos-lamp { 0% { opacity: 0.7; box-shadow: inset 0 0 10px #e8d4b0, 0 0 20px rgba(232,212,176,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px #f0e0c0, 0 0 60px rgba(232,212,176,0.5); } 100% { opacity: 0.8; box-shadow: inset 0 0 15px #e8d4b0, 0 0 30px rgba(232,212,176,0.35); } }

.scn-artists-must-express-the-good { background: linear-gradient(180deg, #faf3e0 0%, #f0dfc0 40%, #e0c8a0 100%), radial-gradient(ellipse at 50% 70%, #fff8e0 0%, transparent 50%); }
.scn-artists-must-express-the-good .studio-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #e8d4b0 0%, #d0b890 100%); }
.scn-artists-must-express-the-good .studio-window { position: absolute; top: 5%; left: 10%; width: 35%; height: 60%; background: linear-gradient(180deg, #fffbe6 0%, #e6dbb8 90%); border: 6px solid #b8a080; border-radius: 3%; box-shadow: inset 0 0 40px rgba(255,255,200,0.3); animation: aeg-window 8s ease-in-out infinite alternate; }
.scn-artists-must-express-the-good .easel { position: absolute; bottom: 10%; left: 30%; width: 30%; height: 50%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2% 2% 0 0; clip-path: polygon(20% 0, 80% 0, 75% 100%, 25% 100%); }
.scn-artists-must-express-the-good .canvas { position: absolute; bottom: 18%; left: 33%; width: 24%; height: 38%; background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%); border: 3px solid #c0a880; border-radius: 1%; box-shadow: 0 4px 8px rgba(0,0,0,0.1); animation: aeg-canvas 6s ease-in-out infinite; }
.scn-artists-must-express-the-good .artist { position: absolute; bottom: 8%; left: 20%; width: 16%; height: 40%; background: linear-gradient(180deg, #d4b896 0%, #b08a6e 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aeg-artist 10s ease-in-out infinite alternate; }
.scn-artists-must-express-the-good .palette { position: absolute; bottom: 30%; left: 55%; width: 18%; height: 10%; background: linear-gradient(135deg, #d0a060 0%, #b08040 100%); border-radius: 50% 50% 45% 45%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: aeg-palette 4s ease-in-out infinite; }
.scn-artists-must-express-the-good .brush { position: absolute; bottom: 35%; left: 58%; width: 2%; height: 12%; background: linear-gradient(180deg, #604020 0%, #402820 100%); border-radius: 20% 20% 10% 10%; transform: rotate(20deg); transform-origin: bottom center; animation: aeg-brush 3s ease-in-out infinite alternate; }
@keyframes aeg-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aeg-canvas { 0%,100% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(0) rotate(0); } 60% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(0) rotate(0); } }
@keyframes aeg-artist { 0%,100% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes aeg-palette { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(5deg); } 60% { transform: translateX(-1px) rotate(-3deg); } }
@keyframes aeg-brush { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }

.scn-true-love { background: linear-gradient(180deg, #fff0d8 0%, #f0dbb0 40%, #e0c8a0 100%), radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 50%); }
.scn-true-love .room { position: absolute; inset: 0; background: linear-gradient(135deg, #f5e1c0 0%, #e8ccaa 100%); }
.scn-true-love .window { position: absolute; top: 8%; left: 60%; width: 30%; height: 55%; background: linear-gradient(180deg, #fffbe6 0%, #e6dbb8 90%); border: 6px solid #c8a880; border-radius: 4%; box-shadow: inset 0 0 35px rgba(255,255,200,0.3); animation: trl-window 7s ease-in-out infinite alternate; }
.scn-true-love .musician { position: absolute; bottom: 10%; left: 20%; width: 16%; height: 42%; background: linear-gradient(180deg, #d4b896 0%, #b08a6e 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: trl-musician 12s ease-in-out infinite; }
.scn-true-love .lyre { position: absolute; bottom: 28%; left: 22%; width: 8%; height: 18%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); transform: rotate(-10deg); animation: trl-lyre 4s ease-in-out infinite alternate; }
.scn-true-love .notes { position: absolute; left: 30%; width: 6%; height: 8%; background: radial-gradient(circle, #c0a070 0%, transparent 70%); border-radius: 50%; filter: blur(4px); }
.scn-true-love .note-1 { bottom: 40%; animation: trl-note1 6s linear infinite; }
.scn-true-love .note-2 { bottom: 45%; left: 35%; animation: trl-note2 8s linear infinite reverse; }
.scn-true-love .stool { position: absolute; bottom: 0; left: 18%; width: 20%; height: 12%; background: linear-gradient(180deg, #b08a6e 0%, #8a6b52 100%); border-radius: 10% 10% 4% 4%; }
@keyframes trl-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes trl-musician { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes trl-lyre { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes trl-note1 { 0% { transform: translateY(0) translateX(0) scale(0.8); opacity: 0.5; } 25% { transform: translateY(-30px) translateX(10px) scale(1); opacity: 0.8; } 50% { transform: translateY(-60px) translateX(5px) scale(1.2); opacity: 1; } 75% { transform: translateY(-90px) translateX(-10px) scale(1); opacity: 0.6; } 100% { transform: translateY(-120px) translateX(-20px) scale(0.6); opacity: 0; } }
@keyframes trl-note2 { 0% { transform: translateY(0) translateX(0) scale(0.7); opacity: 0.4; } 25% { transform: translateY(-25px) translateX(-10px) scale(0.9); opacity: 0.7; } 50% { transform: translateY(-50px) translateX(0) scale(1.1); opacity: 1; } 75% { transform: translateY(-75px) translateX(15px) scale(0.9); opacity: 0.5; } 100% { transform: translateY(-100px) translateX(25px) scale(0.5); opacity: 0; } }

.scn-the-harmonious-lover { background: linear-gradient(180deg, #fcebd8 0%, #f0dbb0 40%, #e0c8a0 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 60%); }
.scn-the-harmonious-lover .hall { position: absolute; inset: 0; background: linear-gradient(135deg, #e8d4b0 0%, #d0b890 100%); }
.scn-the-harmonious-lover .figure-left { position: absolute; bottom: 10%; left: 15%; width: 15%; height: 45%; background: linear-gradient(180deg, #d4b896 0%, #b08a6e 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thl-left 10s ease-in-out infinite alternate; }
.scn-the-harmonious-lover .figure-right { position: absolute; bottom: 10%; right: 15%; width: 15%; height: 45%; background: linear-gradient(180deg, #d4b896 0%, #b08a6e 80%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thl-right 10s ease-in-out infinite alternate; }
.scn-the-harmonious-lover .glow-between { position: absolute; bottom: 35%; left: 35%; width: 30%; height: 20%; background: radial-gradient(ellipse, #f0d6b0 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: thl-glow 5s ease-in-out infinite alternate; }
.scn-the-harmonious-lover .arch-window { position: absolute; top: 2%; left: 40%; width: 20%; height: 40%; background: linear-gradient(180deg, #fffbe6 0%, #e6dbb8 90%); border: 6px solid #c8a880; border-radius: 40% 40% 0 0; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
.scn-the-harmonious-lover .floor { position: absolute; bottom: 0; left: 0; width: 100%; height: 12%; background: linear-gradient(180deg, #b08a6e 0%, #8a6b52 100%); box-shadow: 0 -4px 10px rgba(0,0,0,0.1); }
.scn-the-harmonious-lover .column { position: absolute; bottom: 12%; left: 5%; width: 4%; height: 60%; background: linear-gradient(180deg, #d0b890 0%, #b08a6e 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.1); animation: thl-column 8s ease-in-out infinite; }
@keyframes thl-left { 0%,100% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-3px) rotate(0deg); } 60% { transform: translateY(-1px) rotate(3deg); } }
@keyframes thl-right { 0%,100% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-3px) rotate(0deg); } 60% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes thl-glow { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes thl-column { 0%,100% { transform: translateY(0) scaleY(1); } 30% { transform: translateY(-2px) scaleY(1.02); } 60% { transform: translateY(1px) scaleY(0.98); } }

.scn-friends-real-or-seeming {
  background: linear-gradient(180deg, #2c1f0e 0%, #3d2a12 40%, #1f1408 100%),
              radial-gradient(ellipse at 50% 30%, #4a3518 0%, transparent 60%);
}
.scn-friends-real-or-seeming .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2813 0%, #5a3e1f 100%);
  animation: frs-wall 20s ease-in-out infinite alternate;
}
.scn-friends-real-or-seeming .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a2f16 0%, #1f1408 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: frs-floor 25s ease-in-out infinite alternate;
}
.scn-friends-real-or-seeming .lamp-glow {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #c08040 50%, transparent 80%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 0 60px 30px rgba(192,128,64,.3), 0 0 120px 60px rgba(192,128,64,.15);
  animation: frs-glow 3s ease-in-out infinite alternate;
}
.scn-friends-real-or-seeming .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2e1f0e 0%, #1f1408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frs-fig-left 6s ease-in-out infinite;
}
.scn-friends-real-or-seeming .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2813 0%, #1f1408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frs-fig-right 6s ease-in-out infinite -3s;
}
.scn-friends-real-or-seeming .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #d4b082 0%, #b89462 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: frs-scroll 12s ease-in-out infinite;
}
.scn-friends-real-or-seeming .shadow-left {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: frs-shade 6s ease-in-out infinite;
}
.scn-friends-real-or-seeming .shadow-right {
  position: absolute; bottom: 25%; right: 28%; width: 30px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: frs-shade 6s ease-in-out infinite -3s;
}
@keyframes frs-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes frs-floor { 0% { background-position: 0 0 } 50% { background-position: 5% 0 } 100% { background-position: 0 0 } }
@keyframes frs-glow { 0% { opacity: .8; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.05) } 100% { opacity: .85; transform: translateX(-50%) scale(.98) } }
@keyframes frs-fig-left { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes frs-fig-right { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes frs-scroll { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes frs-shade { 0%,100% { opacity: .3; width: 30px } 50% { opacity: .5; width: 34px } }

.scn-the-simonides-saying-refuted {
  background: linear-gradient(180deg, #2a1e0f 0%, #3d2a12 40%, #1f1408 100%),
              radial-gradient(ellipse at 50% 50%, #4a3520 0%, transparent 70%);
}
.scn-the-simonides-saying-refuted .table-top {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a3f22 0%, #3a2714 100%);
  border-radius: 10% 10% 25% 25% / 30% 30% 30% 30%;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
  animation: sim-table 30s ease-in-out infinite alternate;
}
.scn-the-simonides-saying-refuted .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #f0c068 0%, #c08040 60%);
  border-radius: 20% 20% 50% 50%;
  box-shadow: 0 0 40px 15px rgba(192,128,64,.4);
  animation: sim-lamp 4s ease-in-out infinite alternate;
}
.scn-the-simonides-saying-refuted .hand-left {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #3a2714 0%, #2a1e0f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sim-hand-l 5s ease-in-out infinite;
}
.scn-the-simonides-saying-refuted .hand-right {
  position: absolute; bottom: 22%; right: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #3a2714 0%, #2a1e0f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sim-hand-r 5s ease-in-out infinite -2.5s;
}
.scn-the-simonides-saying-refuted .scroll-texture {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #d4b082 0%, #b89462 30%, #c8a070 60%, #b89462 100%);
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: sim-scroll 10s ease-in-out infinite;
}
.scn-the-simonides-saying-refuted .inkwell {
  position: absolute; bottom: 20%; left: 40%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #5a3f22 0%, #2a1e0f 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sim-ink 15s ease-in-out infinite;
}
.scn-the-simonides-saying-refuted .glow-pool {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(240,192,104,.15) 0%, transparent 100%);
  animation: sim-pool 6s ease-in-out infinite alternate;
}
@keyframes sim-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes sim-lamp { 0% { opacity: .8; transform: translateX(-50%) rotate(-2deg) } 50% { opacity: 1; transform: translateX(-50%) rotate(0) } 100% { opacity: .9; transform: translateX(-50%) rotate(2deg) } }
@keyframes sim-hand-l { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes sim-hand-r { 0%,100% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-3px) rotate(-5deg) } }
@keyframes sim-scroll { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.03) } }
@keyframes sim-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sim-pool { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

.scn-can-the-just-harm {
  background: linear-gradient(180deg, #1a120a 0%, #2c1f0e 40%, #0d0804 100%),
              radial-gradient(ellipse at 50% 60%, #3d2a12 0%, transparent 60%);
}
.scn-can-the-just-harm .column-left {
  position: absolute; top: 0; left: 10%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #3d2a12 0%, #1a120a 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,.5);
  animation: cjh-col 40s linear infinite alternate;
}
.scn-can-the-just-harm .column-right {
  position: absolute; top: 0; right: 10%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #3d2a12 0%, #1a120a 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: cjh-col 40s linear infinite alternate-reverse;
}
.scn-can-the-just-harm .figure-bg {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e0f 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cjh-fig-bg 8s ease-in-out infinite;
}
.scn-can-the-just-harm .figure-fg {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #3d2a12 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cjh-fig-fg 4s ease-in-out infinite;
}
.scn-can-the-just-harm .arm-raised {
  position: absolute; bottom: 55%; left: 38%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #3d2a12 0%, #2a1e0f 100%);
  border-radius: 30%;
  transform-origin: bottom center;
  transform: rotate(30deg);
  animation: cjh-arm 3s ease-in-out infinite;
}
.scn-can-the-just-harm .shadow-sharp {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 20px;
  background: rgba(0,0,0,.7);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(2px);
  animation: cjh-shadow 4s ease-in-out infinite;
}
.scn-can-the-just-harm .dust-motes {
  position: absolute; top: 20%; left: 40%; width: 100%; height: 60%;
  background: radial-gradient(circle at 10% 30%, rgba(200,160,100,.05) 0%, transparent 50%),
              radial-gradient(circle at 70% 50%, rgba(200,160,100,.03) 0%, transparent 40%);
  animation: cjh-dust 15s linear infinite;
}
.scn-can-the-just-harm .floor-stripe {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, #2a1e0f 0px, #1a120a 8px, #2a1e0f 16px);
  animation: cjh-stripe 30s linear infinite alternate;
}
@keyframes cjh-col { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cjh-fig-bg { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } }
@keyframes cjh-fig-fg { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-6px) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(-4px) rotate(0) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes cjh-arm { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } }
@keyframes cjh-shadow { 0%,100% { transform: scaleX(1); opacity: .6 } 50% { transform: scaleX(1.2); opacity: .9 } }
@keyframes cjh-dust { 0% { background-position: 0 0 } 100% { background-position: 50% 10% } }
@keyframes cjh-stripe { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn-injury-makes-men-unjust {
  background: linear-gradient(180deg, #120c06 0%, #2a1e0f 40%, #0d0804 100%),
              radial-gradient(ellipse at 50% 30%, #3d2a12 0%, transparent 70%);
}
.scn-injury-makes-men-unjust .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-conic-gradient(#2a1e0f 0%, #1a120a 25%, #2a1e0f 50%);
  background-size: 60px 60px;
  animation: imu-floor 20s linear infinite alternate;
}
.scn-injury-makes-men-unjust .figure-fallen {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #3d2a12 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(90deg);
  animation: imu-fall 8s ease-in-out infinite;
}
.scn-injury-makes-men-unjust .figure-standing {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e0f 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: imu-stand 6s ease-in-out infinite;
}
.scn-injury-makes-men-unjust .arm-extended {
  position: absolute; bottom: 40%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #2a1e0f 0%, #1a120a 100%);
  border-radius: 30%;
  transform: rotate(-20deg);
  transform-origin: top left;
  animation: imu-arm 4s ease-in-out infinite;
}
.scn-injury-makes-men-unjust .blood-pool {
  position: absolute; bottom: 8%; left: 30%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0f11 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: imu-blood 10s ease-in-out infinite;
}
.scn-injury-makes-men-unjust .lamp-swinging {
  position: absolute; top: 10%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #f0c068 0%, #a08040 70%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,.3);
  animation: imu-lamp 2s ease-in-out infinite alternate;
}
.scn-injury-makes-men-unjust .shadow-fallen {
  position: absolute; bottom: 5%; left: 30%; width: 50px; height: 15px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(5px);
  animation: imu-shade 8s ease-in-out infinite;
}
@keyframes imu-floor { 0% { background-position: 0 0 } 50% { background-position: 30px 30px } 100% { background-position: 0 0 } }
@keyframes imu-fall { 0%,100% { transform: rotate(85deg) translateY(0) } 50% { transform: rotate(95deg) translateY(-2px) } }
@keyframes imu-stand { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes imu-arm { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-30deg) } }
@keyframes imu-blood { 0%,100% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } }
@keyframes imu-lamp { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes imu-shade { 0%,100% { opacity: .5; width: 50px } 50% { opacity: .7; width: 55px } }

.scn-the-musician-and-the-physician {
  background:
    radial-gradient(ellipse at 30% 70%, #2a1e1a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, #1a1a2e 0%, transparent 50%),
    linear-gradient(180deg, #1a1a2e 0%, #2a1e1a 40%, #1a1210 100%);
}
.scn-the-musician-and-the-physician .room-shadow {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(8,4,4,.6) 80%);
  animation: tmp-shadow 12s ease-in-out infinite alternate;
}
.scn-the-musician-and-the-physician .wall-panel {
  position:absolute; top:5%; left:8%; right:8%; height:55%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1210 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  opacity:.85;
  animation: tmp-panel 15s ease-in-out infinite alternate;
}
.scn-the-musician-and-the-physician .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-the-musician-and-the-physician .pitcher {
  position:absolute; bottom:30%; left:38%; width:20px; height:30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: -2px 2px 6px rgba(0,0,0,.4);
}
.scn-the-musician-and-the-physician .lamp {
  position:absolute; bottom:30%; right:38%; width:14px; height:22px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a18 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,150,80,.4);
}
.scn-the-musician-and-the-physician .lamp-glow {
  position:absolute; bottom:30%; right:38%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,150,80,.2) 0%, transparent 70%);
  transform: translate(50%, 50%);
  animation: tmp-glow 4s ease-in-out infinite alternate;
}
.scn-the-musician-and-the-physician .figure-musician {
  position:absolute; bottom:12%; left:28%; width:32px; height:52px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: tmp-musician 6s ease-in-out infinite alternate;
}
.scn-the-musician-and-the-physician .figure-physician {
  position:absolute; bottom:12%; right:28%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a2e1a 0%, #0e1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: tmp-physician 8s ease-in-out infinite alternate;
}
.scn-the-musician-and-the-physician .shadow-figures {
  position:absolute; bottom:10%; left:22%; right:22%; height:40%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: tmp-shadow-fig 10s ease-in-out infinite alternate;
}
@keyframes tmp-shadow { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes tmp-panel { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes tmp-glow { 0% { opacity:.5; transform: scale(.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes tmp-musician { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes tmp-physician { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tmp-shadow-fig { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.5; transform: scale(.95) } }

.scn-the-knowing-seek-no-advantage {
  background:
    radial-gradient(ellipse at 40% 80%, #2a221e 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, #1e1e2a 0%, transparent 50%),
    linear-gradient(180deg, #1e1e2a 0%, #2a221e 50%, #1a1412 100%);
}
.scn-the-knowing-seek-no-advantage .bg-wall {
  position:absolute; top:0; left:0; right:0; height:70%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1412 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
}
.scn-the-knowing-seek-no-advantage .archway {
  position:absolute; top:5%; left:30%; right:30%; height:55%;
  background: linear-gradient(180deg, #1a1210 0%, #2a1a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn-the-knowing-seek-no-advantage .floor-tile {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
}
.scn-the-knowing-seek-no-advantage .scroll-table {
  position:absolute; bottom:20%; left:45%; width:60px; height:8px;
  background: linear-gradient(180deg, #4a3220 0%, #3a2218 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-the-knowing-seek-no-advantage .scroll-open {
  position:absolute; bottom:28%; left:46%; width:40px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: tn-scroll 12s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage .candle-a {
  position:absolute; bottom:30%; left:38%; width:8px; height:14px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a18 100%);
  border-radius: 2px;
  animation: tn-candle-a 5s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage .candle-b {
  position:absolute; bottom:30%; right:38%; width:8px; height:12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a18 100%);
  border-radius: 2px;
  animation: tn-candle-b 6s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-the-knowing-seek-no-advantage .figure-sage.left {
  position:absolute; bottom:12%; left:28%; width:28px; height:48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: tn-left 7s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage .figure-sage.right {
  position:absolute; bottom:12%; right:28%; width:28px; height:48px;
  background: linear-gradient(180deg, #1a2e1a 0%, #0e1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: tn-right 9s ease-in-out infinite alternate;
}
@keyframes tn-scroll { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-1deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } }
@keyframes tn-candle-a { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes tn-candle-b { 0% { opacity:.8; transform: scaleY(.95) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(1) } }
@keyframes tn-left { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes tn-right { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }

.scn-the-knowing-seek-no-advantage-2 {
  background:
    radial-gradient(ellipse at 60% 70%, #2a1e1a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 30%, #1e1e2a 0%, transparent 60%),
    linear-gradient(180deg, #1e1e2a 0%, #2a1e1a 40%, #12100e 100%);
}
.scn-the-knowing-seek-no-advantage-2 .room-niche {
  position:absolute; top:0; left:15%; right:15%; height:75%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-the-knowing-seek-no-advantage-2 .shelf {
  position:absolute; top:18%; left:20%; right:20%; height:6px;
  background: linear-gradient(180deg, #4a3220 0%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-the-knowing-seek-no-advantage-2 .shelf-jar {
  position:absolute; top:12%; left:35%; width:16px; height:22px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 15% 15%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: kno-jar 14s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage-2 .desk {
  position:absolute; bottom:18%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-the-knowing-seek-no-advantage-2 .desk-papers {
  position:absolute; bottom:28%; left:38%; width:30px; height:4px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: kno-papers 9s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage-2 .figure-physician {
  position:absolute; bottom:12%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a2e1a 0%, #0e1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: kno-phys 7s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage-2 .figure-visitor {
  position:absolute; bottom:12%; right:30%; width:28px; height:48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: kno-visit 10s ease-in-out infinite alternate;
}
.scn-the-knowing-seek-no-advantage-2 .oil-lamp {
  position:absolute; bottom:30%; left:48%; width:12px; height:18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a18 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 4px rgba(200,150,80,.4);
  animation: kno-lamp 5s ease-in-out infinite alternate;
}
@keyframes kno-jar { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes kno-papers { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes kno-phys { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kno-visit { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kno-lamp { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }

.scn-the-just-turns-out-wise {
  background:
    radial-gradient(ellipse at 50% 80%, #2a2218 0%, transparent 60%),
    radial-gradient(ellipse at 30% 40%, #2a2a3a 0%, transparent 50%),
    linear-gradient(180deg, #2a2a3a 0%, #2a2218 50%, #1a1410 100%);
}
.scn-the-just-turns-out-wise .wall-warm {
  position:absolute; top:0; left:0; right:0; height:75%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-the-just-turns-out-wise .window-frame {
  position:absolute; top:8%; left:35%; right:35%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,.4);
}
.scn-the-just-turns-out-wise .window-pane {
  position:absolute; top:10%; left:37%; right:37%; height:36%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 4px;
  opacity:.6;
  box-shadow: inset 0 0 20px rgba(100,100,150,.3);
  animation: jtw-window 20s ease-in-out infinite alternate;
}
.scn-the-just-turns-out-wise .ledge {
  position:absolute; bottom:45%; left:33%; right:33%; height:6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-the-just-turns-out-wise .candle-cup {
  position:absolute; bottom:40%; left:55%; width:16px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a18 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 6px rgba(200,170,120,.3);
  animation: jtw-candle 7s ease-in-out infinite alternate;
}
.scn-the-just-turns-out-wise .figure-seated {
  position:absolute; bottom:10%; left:50%; width:36px; height:54px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  box-shadow: 0 0 14px rgba(0,0,0,.5);
  animation: jtw-seated 12s ease-in-out infinite alternate;
}
.scn-the-just-turns-out-wise .book-open {
  position:absolute; bottom:16%; left:47%; width:24px; height:16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: translateX(-50%) rotate(-4deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: jtw-book 15s ease-in-out infinite alternate;
}
.scn-the-just-turns-out-wise .shadow-slow {
  position:absolute; bottom:0; left:20%; right:20%; height:30%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: jtw-shadow 25s ease-in-out infinite alternate;
}
@keyframes jtw-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes jtw-candle { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes jtw-seated { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes jtw-book { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(1.03) } 100% { transform: translateX(-50%) rotate(-4deg) scaleY(1) } }
@keyframes jtw-shadow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(.95) } }

.scn-justice-and-injustice-in-the-soul {
  background: linear-gradient(180deg, #9bbad8 0%, #e6dcc3 50%, #c4a87e 100%), radial-gradient(ellipse at 50% 0%, #fdf5e6 0%, transparent 70%);
}
.scn-justice-and-injustice-in-the-soul .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b6d4e8 0%, #e6dcc3 70%);
  animation: js1-skypulse 10s ease-in-out infinite alternate;
}
.scn-justice-and-injustice-in-the-soul .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d4c5a9 0%, #7b5b3a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: js1-floorwarm 14s ease-in-out infinite alternate;
}
.scn-justice-and-injustice-in-the-soul .pillar-left {
  position: absolute; bottom: 25%; left: 18%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #c4a87e, #9b7b4a);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: js1-pillarTilt 8s ease-in-out infinite alternate;
}
.scn-justice-and-injustice-in-the-soul .pillar-center {
  position: absolute; bottom: 25%; left: 48%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #f0e68c, #c4a87e);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 0 20px rgba(240,230,140,0.3);
  transform-origin: bottom center;
  animation: js1-pillarPulse 12s ease-in-out infinite;
}
.scn-justice-and-injustice-in-the-soul .pillar-right {
  position: absolute; bottom: 25%; right: 18%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #c4a87e, #9b7b4a);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: js1-pillarTilt 8s ease-in-out infinite alternate-reverse;
}
.scn-justice-and-injustice-in-the-soul .scales {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,230,140,0.4);
  animation: js1-scalesSway 6s ease-in-out infinite;
}
.scn-justice-and-injustice-in-the-soul .beam-light {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: js1-beamMove 15s linear infinite alternate;
}
.scn-justice-and-injustice-in-the-soul .shadow-pillar {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: js1-shadowSpread 9s ease-in-out infinite alternate;
}
@keyframes js1-skypulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes js1-floorwarm {
  0% { background: linear-gradient(180deg, #d4c5a9 0%, #7b5b3a 100%); }
  50% { background: linear-gradient(180deg, #e0d0b0 0%, #8a6b4a 100%); }
  100% { background: linear-gradient(180deg, #c8b88a 0%, #6b4b2a 100%); }
}
@keyframes js1-pillarTilt {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-0.5deg) scaleY(1.005); }
  75% { transform: rotate(0.5deg) scaleY(0.995); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes js1-pillarPulse {
  0% { box-shadow: 0 0 20px rgba(240,230,140,0.2); transform: scaleY(1); }
  33% { box-shadow: 0 0 30px rgba(240,230,140,0.5); transform: scaleY(1.02); }
  66% { box-shadow: 0 0 25px rgba(240,230,140,0.4); transform: scaleY(0.98); }
  100% { box-shadow: 0 0 20px rgba(240,230,140,0.2); transform: scaleY(1); }
}
@keyframes js1-scalesSway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes js1-beamMove {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(5px); }
  100% { opacity: 0.6; transform: translateX(-5px); }
}
@keyframes js1-shadowSpread {
  0% { width: 70px; opacity: 0.1; }
  50% { width: 90px; opacity: 0.2; }
  100% { width: 70px; opacity: 0.1; }
}

.scn-the-just-soul {
  background: linear-gradient(180deg, #a3c9e0 0%, #d6cbb5 40%, #b89a6e 100%), radial-gradient(ellipse at 50% 80%, #fdf5e6 0%, transparent 60%);
}
.scn-the-just-soul .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b6d4e8 0%, #e8dfc8 70%);
  animation: js2-skybreath 12s ease-in-out infinite alternate;
}
.scn-the-just-soul .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4c5a9 0%, #8a6b4a 100%);
  border-radius: 10% 10% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
}
.scn-the-just-soul .figure-just {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(170deg, #d4b48c 0%, #a37a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: inset(0 0 15% 0 round 50% 50% 40% 40%);
  animation: js2-figurebreathe 7s ease-in-out infinite alternate;
}
.scn-the-just-soul .pedestal {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c4a87e, #8a6b4a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-the-just-soul .halo-glow {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,255,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: js2-halopulse 5s ease-in-out infinite alternate;
}
.scn-the-just-soul .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,230,0.5) 0%, transparent 90%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: js2-beamsway 20s ease-in-out infinite alternate;
}
.scn-the-just-soul .laurel-leaf {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 10px;
  background: #8f9e6b;
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: js2-leafsway 6s ease-in-out infinite alternate;
}
.scn-the-just-soul .ground-shadow {
  position: absolute; bottom: 16%; left: 50%; width: 100px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.12) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: js2-shadowspread 11s ease-in-out infinite alternate;
}
@keyframes js2-skybreath {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes js2-figurebreathe {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); }
  25% { transform: translateX(-50%) translateY(-2px) scaleY(1.01); }
  50% { transform: translateX(-50%) translateY(0) scaleY(1); }
  75% { transform: translateX(-50%) translateY(2px) scaleY(0.99); }
  100% { transform: translateX(-50%) translateY(0) scaleY(1); }
}
@keyframes js2-halopulse {
  0% { opacity: 0.4; transform: translateX(-50%) scale(1); }
  33% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  66% { opacity: 0.5; transform: translateX(-50%) scale(0.95); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
}
@keyframes js2-beamsway {
  0% { opacity: 0.5; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(3px); }
  100% { opacity: 0.5; transform: translateX(-3px); }
}
@keyframes js2-leafsway {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes js2-shadowspread {
  0% { width: 80px; opacity: 0.1; }
  50% { width: 110px; opacity: 0.2; }
  100% { width: 80px; opacity: 0.1; }
}

.scn-the-three-principles-of-the-soul {
  background: linear-gradient(180deg, #b0c4d8 0%, #dcc8a8 40%, #8a6b4a 100%), radial-gradient(ellipse at 50% 0%, #fdf5e6 0%, transparent 70%);
}
.scn-the-three-principles-of-the-soul .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c4d4e0 0%, #e8d4b0 70%);
  animation: js3-skyfade 11s ease-in-out infinite alternate;
}
.scn-the-three-principles-of-the-soul .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4c5a9 0%, #7b5b3a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.15);
}
.scn-the-three-principles-of-the-soul .pillar-reason {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e68c 0%, #c4a87e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 0 16px rgba(240,230,140,0.3);
  z-index: 2;
  animation: js3-reasonrise 10s ease-in-out infinite alternate;
}
.scn-the-three-principles-of-the-soul .pillar-spirit {
  position: absolute; bottom: 20%; left: 30%; width: 34px; height: 100px;
  background: linear-gradient(180deg, #d4a87e 0%, #9b7b4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
  transform-origin: bottom center;
  animation: js3-spiritsway 9s ease-in-out infinite alternate;
}
.scn-the-three-principles-of-the-soul .pillar-appetite {
  position: absolute; bottom: 20%; right: 30%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #c8b88a 0%, #7b5b3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.15);
  transform-origin: bottom center;
  animation: js3-appetitesway 9s ease-in-out infinite alternate-reverse;
}
.scn-the-three-principles-of-the-soul .steps {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 24px;
  background: linear-gradient(180deg, #b08a5a 0%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: js3-stepshimmer 15s ease-in-out infinite alternate;
}
.scn-the-three-principles-of-the-soul .sunbeams {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.25) 0%, transparent 80%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: js3-beamsweep 18s ease-in-out infinite alternate;
}
.scn-the-three-principles-of-the-soul .sparkle {
  position: absolute; top: 25%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff8c0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,248,192,0.5);
  animation: js3-sparkle 4s ease-in-out infinite alternate;
}
@keyframes js3-skyfade {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes js3-reasonrise {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); }
  33% { transform: translateX(-50%) translateY(-3px) scaleY(1.02); }
  66% { transform: translateX(-50%) translateY(1px) scaleY(0.98); }
  100% { transform: translateX(-50%) translateY(0) scaleY(1); }
}
@keyframes js3-spiritsway {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-0.8deg) scaleY(1.01); }
  75% { transform: rotate(0.8deg) scaleY(0.99); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes js3-appetitesway {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(0.8deg) scaleY(1.01); }
  75% { transform: rotate(-0.8deg) scaleY(0.99); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes js3-stepshimmer {
  0% { background: linear-gradient(180deg, #b08a5a 0%, #5a3a2a 100%); }
  50% { background: linear-gradient(180deg, #c0a06a 0%, #6a4a3a 100%); }
  100% { background: linear-gradient(180deg, #a08050 0%, #4a2a1a 100%); }
}
@keyframes js3-beamsweep {
  0% { opacity: 0.4; transform: translateX(0); }
  50% { opacity: 0.7; transform: translateX(4px); }
  100% { opacity: 0.4; transform: translateX(-4px); }
}
@keyframes js3-sparkle {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

/* Scenes for calm, dim-interior lighting */

/* Scene 1: god-is-unchangeable */
.scn-god-is-unchangeable {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a243e 40%, #2e2848 60%, #1c182c 100%),
    radial-gradient(ellipse at 50% 100%, #2a243e 0%, transparent 70%);
}
.scn-god-is-unchangeable .wall {
  position: absolute; inset: 0 0 38% 0;
  background: linear-gradient(180deg, #3a3050 0%, #2a1e3a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-god-is-unchangeable .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a18 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-god-is-unchangeable .window {
  position: absolute; top: 14%; left: 60%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #4a4260 0%, #3a3250 50%, #2a223e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 0 10px rgba(200,180,140,.1);
  opacity: 0.6;
  animation: s1-window 12s ease-in-out infinite alternate;
}
.scn-god-is-unchangeable .pillar {
  position: absolute; bottom: 38%; left: 46%; width: 24px; height: 160px;
  background: linear-gradient(90deg, #4a3a58 0%, #5a4a68 30%, #4a3a58 60%, #3a2a48 100%);
  border-radius: 25% 25% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: s1-pillar 20s ease-in-out infinite alternate;
}
.scn-god-is-unchangeable .figure {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a223a 0%, #1a122a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 8s ease-in-out infinite;
}
.scn-god-is-unchangeable .lamp {
  position: absolute; bottom: 55%; left: 54%; width: 14px; height: 28px;
  background: linear-gradient(90deg, #5a4a38 0%, #7a6a58 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3), 0 6px 12px rgba(200,160,100,.1);
}
.scn-god-is-unchangeable .glow {
  position: absolute; bottom: 54%; left: 54%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,180,120,.6) 0%, rgba(200,160,100,.15) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: s1-glow 4s ease-in-out infinite alternate;
}
.scn-god-is-unchangeable .dust-a,
.scn-god-is-unchangeable .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,140,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: s1-dust 25s linear infinite;
}
.scn-god-is-unchangeable .dust-a { top: 25%; left: 30%; animation-delay: 0s; }
.scn-god-is-unchangeable .dust-b { top: 40%; left: 70%; animation-delay: -8s; width: 3px; height: 3px; }

@keyframes s1-window {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .65; transform: scale(1.02); }
  100% { opacity: .55; transform: scale(0.98); }
}
@keyframes s1-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes s1-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes s1-glow {
  0% { opacity: .6; box-shadow: 0 0 20px 6px rgba(220,180,120,.3); }
  50% { opacity: .85; box-shadow: 0 0 30px 12px rgba(220,180,120,.5); }
  100% { opacity: .7; box-shadow: 0 0 25px 8px rgba(220,180,120,.35); }
}
@keyframes s1-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: .6; }
  50% { transform: translateY(-30px) translateX(10px); opacity: .4; }
  80% { opacity: .2; }
  100% { transform: translateY(-70px) translateX(-5px); opacity: 0; }
}

/* Scene 2: god-cannot-deceive */
.scn-god-cannot-deceive {
  background:
    linear-gradient(180deg, #1c1a30 0%, #2a2440 50%, #1e1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2440 0%, transparent 60%);
}
.scn-god-cannot-deceive .wall {
  position: absolute; inset: 0 0 42% 0;
  background: linear-gradient(180deg, #3a3050 0%, #2a223e 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-god-cannot-deceive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #1a1428 0%, #0e0a1a 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.5);
}
.scn-god-cannot-deceive .desk {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 20px;
  background: linear-gradient(90deg, #4a3a48 0%, #5a4a58 50%, #4a3a48 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: s2-desk 30s ease-in-out infinite;
}
.scn-god-cannot-deceive .book {
  position: absolute; bottom: 36%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3), inset 0 2px 4px rgba(255,230,200,.1);
  transform: rotate(-3deg);
  animation: s2-book 15s ease-in-out infinite alternate;
}
.scn-god-cannot-deceive .candle {
  position: absolute; bottom: 32%; left: 52%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #7a6a58 0%, #4a3a28 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-god-cannot-deceive .flame {
  position: absolute; bottom: 53%; left: 52.2%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0c080 0%, #e0a060 40%, #c08040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(240,192,128,.5);
  animation: s2-flame 2s ease-in-out infinite alternate;
}
.scn-god-cannot-deceive .shadow {
  position: absolute; bottom: 30%; left: 38%; right: 38%; height: 80px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.2) 50%, transparent);
  border-radius: 50%;
  filter: blur(8px);
  animation: s2-shadow 10s ease-in-out infinite alternate;
}
.scn-god-cannot-deceive .mote-a,
.scn-god-cannot-deceive .mote-b {
  position: absolute; width: 3px; height: 3px;
  background: rgba(200,180,160,.25);
  border-radius: 50%;
  filter: blur(1px);
  animation: s2-mote 20s linear infinite;
}
.scn-god-cannot-deceive .mote-a { top: 30%; left: 25%; animation-delay: 0s; }
.scn-god-cannot-deceive .mote-b { top: 50%; left: 65%; animation-delay: -7s; }

@keyframes s2-desk {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.005); }
  100% { transform: scaleX(0.995); }
}
@keyframes s2-book {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2.5deg) translateY(-1px); }
  100% { transform: rotate(-3.5deg) translateY(0); }
}
@keyframes s2-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; }
  25% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; }
  50% { transform: scaleY(0.95) scaleX(1.05); opacity: .85; }
  75% { transform: scaleY(1.05) scaleX(0.95); opacity: .95; }
  100% { transform: scaleY(1) scaleX(1); opacity: .9; }
}
@keyframes s2-shadow {
  0% { opacity: .3; transform: translateY(0); }
  50% { opacity: .5; transform: translateY(-2px); }
  100% { opacity: .35; transform: translateY(0); }
}
@keyframes s2-mote {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: .5; }
  50% { transform: translateY(-40px) translateX(15px); opacity: .3; }
  80% { opacity: .1; }
  100% { transform: translateY(-90px) translateX(-10px); opacity: 0; }
}

/* Scene 3: god-is-true */
.scn-god-is-true {
  background:
    linear-gradient(180deg, #1a182e 0%, #282240 50%, #1c182e 100%),
    radial-gradient(ellipse at 30% 70%, #282240 0%, transparent 70%);
}
.scn-god-is-true .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #342c4a 0%, #241e3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-god-is-true .shelf {
  position: absolute; bottom: 42%; left: 25%; right: 25%; height: 12px;
  background: linear-gradient(90deg, #3a2e48 0%, #4a3a58 50%, #3a2e48 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: s3-shelf 25s ease-in-out infinite;
}
.scn-god-is-true .bust {
  position: absolute; bottom: 44%; left: 44%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #5a4a58 0%, #3a2a38 50%, #2a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 0 0 10px rgba(200,180,140,.1);
  animation: s3-bust 20s ease-in-out infinite alternate;
}
.scn-god-is-true .shadow {
  position: absolute; bottom: 40%; left: 40%; right: 40%; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: s3-shadow 12s ease-in-out infinite alternate;
}
.scn-god-is-true .dust-a,
.scn-god-is-true .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,160,.2);
  border-radius: 50%;
  filter: blur(1.5px);
  animation: s3-dust 30s linear infinite;
}
.scn-god-is-true .dust-a { top: 20%; left: 35%; animation-delay: 0s; }
.scn-god-is-true .dust-b { top: 35%; left: 65%; animation-delay: -12s; width: 3px; height: 3px; }
.scn-god-is-true .lightshift {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(200,180,140,.03) 50%, transparent 100%);
  animation: s3-light 15s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes s3-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.006); }
  100% { transform: scaleX(0.994); }
}
@keyframes s3-bust {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes s3-shadow {
  0% { opacity: .2; transform: scaleX(1); }
  50% { opacity: .35; transform: scaleX(1.1); }
  100% { opacity: .25; transform: scaleX(0.95); }
}
@keyframes s3-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  15% { opacity: .4; }
  50% { transform: translateY(-30px) translateX(20px); opacity: .3; }
  85% { opacity: .1; }
  100% { transform: translateY(-60px) translateX(-5px); opacity: 0; }
}
@keyframes s3-light {
  0% { opacity: 0; }
  50% { opacity: .6; }
  100% { opacity: 0; }
}

/* Scene 4: the-true-lie */
.scn-the-true-lie {
  background:
    linear-gradient(180deg, #1a1628 0%, #2a2240 50%, #1c1830 100%),
    radial-gradient(ellipse at 50% 90%, #2a2240 0%, transparent 70%);
}
.scn-the-true-lie .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #342c4a 0%, #24203a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
}
.scn-the-true-lie .window {
  position: absolute; top: 12%; left: 55%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #4a4058 0%, #3a304a 50%, #2a203a 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.3), 0 0 8px rgba(200,170,130,.1);
  opacity: .5;
  animation: s4-window 14s ease-in-out infinite alternate;
}
.scn-the-true-lie .desk {
  position: absolute; bottom: 26%; left: 30%; right: 40%; height: 18px;
  background: linear-gradient(90deg, #4a3a48 0%, #5a4a58 50%, #4a3a48 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: s4-desk 28s ease-in-out infinite;
}
.scn-the-true-lie .scroll {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #6a5a3e 0%, #4a3a28 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: s4-scroll 10s ease-in-out infinite alternate;
}
.scn-the-true-lie .hand {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #2a223a 0%, #1a122a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom left;
  animation: s4-hand 7s ease-in-out infinite;
}
.scn-the-true-lie .lamp {
  position: absolute; bottom: 30%; left: 54%; width: 12px; height: 26px;
  background: linear-gradient(90deg, #5a4a38 0%, #7a6a58 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
}
.scn-the-true-lie .glow {
  position: absolute; bottom: 29%; left: 54%; width: 36px; height: 36px;
  background: radial-gradient(circle, rgba(220,180,120,.5) 0%, rgba(200,160,100,.12) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: s4-glow 3.5s ease-in-out infinite alternate;
}
.scn-the-true-lie .mote {
  position: absolute; top: 40%; left: 30%; width: 3px; height: 3px;
  background: rgba(200,180,160,.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: s4-mote 22s linear infinite;
}

@keyframes s4-window {
  0% { opacity: .45; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.01); }
  100% { opacity: .5; transform: scale(0.98); }
}
@keyframes s4-desk {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.004); }
  100% { transform: scaleX(0.996); }
}
@keyframes s4-scroll {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1.5deg) translateY(-1px); }
  100% { transform: rotate(2.5deg) translateY(0); }
}
@keyframes s4-hand {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes s4-glow {
  0% { opacity: .55; box-shadow: 0 0 18px 5px rgba(220,180,120,.25); }
  50% { opacity: .75; box-shadow: 0 0 28px 10px rgba(220,180,120,.45); }
  100% { opacity: .65; box-shadow: 0 0 22px 7px rgba(220,180,120,.3); }
}
@keyframes s4-mote {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: .4; }
  50% { transform: translateY(-35px) translateX(20px); opacity: .3; }
  80% { opacity: .1; }
  100% { transform: translateY(-70px) translateX(-5px); opacity: 0; }
}

/* Scene: the-royal-lie (calm dusk, music tempering spirit) */
.scn-the-royal-lie {
  background: linear-gradient(180deg, #2d2f4f 0%, #6a4e6b 40%, #c27a5a 70%, #e8b47a 100%), 
              radial-gradient(ellipse at 60% 30%, #e8b47a 0%, transparent 60%);
}
.scn-the-royal-lie .rl-sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2b4a 0%, transparent 100%); animation: rl-sky 14s ease-in-out infinite alternate; }
.scn-the-royal-lie .rl-hills  { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,0.5); animation: rl-hills 20s ease-in-out infinite alternate; }
.scn-the-royal-lie .rl-lyre   { position:absolute; bottom:38%; left:35%; width:30px; height:50px; background: linear-gradient(135deg, #d4a574 0%, #b08050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: rl-lyre 8s ease-in-out infinite; }
.scn-the-royal-lie .rl-figure { position:absolute; bottom:28%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: rl-figure 6s ease-in-out infinite; }
.scn-the-royal-lie .rl-spirit { position:absolute; bottom:42%; left:38%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.4); animation: rl-spirit 4s ease-in-out infinite alternate; }
.scn-the-royal-lie .rl-cloud-a{ position:absolute; top:15%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(6px); animation: rl-drift-a 40s linear infinite; }
.scn-the-royal-lie .rl-cloud-b{ position:absolute; top:20%; right:8%; width:55px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.03) 100%); border-radius: 50%; filter: blur(5px); animation: rl-drift-b 55s linear infinite reverse; }

@keyframes rl-sky     { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rl-hills   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rl-lyre    { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes rl-figure  { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rl-spirit  { 0% { opacity:0.6; box-shadow:0 0 12px 4px #c08040; } 50% { opacity:1; box-shadow:0 0 28px 10px #ffd080; } 100% { opacity:0.7; box-shadow:0 0 16px 6px #c08040; } }
@keyframes rl-drift-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(130vw); } }
@keyframes rl-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }

/* Scene: the-royal-lie-2 (two principles, harmony) */
.scn-the-royal-lie-2 {
  background: linear-gradient(180deg, #2b2e50 0%, #6b4b6b 40%, #c7775a 70%, #e8b47a 100%);
}
.scn-the-royal-lie-2 .rl2-bg-mid   { position:absolute; inset:15% 10% 20% 10%; background: radial-gradient(ellipse at 50% 50%, #7a5a6a 0%, transparent 70%); border-radius: 50%; animation: rl2-bg 12s ease-in-out infinite alternate; }
.scn-the-royal-lie-2 .rl2-figure-left { position:absolute; bottom:30%; left:22%; width:24px; height:48px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 40% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rl2-left 7s ease-in-out infinite; }
.scn-the-royal-lie-2 .rl2-figure-right { position:absolute; bottom:30%; right:22%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rl2-right 7s ease-in-out infinite; }
.scn-the-royal-lie-2 .rl2-harmony { position:absolute; bottom:45%; left:30%; right:30%; height:2px; background: linear-gradient(90deg, transparent, #e8c080 50%, transparent); box-shadow: 0 0 8px 4px #c08040; animation: rl2-harm 5s ease-in-out infinite alternate; }
.scn-the-royal-lie-2 .rl2-ground  { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6); }
.scn-the-royal-lie-2 .rl2-stars   { position:absolute; top:8%; left:5%; right:5%; bottom:70%; background: radial-gradient(2px 2px at 10% 20%, #f0e0c0 0%, transparent 100%) 0 0 / 20px 20px repeat; animation: rl2-stars 30s linear infinite; }

@keyframes rl2-bg    { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes rl2-left  { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes rl2-right { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes rl2-harm  { 0% { opacity:0.5; transform: scaleX(0.8); } 50% { opacity:1; transform: scaleX(1.2); } 100% { opacity:0.6; transform: scaleX(0.9); } }
@keyframes rl2-stars { 0% { background-position:0 0; } 100% { background-position:0 -40px; } }

/* Scene: guardians-selected-by-test (tests, elder rule) */
.scn-guardians-selected-by-test {
  background: linear-gradient(180deg, #2a2e52 0%, #5c4a6b 40%, #b57a5a 70%, #dba77a 100%);
}
.scn-guardians-selected-by-test .gs-pillar-left  { position:absolute; bottom:20%; left:20%; width:12px; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 6px 0 12px rgba(0,0,0,0.5); }
.scn-guardians-selected-by-test .gs-pillar-right { position:absolute; bottom:20%; right:20%; width:12px; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: -6px 0 12px rgba(0,0,0,0.5); }
.scn-guardians-selected-by-test .gs-scale        { position:absolute; bottom:40%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(135deg, #b09060 0%, #806040 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: gs-scale 10s ease-in-out infinite; }
.scn-guardians-selected-by-test .gs-guardian     { position:absolute; bottom:25%; left:44%; 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: gs-guard 8s ease-in-out infinite; }
.scn-guardians-selected-by-test .gs-shadow       { position:absolute; bottom:20%; left:40%; width:30px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: gs-shadow 8s ease-in-out infinite; }
.scn-guardians-selected-by-test .gs-torch         { position:absolute; bottom:50%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #ffc070 0%, #b07030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px #b07030; animation: gs-torch 3s ease-in-out infinite alternate; }
.scn-guardians-selected-by-test .gs-smoke        { position:absolute; bottom:55%; left:48%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%); filter: blur(8px); animation: gs-smoke 6s ease-out infinite; }

@keyframes gs-scale  { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(-4deg); } }
@keyframes gs-guard  { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 75% { transform: translateX(1px) translateY(0) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes gs-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(0.8); opacity:0.3; } }
@keyframes gs-torch  { 0% { box-shadow:0 0 12px 4px #b07030; } 50% { box-shadow:0 0 28px 12px #ffc070; } 100% { box-shadow:0 0 16px 6px #b07030; } }
@keyframes gs-smoke  { 0% { opacity:0; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-15px) scale(1.5); } 100% { opacity:0; transform: translateY(-30px) scale(2); } }

/* Scene: the-noble-lie (truth vs falsehood) */
.scn-the-noble-lie {
  background: linear-gradient(135deg, #1c1d3a 0%, #4a2e5a 40%, #a66a5a 70%, #cf927a 100%);
}
.scn-the-noble-lie .nl-bg-deep      { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #3a2a4a 0%, transparent 70%); animation: nl-bg 10s ease-in-out infinite alternate; }
.scn-the-noble-lie .nl-figure-true  { position:absolute; bottom:25%; right:15%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nl-true 9s ease-in-out infinite; }
.scn-the-noble-lie .nl-figure-false { position:absolute; bottom:25%; left:15%; 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: nl-false 9s ease-in-out infinite; }
.scn-the-noble-lie .nl-veil         { position:absolute; bottom:30%; left:35%; right:35%; height:2px; background: linear-gradient(90deg, transparent, #c08050 50%, transparent); box-shadow: 0 0 12px 6px rgba(192,128,80,0.3); animation: nl-veil 7s ease-in-out infinite alternate; }
.scn-the-noble-lie .nl-glow         { position:absolute; bottom:35%; right:20%; width:12px; height:12px; background: radial-gradient(circle, #f0c080 0%, #c08040 100%); border-radius: 50%; box-shadow: 0 0 24px 12px #c08040; animation: nl-glow 3s ease-in-out infinite alternate; }
.scn-the-noble-lie .nl-emblem       { position:absolute; top:10%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #b09060 0%, #705040 100%); border-radius: 50%; border: 2px solid #a08050; box-shadow: 0 0 16px 4px rgba(176,144,96,0.4); animation: nl-emblem 15s ease-in-out infinite; }

@keyframes nl-bg     { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes nl-true   { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-3px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes nl-false  { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-3px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes nl-veil   { 0% { opacity:0.4; transform: scaleX(0.7); } 50% { opacity:1; transform: scaleX(1.3); } 100% { opacity:0.5; transform: scaleX(0.8); } }
@keyframes nl-glow   { 0% { box-shadow:0 0 12px 4px #c08040; opacity:0.8; } 50% { box-shadow:0 0 32px 16px #f0c080; opacity:1; } 100% { box-shadow:0 0 16px 6px #c08040; opacity:0.9; } }
@keyframes nl-emblem { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg); } }

/* cephalus-defines-justice */
.scn-cephalus-defines-justice {
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1210 50%, #0e0a08 100%),
              linear-gradient(180deg, #2a1e12 0%, #1a140e 50%, #120e0a 100%);
  background-size: 100% 100%, 100% 100%;
}
.scn-cephalus-defines-justice .cdj-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%);
  animation: cdj-pulse 6s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1e12 0%, #1a140e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cdj-wall 12s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: cdj-table 8s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-scroll {
  position: absolute; bottom: 34%; left: 45%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%);
  border-radius: 2px 2px 8px 8px;
  transform: rotate(5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: cdj-scroll 10s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-lamp {
  position: absolute; bottom: 30%; left: 40%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c07020 40%, #502010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(192,112,32,0.5);
  animation: cdj-lamp 4s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-figure1 {
  position: absolute; bottom: 22%; left: 28%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdj-figure1 12s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-figure2 {
  position: absolute; bottom: 22%; right: 28%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdj-figure2 14s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-cephalus-defines-justice .cdj-shadow1 {
  position: absolute; bottom: 20%; left: 26%; width: 16%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: cdj-sway1 8s ease-in-out infinite alternate;
}
.scn-cephalus-defines-justice .cdj-shadow2 {
  position: absolute; bottom: 20%; right: 26%; width: 16%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: cdj-sway2 10s ease-in-out infinite alternate;
  animation-delay: -3s;
}
@keyframes cdj-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes cdj-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cdj-table { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg) scale(1.005); } 100% { transform: rotate(-0.5deg); } }
@keyframes cdj-scroll { 0% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(6deg) translateX(2px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes cdj-lamp { 0% { box-shadow: 0 0 30px 10px rgba(192,112,32,0.4); } 50% { box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); } 100% { box-shadow: 0 0 30px 10px rgba(192,112,32,0.4); } }
@keyframes cdj-figure1 { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cdj-figure2 { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes cdj-sway1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes cdj-sway2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* cephalus-retires */
.scn-cephalus-retires {
  background: radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, #1a1210 50%, #0e0a08 100%),
              linear-gradient(180deg, #2a1e12 0%, #1a140e 50%, #120e0a 100%);
}
.scn-cephalus-retires .cr-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 90%, #4a3828 0%, transparent 60%);
  animation: cr-pulse 5s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a140e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cr-floor 8s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-door {
  position: absolute; bottom: 25%; right: 10%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: cr-door 15s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-lamp {
  position: absolute; bottom: 28%; left: 20%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b07030 40%, #501800 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(176,112,48,0.5);
  animation: cr-lamp 3s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-figure1 {
  position: absolute; bottom: 22%; left: 22%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure1 12s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-figure2 {
  position: absolute; bottom: 22%; right: 32%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure2 10s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-cephalus-retires .cr-pillar {
  position: absolute; bottom: 25%; left: 5%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #4a3a2a 80%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: cr-pillar 20s ease-in-out infinite alternate;
}
.scn-cephalus-retires .cr-step {
  position: absolute; bottom: 30%; right: 8%; width: 24%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: cr-step 9s ease-in-out infinite alternate;
}
@keyframes cr-pulse { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cr-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes cr-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(2deg); } 100% { transform: rotateY(0deg); } }
@keyframes cr-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(176,112,48,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,200,100,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 30px 10px rgba(176,112,48,0.4); } }
@keyframes cr-figure1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cr-figure2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cr-pillar { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes cr-step { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* justice-as-benefiting-friends */
.scn-justice-as-benefiting-friends {
  background: radial-gradient(ellipse at 55% 60%, #3a2a1a 0%, #1a1210 50%, #0e0a08 100%),
              linear-gradient(180deg, #2a1e12 0%, #1a140e 50%, #120e0a 100%);
}
.scn-justice-as-benefiting-friends .jbf-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #4a3828 0%, transparent 70%);
  animation: jbf-pulse 7s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-bench {
  position: absolute; bottom: 26%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #5a4828 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: jbf-bench 10s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-table {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: jbf-table 8s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-scroll {
  position: absolute; bottom: 35%; left: 42%; width: 16%; height: 3%;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: jbf-scroll 12s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-lamp {
  position: absolute; bottom: 30%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffc060 0%, #b07030 40%, #501800 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(176,112,48,0.5);
  animation: jbf-lamp 4s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-figure1 {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jbf-figure1 14s ease-in-out infinite alternate;
}
.scn-justice-as-benefiting-friends .jbf-figure2 {
  position: absolute; bottom: 22%; right: 20%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jbf-figure2 11s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-justice-as-benefiting-friends .jbf-shadow {
  position: absolute; bottom: 18%; left: 18%; right: 18%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: jbf-shadow 9s ease-in-out infinite alternate;
}
@keyframes jbf-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes jbf-bench { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.98) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes jbf-table { 0% { transform: rotate(-0.3deg); } 50% { transform: rotate(0.3deg) scale(1.005); } 100% { transform: rotate(-0.3deg); } }
@keyframes jbf-scroll { 0% { transform: rotate(-4deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(-4deg) translateX(0); } }
@keyframes jbf-lamp { 0% { box-shadow: 0 0 20px 8px rgba(176,112,48,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 50px 20px rgba(255,200,100,0.6); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(176,112,48,0.4); opacity: 0.85; } }
@keyframes jbf-figure1 { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes jbf-figure2 { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(-3px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes jbf-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }

/* when-is-justice-useful */
.scn-when-is-justice-useful {
  background: radial-gradient(ellipse at 45% 65%, #3a2a1a 0%, #1a1210 50%, #0e0a08 100%),
              linear-gradient(180deg, #2a1e12 0%, #1a140e 50%, #120e0a 100%);
}
.scn-when-is-justice-useful .wju-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 80%, #4a3828 0%, transparent 60%);
  animation: wju-pulse 6s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-column1 {
  position: absolute; bottom: 20%; left: 8%; width: 10%; height: 65%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #4a3a2a 80%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: wju-column1 20s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-column2 {
  position: absolute; bottom: 20%; right: 8%; width: 10%; height: 65%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #4a3a2a 80%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: wju-column2 18s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-when-is-justice-useful .wju-table {
  position: absolute; bottom: 25%; left: 28%; width: 44%; height: 6%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: wju-table 9s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-scroll {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 3%;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: wju-scroll 11s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-lamp {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffc060 0%, #b07030 40%, #501800 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(176,112,48,0.5);
  animation: wju-lamp 3s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-figure {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wju-figure 13s ease-in-out infinite alternate;
}
.scn-when-is-justice-useful .wju-shadows {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: wju-shadows 10s ease-in-out infinite alternate;
}
@keyframes wju-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes wju-column1 { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes wju-column2 { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes wju-table { 0% { transform: rotate(-0.4deg); } 50% { transform: rotate(0.4deg) scale(1.005); } 100% { transform: rotate(-0.4deg); } }
@keyframes wju-scroll { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes wju-lamp { 0% { box-shadow: 0 0 20px 8px rgba(176,112,48,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 50px 20px rgba(255,200,100,0.6); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(176,112,48,0.4); opacity: 0.85; } }
@keyframes wju-figure { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes wju-shadows { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(-2px); } 100% { transform: scaleX(1) translateX(0); } }

/* one block per scene id. Append to style.css. */
.scn-the-function-of-a-thing {
  background: 
    linear-gradient(135deg, #1c1308 0%, #2a1e0e 50%, #1a1008 100%),
    radial-gradient(circle at 50% 70%, #3a2a12 0%, transparent 60%);
}
.scn-the-function-of-a-thing .wall-thick {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e0e 0%, #1c1308 100%);
  animation: fth-wall 20s ease-in-out infinite alternate;
}
.scn-the-function-of-a-thing .floor-scene {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1008 0%, #0e0803 100%);
  border-radius: 0 0 30% 30%;
}
.scn-the-function-of-a-thing .table-wood {
  position: absolute; bottom: 25%; left: 50%; width: 60%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: fth-table 8s ease-in-out infinite;
}
.scn-the-function-of-a-thing .candle-warm {
  position: absolute; bottom: 37%; left: 40%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 4px 4px 2px 2px;
  transform-origin: center bottom;
  animation: fth-candle 12s ease-in-out infinite alternate;
}
.scn-the-function-of-a-thing .flame-glow {
  position: absolute; bottom: 56%; left: 40.3%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd590 0%, #e8a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(200,100,30,0.3);
  animation: fth-flame 2s ease-in-out infinite alternate;
}
.scn-the-function-of-a-thing .horse-statue {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0e 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  transform: rotate(5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.6);
  animation: fth-horse 6s ease-in-out infinite;
}
.scn-the-function-of-a-thing .cast-shadow {
  position: absolute; bottom: 24%; left: 48%; width: 50px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: fth-shadow 6s ease-in-out infinite alternate;
}
.scn-the-function-of-a-thing .ambient-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.08) 0%, transparent 70%);
  animation: fth-haze 15s ease-in-out infinite alternate;
}
@keyframes fth-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fth-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fth-candle { 0% { transform: none; } 50% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(-1deg); } }
@keyframes fth-flame { 0% { opacity: 0.8; transform: scale(1) translateY(0); } 50% { opacity: 1; transform: scale(1.1) translateY(-2px); } 100% { opacity: 0.9; transform: scale(1) translateY(0); } }
@keyframes fth-horse { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes fth-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes fth-haze { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-the-souls-end-and-excellence {
  background: 
    linear-gradient(180deg, #1e1610 0%, #2c2018 30%, #1a120c 100%),
    radial-gradient(circle at 70% 40%, #3a2a1a 0%, transparent 50%);
}
.scn-the-souls-end-and-excellence .wall-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2018 0%, #1a120c 100%);
}
.scn-the-souls-end-and-excellence .window-latticed {
  position: absolute; top: 10%; right: 8%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(100,80,40,0.3);
  animation: sle-window 25s ease-in-out infinite alternate;
}
.scn-the-souls-end-and-excellence .light-beam {
  position: absolute; top: 10%; right: 16%; width: 12%; height: 70%;
  background: linear-gradient(180deg, rgba(220,190,140,0.15) 0%, rgba(220,190,140,0.03) 100%);
  transform: rotate(-5deg);
  filter: blur(4px);
  animation: sle-beam 12s ease-in-out infinite alternate;
}
.scn-the-souls-end-and-excellence .pruning-hook {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sle-hook 8s ease-in-out infinite alternate;
}
.scn-the-souls-end-and-excellence .hook-shadow {
  position: absolute; bottom: 22%; left: 26%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: sle-hookshadow 8s ease-in-out infinite alternate;
}
.scn-the-souls-end-and-excellence .floor-rough {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120c 0%, #0e0a06 100%);
  border-radius: 0 0 20% 20%;
}
.scn-the-souls-end-and-excellence .dust-motes {
  position: absolute; top: 20%; left: 20%; width: 80%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,120,0.03) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,180,120,0.02) 0%, transparent 50%);
  animation: sle-motes 20s linear infinite;
}
@keyframes sle-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sle-beam { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }
@keyframes sle-hook { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes sle-hookshadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes sle-motes { 0% { transform: translate(0,0); } 50% { transform: translate(10px, -5px); } 100% { transform: translate(0,0); } }

.scn-the-just-soul-lives-well {
  background: 
    linear-gradient(180deg, #1a1208 0%, #2a1e12 40%, #120c06 100%),
    radial-gradient(circle at 50% 30%, #3a2a14 0%, transparent 50%);
}
.scn-the-just-soul-lives-well .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  animation: jsl-wall 30s ease-in-out infinite alternate;
}
.scn-the-just-soul-lives-well .desk-surface {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-the-just-soul-lives-well .candle-burnt {
  position: absolute; bottom: 45%; left: 45%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%);
  border-radius: 5px 5px 3px 3px;
  transform-origin: center bottom;
  animation: jsl-candle 8s ease-in-out infinite alternate;
}
.scn-the-just-soul-lives-well .open-book {
  position: absolute; bottom: 32%; left: 30%; width: 35%; height: 14%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3220 100%);
  border-radius: 4% 4% 20% 20% / 20% 20% 40% 40%;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: jsl-book 12s ease-in-out infinite;
}
.scn-the-just-soul-lives-well .profile-head {
  position: absolute; bottom: 38%; left: 58%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform: scaleX(-1);
  animation: jsl-head 10s ease-in-out infinite alternate;
}
.scn-the-just-soul-lives-well .eye-dot {
  position: absolute; bottom: 48%; left: 69%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0c060 0%, #a08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,180,80,0.5);
  animation: jsl-eye 4s ease-in-out infinite alternate;
}
.scn-the-just-soul-lives-well .book-shadow {
  position: absolute; bottom: 26%; left: 28%; width: 40%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
}
.scn-the-just-soul-lives-well .glow-aura {
  position: absolute; bottom: 40%; left: 35%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,160,80,0.06) 0%, transparent 80%);
  animation: jsl-aura 15s ease-in-out infinite alternate;
}
@keyframes jsl-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes jsl-candle { 0% { transform: none; } 50% { transform: rotate(1.5deg) scaleY(0.97); } 100% { transform: rotate(-1deg); } }
@keyframes jsl-book { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(6deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }
@keyframes jsl-head { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes jsl-eye { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes jsl-aura { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-justice-is-excellence {
  background: 
    linear-gradient(180deg, #1a140e 0%, #2a1e14 35%, #120c06 100%),
    radial-gradient(circle at 60% 20%, #3a2a18 0%, transparent 60%);
}
.scn-justice-is-excellence .wall-dusky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a140e 100%);
  animation: jie-wall 22s ease-in-out infinite alternate;
}
.scn-justice-is-excellence .window-arch {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(80,60,40,0.2);
  animation: jie-window 30s ease-in-out infinite alternate;
}
.scn-justice-is-excellence .chair-sturdy {
  position: absolute; bottom: 30%; left: 58%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.4);
  animation: jie-chair 9s ease-in-out infinite alternate;
}
.scn-justice-is-excellence .silhouette-head {
  position: absolute; bottom: 42%; left: 52%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #120c06 0%, #0a0603 100%);
  border-radius: 50% 30% 30% 40% / 60% 40% 30% 50%;
  transform: rotate(10deg);
  animation: jie-head 10s ease-in-out infinite alternate;
}
.scn-justice-is-excellence .ear-detail {
  position: absolute; bottom: 48%; left: 55%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, #120c06 100%);
  border-radius: 50% 30% 30% 50% / 60% 50% 40% 50%;
  animation: jie-ear 6s ease-in-out infinite alternate;
}
.scn-justice-is-excellence .floor-panel {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 0 0 25% 25%;
}
.scn-justice-is-excellence .light-shaft {
  position: absolute; top: 8%; left: 16%; width: 8%; height: 65%;
  background: linear-gradient(180deg, rgba(200,180,120,0.1) 0%, rgba(200,180,120,0.02) 100%);
  transform: rotate(5deg);
  filter: blur(6px);
  animation: jie-shaft 18s ease-in-out infinite alternate;
}
@keyframes jie-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes jie-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(80,60,40,0.2); } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(80,60,40,0.3); } 100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(80,60,40,0.2); } }
@keyframes jie-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes jie-head { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes jie-ear { 0% { transform: none; } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: none; } }
@keyframes jie-shaft { 0% { opacity: 0.05; } 50% { opacity: 0.15; } 100% { opacity: 0.05; } }

/* Scene 1: justice-like-the-wise */
.scn-justice-like-the-wise {
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1010 70%) no-repeat, linear-gradient(180deg, #0d0a08 0%, #1a1410 60%, #2a1e16 100%);
  position: relative; width: 100%; height: 100%;
}
.scn-justice-like-the-wise .background { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,8,6,0.8) 0%, rgba(30,22,16,0.6) 50%, rgba(10,8,6,0.8) 100%); animation: jlw-bg-pulse 12s ease-in-out infinite alternate; }
.scn-justice-like-the-wise .wall { position: absolute; inset: 10% 10% 20% 10%; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 40%, #0d0a08 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,0.9), 0 8px 24px rgba(0,0,0,0.8); animation: jlw-wall-shift 18s ease-in-out infinite; }
.scn-justice-like-the-wise .lamp { position: absolute; bottom: 45%; left: 50%; width: 10px; height: 16px; transform: translateX(-50%); background: linear-gradient(180deg, #a06020 0%, #603010 100%); border-radius: 60% 60% 10% 10%; box-shadow: 0 0 12px rgba(200,120,40,0.6); animation: jlw-lamp-sway 4s ease-in-out infinite; }
.scn-justice-like-the-wise .lamp-glow { position: absolute; bottom: 40%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(220,150,60,0.4) 0%, rgba(200,120,40,0.15) 40%, transparent 70%); filter: blur(12px); animation: jlw-glow-flicker 2.5s ease-in-out infinite alternate; }
.scn-justice-like-the-wise .figure-left { position: absolute; bottom: 28%; left: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jlw-figure-left 8s ease-in-out infinite; }
.scn-justice-like-the-wise .figure-right { position: absolute; bottom: 28%; right: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1e16 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jlw-figure-right 10s ease-in-out infinite; }
.scn-justice-like-the-wise .shadow-floor { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(6px); animation: jlw-shadow-move 14s ease-in-out infinite; }
.scn-justice-like-the-wise .dust { position: absolute; top: 30%; left: 20%; width: 4px; height: 4px; background: rgba(200,150,80,0.4); border-radius: 50%; filter: blur(2px); animation: jlw-dust-drift 20s linear infinite; }
@keyframes jlw-bg-pulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes jlw-wall-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes jlw-lamp-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes jlw-glow-flicker { 0% { opacity: 0.6; transform: translateX(-50%) scaleX(1); } 30% { opacity: 1; transform: translateX(-50%) scaleX(1.2); } 60% { opacity: 0.8; transform: translateX(-50%) scaleX(0.9); } 100% { opacity: 0.7; transform: translateX(-50%) scaleX(1.1); } }
@keyframes jlw-figure-left { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jlw-figure-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jlw-shadow-move { 0% { transform: skewX(-10deg); } 50% { transform: skewX(10deg); } 100% { transform: skewX(-10deg); } }
@keyframes jlw-dust-drift { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 25% { transform: translate(20px, -10px) scale(1.3); opacity: 0.6; } 50% { transform: translate(-10px, -30px) scale(0.8); opacity: 0.2; } 75% { transform: translate(15px, -20px) scale(1.1); opacity: 0.5; } 100% { transform: translate(0, -40px) scale(1); opacity: 0.3; } }

/* Scene 2: the-just-and-the-unjust-compared */
.scn-the-just-and-the-unjust-compared {
  background: radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0d0a08 80%) no-repeat, linear-gradient(180deg, #0a0806 0%, #1a1410 50%, #120e0a 100%);
  position: relative; width: 100%; height: 100%;
}
.scn-the-just-and-the-unjust-compared .bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(30,22,16,0.5) 50%, rgba(0,0,0,0.3) 100%); animation: juc-bg-dim 20s ease-in-out infinite alternate; }
.scn-the-just-and-the-unjust-compared .pedestal { position: absolute; bottom: 25%; left: 50%; width: 80px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,0.8); animation: juc-pedestal-shift 6s ease-in-out infinite; }
.scn-the-just-and-the-unjust-compared .scale-left { position: absolute; bottom: 38%; left: 38%; width: 30px; height: 6px; background: #4a3a2a; border-radius: 20%; transform-origin: right center; animation: juc-scale-left 7s ease-in-out infinite; }
.scn-the-just-and-the-unjust-compared .scale-right { position: absolute; bottom: 38%; right: 38%; width: 30px; height: 6px; background: #4a3a2a; border-radius: 20%; transform-origin: left center; animation: juc-scale-right 9s ease-in-out infinite; }
.scn-the-just-and-the-unjust-compared .pillar { position: absolute; bottom: 25%; left: 50%; width: 12px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: juc-pillar-glow 12s ease-in-out infinite; }
.scn-the-just-and-the-unjust-compared .glow { position: absolute; bottom: 28%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(200,120,40,0.3) 0%, transparent 70%); filter: blur(10px); animation: juc-glow-pulse 4s ease-in-out infinite alternate; }
.scn-the-just-and-the-unjust-compared .figure-left { position: absolute; bottom: 22%; left: 18%; width: 24px; height: 54px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: juc-fig-left 8s ease-in-out infinite; }
.scn-the-just-and-the-unjust-compared .figure-right { position: absolute; bottom: 22%; right: 18%; width: 24px; height: 54px; background: linear-gradient(180deg, #2a1e16 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: juc-fig-right 11s ease-in-out infinite; }
@keyframes juc-bg-dim { 0% { opacity: 0.8; } 50% { opacity: 0.5; } 100% { opacity: 0.9; } }
@keyframes juc-pedestal-shift { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes juc-scale-left { 0% { transform: rotate(0deg); } 33% { transform: rotate(-8deg); } 66% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes juc-scale-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes juc-pillar-glow { 0% { opacity: 0.7; } 50% { opacity: 1; box-shadow: inset 0 0 20px rgba(200,120,40,0.3); } 100% { opacity: 0.8; } }
@keyframes juc-glow-pulse { 0% { opacity: 0.4; transform: translateX(-50%) scaleY(0.9); } 50% { opacity: 0.8; transform: translateX(-50%) scaleY(1.2); } 100% { opacity: 0.5; transform: translateX(-50%) scaleY(1); } }
@keyframes juc-fig-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes juc-fig-right { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-6px) rotate(-4deg); } 66% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene 3: the-just-goes-beyond-his-like */
.scn-the-just-goes-beyond-his-like {
  background: radial-gradient(ellipse at 50% 20%, #2a1e16 0%, #0d0a08 80%) no-repeat, linear-gradient(180deg, #0a0806 0%, #1a1410 50%, #120e0a 100%);
  position: relative; width: 100%; height: 100%;
}
.scn-the-just-goes-beyond-his-like .backdrop { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,8,6,0.9) 0%, rgba(30,22,16,0.4) 50%, rgba(10,8,6,0.8) 100%); animation: jgb-bg-fade 16s ease-in-out infinite alternate; }
.scn-the-just-goes-beyond-his-like .arch { position: absolute; top: 10%; left: 20%; right: 20%; bottom: 30%; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%) no-repeat, linear-gradient(180deg, #2a1e16 0%, #0d0a08 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.8); animation: jgb-arch-pulse 12s ease-in-out infinite; }
.scn-the-just-goes-beyond-his-like .ladder { position: absolute; bottom: 28%; left: 50%; width: 8px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: jgb-ladder-hum 8s ease-in-out infinite; }
.scn-the-just-goes-beyond-his-like .figure-climb { position: absolute; bottom: 38%; left: 50%; width: 18px; height: 36px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e16 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jgb-climb 6s ease-in-out infinite; }
.scn-the-just-goes-beyond-his-like .torch { position: absolute; bottom: 40%; left: 50%; width: 8px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #a06020 0%, #603010 100%); border-radius: 60% 60% 10% 10%; box-shadow: 0 0 10px rgba(200,120,40,0.5); animation: jgb-torch-sway 3.5s ease-in-out infinite; }
.scn-the-just-goes-beyond-his-like .torch-glow { position: absolute; bottom: 36%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(220,150,60,0.35) 0%, rgba(200,120,40,0.1) 40%, transparent 70%); filter: blur(10px); animation: jgb-glow-flicker 2s ease-in-out infinite alternate; }
.scn-the-just-goes-beyond-his-like .shadow-below { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); filter: blur(8px); animation: jgb-shadow-move 10s ease-in-out infinite; }
@keyframes jgb-bg-fade { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes jgb-arch-pulse { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes jgb-ladder-hum { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes jgb-climb { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-16px) rotate(3deg); } 60% { transform: translateX(-50%) translateY(-4px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes jgb-torch-sway { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes jgb-glow-flicker { 0% { opacity: 0.5; transform: translateX(-50%) scaleX(1); } 30% { opacity: 0.9; transform: translateX(-50%) scaleX(1.3); } 60% { opacity: 0.7; transform: translateX(-50%) scaleX(0.8); } 100% { opacity: 0.6; transform: translateX(-50%) scaleX(1.1); } }
@keyframes jgb-shadow-move { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene 4: comparison-with-the-arts */
.scn-comparison-with-the-arts {
  background: radial-gradient(ellipse at 50% 40%, #1a1410 0%, #0a0806 80%) no-repeat, linear-gradient(180deg, #0d0a08 0%, #120e0a 50%, #0a0806 100%);
  position: relative; width: 100%; height: 100%;
}
.scn-comparison-with-the-arts .bg-dark { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, rgba(20,16,12,0.4) 50%, rgba(0,0,0,0.6) 100%); animation: cwa-bg-push 22s ease-in-out infinite alternate; }
.scn-comparison-with-the-arts .table { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 8% 8% 0 0; box-shadow: 0 8px 24px rgba(0,0,0,0.8); animation: cwa-table-shift 9s ease-in-out infinite; }
.scn-comparison-with-the-arts .scroll { position: absolute; bottom: 28%; left: 50%; width: 60px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: cwa-scroll-uncurl 14s ease-in-out infinite; }
.scn-comparison-with-the-arts .lamp { position: absolute; bottom: 45%; left: 50%; width: 10px; height: 18px; transform: translateX(-50%); background: linear-gradient(180deg, #a06020 0%, #603010 100%); border-radius: 60% 60% 10% 10%; box-shadow: 0 0 10px rgba(200,120,40,0.6); animation: cwa-lamp-sway 5s ease-in-out infinite; }
.scn-comparison-with-the-arts .lamp-glow { position: absolute; bottom: 40%; left: 50%; width: 70px; height: 90px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(220,150,60,0.3) 0%, rgba(200,120,40,0.1) 40%, transparent 70%); filter: blur(14px); animation: cwa-glow-pulse 3s ease-in-out infinite alternate; }
.scn-comparison-with-the-arts .hand-left { position: absolute; bottom: 24%; left: 35%; width: 16px; height: 24px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cwa-hand-left 7s ease-in-out infinite; }
.scn-comparison-with-the-arts .hand-right { position: absolute; bottom: 24%; right: 35%; width: 16px; height: 24px; background: linear-gradient(180deg, #2a1e16 0%, #0a0806 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cwa-hand-right 9s ease-in-out infinite; }
.scn-comparison-with-the-arts .shadow-shape { position: absolute; bottom: 18%; left: 30%; right: 30%; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); filter: blur(6px); animation: cwa-shadow-twist 12s ease-in-out infinite; }
@keyframes cwa-bg-push { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cwa-table-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cwa-scroll-uncurl { 0% { transform: translateX(-50%) scaleX(0.8) rotate(0deg); } 33% { transform: translateX(-50%) scaleX(1) rotate(2deg); } 66% { transform: translateX(-50%) scaleX(0.9) rotate(-1deg); } 100% { transform: translateX(-50%) scaleX(0.8) rotate(0deg); } }
@keyframes cwa-lamp-sway { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes cwa-glow-pulse { 0% { opacity: 0.5; transform: translateX(-50%) scaleY(0.8); } 40% { opacity: 0.9; transform: translateX(-50%) scaleY(1.3); } 70% { opacity: 0.7; transform: translateX(-50%) scaleY(1); } 100% { opacity: 0.6; transform: translateX(-50%) scaleY(0.9); } }
@keyframes cwa-hand-left { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-6px) rotate(10deg); } 60% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cwa-hand-right { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-8px) rotate(-12deg); } 70% { transform: translateY(-1px) rotate(6deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cwa-shadow-twist { 0% { transform: skewX(-5deg) scaleX(1); } 50% { transform: skewX(5deg) scaleX(1.1); } 100% { transform: skewX(-5deg) scaleX(1); } }

/* scene: the-tyrants-life-examined (tense, dim-interior) */
.scn-the-tyrants-life-examined {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 100%), radial-gradient(ellipse at 80% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-the-tyrants-life-examined .room { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); border: 2px solid #3a2a1a; border-radius: 4px; }
.scn-the-tyrants-life-examined .desk { position:absolute; bottom:25%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 -4px 8px #0a0604; }
.scn-the-tyrants-life-examined .figure-seated { position:absolute; bottom:30%; left:35%; width:22%; height:32%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tle-fig 4s ease-in-out infinite alternate; }
.scn-the-tyrants-life-examined .lamp { position:absolute; bottom:38%; left:42%; width:12px; height:16px; background: radial-gradient(circle, #e8b060 0%, #c08040 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: tle-lamp 1.2s ease-in-out infinite alternate; }
.scn-the-tyrants-life-examined .shadow-king { position:absolute; bottom:20%; left:60%; width:30%; height:60%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); transform: skewX(-10deg) scaleY(.8); border-radius: 60% 40% 0 0; filter: blur(4px); animation: tle-shadow 5s ease-in-out infinite; }
.scn-the-tyrants-life-examined .bookshelf { position:absolute; top:12%; right:5%; width:18%; height:66%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-left: 4px solid #5a4030; border-radius: 0 4px 4px 0; box-shadow: inset 0 0 10px #0a0604; }
.scn-the-tyrants-life-examined .book { position:absolute; bottom:27%; left:38%; width:8%; height:12%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; transform: rotate(4deg); box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: tle-book 8s ease-in-out infinite alternate; }
@keyframes tle-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tle-lamp { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.3); } 50% { box-shadow: 0 0 25px 8px #e8b060, 0 0 50px 15px rgba(232,176,96,.5); } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,.3); } }
@keyframes tle-shadow { 0% { transform: skewX(-10deg) scaleY(.8); opacity:.6; } 50% { transform: skewX(-12deg) scaleY(.85); opacity:.8; } 100% { transform: skewX(-8deg) scaleY(.75); opacity:.5; } }
@keyframes tle-book { 0% { transform: rotate(4deg) scale(1); } 50% { transform: rotate(7deg) scale(1.05); } 100% { transform: rotate(3deg) scale(1); } }

/* scene: is-happiness-for-just-or-unjust (calm, dim-interior) */
.scn-is-happiness-for-just-or-unjust {
  background: linear-gradient(180deg, #1e1a16 0%, #2e2820 40%, #3a3228 100%), radial-gradient(ellipse at 50% 100%, #3a3228 0%, transparent 70%);
  animation: hfj-bg 12s ease-in-out infinite alternate;
}
.scn-is-happiness-for-just-or-unjust .room-calm { position:absolute; inset:0; background: linear-gradient(135deg, #2a2420 0%, #16120e 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-is-happiness-for-just-or-unjust .armchair-left { position:absolute; bottom:20%; left:10%; width:28%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 -8px 12px #0a0604; }
.scn-is-happiness-for-just-or-unjust .armchair-right { position:absolute; bottom:22%; right:10%; width:28%; height:43%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 -8px 12px #0a0604; }
.scn-is-happiness-for-just-or-unjust .figure-left { position:absolute; bottom:28%; left:18%; width:14%; height:30%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hfj-fig-left 6s ease-in-out infinite alternate; }
.scn-is-happiness-for-just-or-unjust .figure-right { position:absolute; bottom:30%; right:18%; width:14%; height:28%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hfj-fig-right 6s ease-in-out infinite alternate-reverse; }
.scn-is-happiness-for-just-or-unjust .lamp-soft { position:absolute; bottom:40%; left:45%; width:14px; height:18px; background: radial-gradient(circle, #e8c890 0%, #c8a060 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c8a060, 0 0 60px 20px rgba(200,160,96,.3); animation: hfj-lamp 4s ease-in-out infinite alternate; }
.scn-is-happiness-for-just-or-unjust .carpet { position:absolute; bottom:8%; left:5%; right:5%; height:12%; background: linear-gradient(90deg, #5e1a1d 0%, #702243 30%, #5e1a1d 70%, #702243 100%); border-radius: 50% / 80% 80% 20% 20%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: hfj-carpet 20s linear infinite; }
@keyframes hfj-bg { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes hfj-fig-left { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hfj-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hfj-lamp { 0% { box-shadow: 0 0 20px 6px #c8a060, 0 0 40px 12px rgba(200,160,96,.2); } 50% { box-shadow: 0 0 35px 12px #e8c890, 0 0 70px 20px rgba(232,200,144,.4); } 100% { box-shadow: 0 0 25px 8px #c8a060, 0 0 50px 15px rgba(200,160,96,.25); } }
@keyframes hfj-carpet { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }

/* scene: justice-virtue-or-vice (tense, dim-interior) */
.scn-justice-virtue-or-vice {
  background: linear-gradient(180deg, #12100e 0%, #1a1612 50%, #0a0806 100%), radial-gradient(ellipse at 50% 80%, #1a1612 0%, transparent 60%);
}
.scn-justice-virtue-or-vice .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0e0c0a 0%, #1a1612 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-justice-virtue-or-vice .hand-book { position:absolute; bottom:25%; left:30%; width:12%; height:20%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: jvv-hand 3s ease-in-out infinite alternate; }
.scn-justice-virtue-or-vice .lamp-close { position:absolute; bottom:40%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #d08040 0%, #a06030 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 18px 5px #a06030, 0 0 36px 10px rgba(160,96,48,.4); animation: jvv-lamp 0.8s ease-in-out infinite alternate; }
.scn-justice-virtue-or-vice .finger-point { position:absolute; bottom:27%; left:40%; width:4%; height:12%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 20% 20%; transform: rotate(20deg) translateX(-50%); animation: jvv-finger 2s ease-in-out infinite; }
.scn-justice-virtue-or-vice .table { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #4a3828 0%, #2a1c12 100%); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,.5); }
@keyframes jvv-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes jvv-lamp { 0% { box-shadow: 0 0 12px 3px #a06030, 0 0 24px 6px rgba(160,96,48,.3); } 50% { box-shadow: 0 0 22px 8px #d08040, 0 0 44px 14px rgba(208,128,64,.5); } 100% { box-shadow: 0 0 15px 4px #a06030, 0 0 30px 8px rgba(160,96,48,.3); } }
@keyframes jvv-finger { 0% { transform: rotate(20deg) translateX(-50%) translateY(0); } 50% { transform: rotate(25deg) translateX(-50%) translateY(-3px); } 100% { transform: rotate(20deg) translateX(-50%) translateY(0); } }

/* scene: injustice-as-wisdom (tense, dim-interior) */
.scn-injustice-as-wisdom {
  background: linear-gradient(180deg, #0e0a06 0%, #1a1410 40%, #0e0a06 100%), radial-gradient(ellipse at 50% 0%, #1a1410 0%, transparent 70%);
}
.scn-injustice-as-wisdom .bookshelf-tall { position:absolute; top:2%; left:5%; right:5%; height:88%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 0 0 8px 8px; box-shadow: inset 0 0 20px #0a0604; }
.scn-injustice-as-wisdom .figure-bottom { position:absolute; bottom:5%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #2a1c12 0%, #160e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: iaw-fig 5s ease-in-out infinite alternate; }
.scn-injustice-as-wisdom .lamp-shine-down { position:absolute; top:8%; left:50%; width:10px; height:12px; background: radial-gradient(circle, #e8b060 0%, #c08040 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.3); animation: iaw-lamp 2s ease-in-out infinite alternate; transform: translateX(-50%); }
.scn-injustice-as-wisdom .scroll { position:absolute; bottom:8%; left:55%; width:10%; height:4%; background: linear-gradient(90deg, #b8a080 0%, #d0c0a0 50%, #b8a080 100%); border-radius: 10px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: iaw-scroll 12s ease-in-out infinite; }
.scn-injustice-as-wisdom .shadow-up { position:absolute; bottom:0; left:30%; right:30%; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(6px); animation: iaw-shadow 8s ease-in-out infinite alternate; }
@keyframes iaw-fig { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes iaw-lamp { 0% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.2); } 50% { box-shadow: 0 0 40px 12px #e8b060, 0 0 80px 20px rgba(232,176,96,.4); } 100% { box-shadow: 0 0 25px 6px #c08040, 0 0 50px 14px rgba(192,128,64,.25); } }
@keyframes iaw-scroll { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes iaw-shadow { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(1); } }

.scn-stories-of-uranus-and-cronus {
  background: 
    linear-gradient(180deg, #0d0d1a 0%, #1a1028 40%, #2a1a38 70%, #0d0d1a 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-stories-of-uranus-and-cronus .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0000004d 100%); animation: uc1-shift 20s ease-in-out infinite alternate; }
.scn-stories-of-uranus-and-cronus .bg-mid { position:absolute; inset:10% 5% 20% 5%; background:linear-gradient(135deg, #2a1a38 0%, #1a1028 100%); border-radius:30% 5% 20% 5%; filter: blur(30px); opacity:0.6; }
.scn-stories-of-uranus-and-cronus .wall-shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, transparent 0%, #0a0a0f 100%); animation: uc1-wall 15s ease-in-out infinite; }
.scn-stories-of-uranus-and-cronus .throne { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1a2a 0%, #0d0d1a 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -10px 20px #00000080; animation: uc1-throne 12s ease-in-out infinite alternate; }
.scn-stories-of-uranus-and-cronus .figure-crouch { position:absolute; bottom:24%; left:50%; width:50px; height:70px; transform:translateX(-50%) scaleX(-1); background:radial-gradient(ellipse 40% 60% at 50% 40%, #1a1a2a 0%, #0d0d1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: uc1-crouch 6s ease-in-out infinite; }
.scn-stories-of-uranus-and-cronus .scythe { position:absolute; bottom:30%; left:20%; width:60px; height:10px; background:linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:0 50% 50% 0; transform:rotate(20deg); transform-origin: right center; box-shadow: 0 2px 4px #000; animation: uc1-scythe 8s ease-in-out infinite alternate; }
.scn-stories-of-uranus-and-cronus .candle-glow { position:absolute; bottom:15%; left:30%; width:80px; height:80px; background:radial-gradient(circle, #ff8c4a33 0%, transparent 70%); border-radius:50%; animation: uc1-glow 4s ease-in-out infinite alternate; }
.scn-stories-of-uranus-and-cronus .candle-flame { position:absolute; bottom:20%; left:30%; width:8px; height:12px; background:radial-gradient(circle, #ffcc66 0%, #ff8844 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 12px 4px #ff8844; animation: uc1-flame 0.8s ease-in-out infinite alternate; }
.scn-stories-of-uranus-and-cronus .shadow-veil { position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, #00000080 100%); animation: uc1-veil 25s ease-in-out infinite; }
@keyframes uc1-shift { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes uc1-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uc1-throne { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform:translateX(-50%) scale(0.98) translateY(2px) } }
@keyframes uc1-crouch { 0% { transform:translateX(-50%) scaleX(-1) rotate(0deg) } 25% { transform:translateX(-48%) scaleX(-1) rotate(2deg) } 50% { transform:translateX(-52%) scaleX(-1) rotate(-1deg) } 75% { transform:translateX(-47%) scaleX(-1) rotate(1deg) } 100% { transform:translateX(-50%) scaleX(-1) rotate(0deg) } }
@keyframes uc1-scythe { 0% { transform:rotate(15deg) scaleX(1) } 50% { transform:rotate(25deg) scaleX(1.1) } 100% { transform:rotate(18deg) scaleX(0.9) } }
@keyframes uc1-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 uc1-flame { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.2) } 100% { transform:translateY(1px) scaleY(0.9) } }
@keyframes uc1-veil { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-god-is-good-only {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 70%, #1a1410 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a28 0%, transparent 60%);
}
.scn-god-is-good-only .wall-panel { position:absolute; inset:15% 10% 15% 10%; background:linear-gradient(135deg, #4a3a28 0%, #3a2a1a 100%); border-radius:5%; box-shadow: inset 0 0 30px #0000004d; animation: ggo-panel 20s ease-in-out infinite; }
.scn-god-is-good-only .window-glow { position:absolute; top:20%; left:60%; width:70px; height:90px; background:radial-gradient(ellipse at 50% 50%, #f0d4a0 0%, #d4b080 40%, transparent 70%); border-radius:10%; filter: blur(10px); animation: ggo-window 8s ease-in-out infinite alternate; }
.scn-god-is-good-only .figure-seated { position:absolute; bottom:20%; left:40%; width:60px; height:90px; background:radial-gradient(ellipse 40% 60% at 50% 60%, #1a1a1a 0%, #0d0d0d 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ggo-seated 6s ease-in-out infinite; }
.scn-god-is-good-only .table { position:absolute; bottom:18%; left:35%; width:80px; height:10px; background:linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 4px 8px #00000080; }
.scn-god-is-good-only .scroll { position:absolute; bottom:22%; left:38%; width:30px; height:4px; background:#c8b090; border-radius:50%; transform:rotate(10deg); animation: ggo-scroll 15s linear infinite; }
.scn-god-is-good-only .lamp-glow { position:absolute; top:30%; left:30%; width:100px; height:100px; background:radial-gradient(circle, #ffe0a033 0%, transparent 70%); border-radius:50%; animation: ggo-lamp-glow 5s ease-in-out infinite alternate; }
.scn-god-is-good-only .lamp-flame { position:absolute; top:35%; left:30%; width:10px; height:15px; background:radial-gradient(circle, #ffddaa 0%, #ffaa55 80%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ffaa55; animation: ggo-flame 1.2s ease-in-out infinite alternate; }
.scn-god-is-good-only .shadow-edge { position:absolute; inset:0; background:linear-gradient(180deg, transparent 30%, #00000033 100%); animation: ggo-edge 12s ease-in-out infinite; }
@keyframes ggo-panel { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ggo-window { 0% { opacity:0.5; transform:scale(0.95) } 50% { opacity:0.9; transform:scale(1.05) } 100% { opacity:0.6; transform:scale(0.98) } }
@keyframes ggo-seated { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(1px) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(0.5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ggo-scroll { 0% { transform:rotate(10deg) translateX(0) } 50% { transform:rotate(8deg) translateX(3px) } 100% { transform:rotate(12deg) translateX(0) } }
@keyframes ggo-lamp-glow { 0% { transform:scale(0.9); opacity:0.6 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.7 } }
@keyframes ggo-flame { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-3px) scaleY(1.3) } 100% { transform:translateY(1px) scaleY(0.8) } }
@keyframes ggo-edge { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-god-is-good-only-2 {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 70%, #1a1410 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a28 0%, transparent 60%);
}
.scn-god-is-good-only-2 .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #2a1a12 0%, #1a0a0a 100%); border-radius:30% 0 0 0 / 50% 0 0 0; animation: ggo2-floor 18s ease-in-out infinite; }
.scn-god-is-good-only-2 .pillar-left { position:absolute; bottom:25%; left:15%; width:20px; height:200px; background:linear-gradient(90deg, #4a3a28 0%, #3a2a1a 50%, #4a3a28 100%); border-radius:10% 10% 0 0; box-shadow: 4px 0 8px #00000040; animation: ggo2-pillar 25s linear infinite; }
.scn-god-is-good-only-2 .pillar-right { position:absolute; bottom:25%; right:15%; width:20px; height:200px; background:linear-gradient(90deg, #4a3a28 0%, #3a2a1a 50%, #4a3a28 100%); border-radius:10% 10% 0 0; box-shadow: -4px 0 8px #00000040; animation: ggo2-pillar 25s linear infinite reverse; }
.scn-god-is-good-only-2 .figure-left { position:absolute; bottom:28%; left:25%; width:55px; height:85px; background:radial-gradient(ellipse 40% 60% at 50% 40%, #1a1a1a 0%, #0d0d0d 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:scaleX(-1); animation: ggo2-fig-left 7s ease-in-out infinite; }
.scn-god-is-good-only-2 .figure-right { position:absolute; bottom:28%; right:25%; width:55px; height:85px; background:radial-gradient(ellipse 40% 60% at 50% 40%, #1a1a1a 0%, #0d0d0d 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: ggo2-fig-right 7s ease-in-out infinite 0.5s; }
.scn-god-is-good-only-2 .lamp-middle { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:12px; height:20px; background:radial-gradient(circle, #ffcc66 0%, #ffaa44 80%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 10px #ffaa44; animation: ggo2-lamp 3s ease-in-out infinite alternate; }
.scn-god-is-good-only-2 .lamp-light { position:absolute; bottom:30%; left:40%; right:40%; height:100px; background:radial-gradient(ellipse at 50% 100%, #ffcc6640 0%, transparent 100%); animation: ggo2-light 5s ease-in-out infinite; }
.scn-god-is-good-only-2 .shadow-arch { position:absolute; top:0; left:10%; right:10%; height:30%; background:radial-gradient(ellipse at 50% 0%, #00000040 0%, transparent 100%); animation: ggo2-arch 10s ease-in-out infinite; }
@keyframes ggo2-floor { 0% { opacity:0.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.03) } 100% { opacity:0.8; transform:scaleY(0.98) } }
@keyframes ggo2-pillar { 0% { opacity:0.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:0.9; transform:translateY(0) } }
@keyframes ggo2-fig-left { 0% { transform:scaleX(-1) translateX(0) rotate(0deg) } 25% { transform:scaleX(-1) translateX(2px) rotate(1deg) } 50% { transform:scaleX(-1) translateX(-1px) rotate(-1deg) } 75% { transform:scaleX(-1) translateX(1px) rotate(0.5deg) } 100% { transform:scaleX(-1) translateX(0) rotate(0deg) } }
@keyframes ggo2-fig-right { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-2px) rotate(-1deg) } 50% { transform:translateX(1px) rotate(1deg) } 75% { transform:translateX(-1px) rotate(-0.5deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes ggo2-lamp { 0% { transform:translateX(-50%) scale(0.9); opacity:0.7 } 50% { transform:translateX(-50%) scale(1.1); opacity:1 } 100% { transform:translateX(-50%) scale(0.95); opacity:0.8 } }
@keyframes ggo2-light { 0% { opacity:0.4; transform:scaleY(0.9) } 50% { opacity:0.8; transform:scaleY(1.1) } 100% { opacity:0.5; transform:scaleY(0.95) } }
@keyframes ggo2-arch { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-god-is-not-the-author-of-evil {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a28 0%, transparent 60%);
}
.scn-god-is-not-the-author-of-evil .bg-wall { position:absolute; inset:10% 5% 10% 5%; background:linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:5%; box-shadow: inset 0 0 20px #0000004d; animation: gne-wall 15s ease-in-out infinite; }
.scn-god-is-not-the-author-of-evil .cask-left { position:absolute; bottom:15%; left:18%; width:50px; height:70px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 4px 4px 8px #00000080; transform:rotate(-5deg); animation: gne-cask 10s ease-in-out infinite; }
.scn-god-is-not-the-author-of-evil .cask-right { position:absolute; bottom:15%; right:18%; width:50px; height:70px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: -4px 4px 8px #00000080; transform:rotate(5deg); animation: gne-cask 10s ease-in-out infinite 0.5s; }
.scn-god-is-not-the-author-of-evil .figure-standing { position:absolute; bottom:20%; left:45%; width:55px; height:110px; background:radial-gradient(ellipse 40% 60% at 50% 60%, #1a1a1a 0%, #0d0d0d 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: gne-figure 8s ease-in-out infinite; }
.scn-god-is-not-the-author-of-evil .scale { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:60px; height:10px; background:linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10%; box-shadow: 0 2px 4px #000; animation: gne-scale 6s ease-in-out infinite alternate; }
.scn-god-is-not-the-author-of-evil .light-above { position:absolute; top:10%; left:30%; right:30%; height:30%; background:radial-gradient(ellipse at 50% 0%, #ffe0a033 0%, transparent 100%); animation: gne-light 12s ease-in-out infinite; }
.scn-god-is-not-the-author-of-evil .shadow-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, transparent 0%, #00000066 100%); animation: gne-ground 20s linear infinite; }
.scn-god-is-not-the-author-of-evil .particle-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background:#ffe0a0; border-radius:50%; box-shadow: 0 0 6px 2px #ffe0a080; animation: gne-particle-a 7s ease-in-out infinite; }
.scn-god-is-not-the-author-of-evil .particle-b { position:absolute; top:40%; right:25%; width:3px; height:3px; background:#ffe0a0; border-radius:50%; box-shadow: 0 0 4px 1px #ffe0a080; animation: gne-particle-b 9s ease-in-out infinite 2s; }
@keyframes gne-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gne-cask { 0% { transform:rotate(-5deg) scale(1) } 50% { transform:rotate(-2deg) scale(1.02) } 100% { transform:rotate(-6deg) scale(0.98) } }
@keyframes gne-figure { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(1px) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(0.5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes gne-scale { 0% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(3deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes gne-light { 0% { opacity:0.5; transform:scaleY(0.9) } 50% { opacity:0.9; transform:scaleY(1.1) } 100% { opacity:0.6; transform:scaleY(0.95) } }
@keyframes gne-ground { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes gne-particle-a { 0% { transform:translate(0,0); opacity:0 } 20% { opacity:1 } 50% { transform:translate(10px,-15px); opacity:0.8 } 100% { transform:translate(20px,-30px); opacity:0 } }
@keyframes gne-particle-b { 0% { transform:translate(0,0); opacity:0 } 30% { opacity:1 } 60% { transform:translate(-8px,-12px); opacity:0.7 } 100% { transform:translate(-15px,-25px); opacity:0 } }

/* Scene 1: education-music-and-gymnastic – sunlit calm */
.scn-education-music-and-gymnastic {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #fffacd 100%), radial-gradient(ellipse at 70% 30%, #ffd700 0%, transparent 50%);
}
.scn-education-music-and-gymnastic .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: edm-sky 12s ease-in-out infinite alternate;
}
.scn-education-music-and-gymnastic .bg-sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5bb 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  animation: edm-sun 8s ease-in-out infinite alternate;
}
.scn-education-music-and-gymnastic .hill {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7ccd7c 0%, #228b22 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,50,0,0.5);
  animation: edm-hill 18s ease-in-out infinite alternate;
}
.scn-education-music-and-gymnastic .figure {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: edm-figure 5s ease-in-out infinite;
}
.scn-education-music-and-gymnastic .dog {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: left center;
  animation: edm-dog 7s ease-in-out infinite;
}
.scn-education-music-and-gymnastic .music-note {
  position: absolute; top: 20%; left: 50%; width: 12px; height: 24px;
  background: radial-gradient(circle at 50% 20%, #333 2px, transparent 2px),
              linear-gradient(180deg, #333 0%, #333 60%, transparent 60%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 0 1px #333;
  animation: edm-music 10s ease-in-out infinite;
}
@keyframes edm-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes edm-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes edm-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes edm-figure { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(0) translateY(-5px) } 50% { transform: rotate(5deg) translateY(-3px) } 75% { transform: rotate(0) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes edm-dog { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(3deg) translateX(5px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes edm-music { 0% { transform: translate(0, 0) rotate(0) scale(1) } 50% { transform: translate(10px, -8px) rotate(10deg) scale(1.1) } 100% { transform: translate(0, 0) rotate(0) scale(1) } }

/* Scene 2: censorship-of-stories – dim interior tense */
.scn-censorship-of-stories {
  background: linear-gradient(180deg, #2c1e3e 0%, #1a1220 60%, #0d0a12 100%), radial-gradient(ellipse at 50% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-censorship-of-stories .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1220 0%, #2c1e3e 50%, #0d0a12 100%);
  animation: cen-room 4s ease-in-out infinite alternate;
}
.scn-censorship-of-stories .window-light {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #ffeb99 0%, #b08040 60%, transparent 80%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,0.4);
  animation: cen-window 3s ease-in-out infinite alternate;
}
.scn-censorship-of-stories .guardian {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1220 0%, #0d0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: cen-guardian 5s ease-in-out infinite;
}
.scn-censorship-of-stories .books {
  position: absolute; bottom: 10%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #6b4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cen-books 6s ease-in-out infinite;
}
.scn-censorship-of-stories .censor-stamp {
  position: absolute; top: 50%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8553d 30%, #a0461a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px #a0461a;
  animation: cen-stamp 2s ease-in-out infinite;
}
.scn-censorship-of-stories .shadow-strip {
  position: absolute; left: 10%; right: 10%; top: 0; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  animation: cen-shadow 8s linear infinite alternate;
}
@keyframes cen-room { 0% { opacity:0.9 } 50% { opacity:0.8 } 100% { opacity:0.95 } }
@keyframes cen-window { 0% { box-shadow: 0 0 30px 15px #b08040 } 50% { box-shadow: 0 0 50px 25px #ffeb99 } 100% { box-shadow: 0 0 35px 18px #b08040 } }
@keyframes cen-guardian { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cen-books { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes cen-stamp { 0% { transform: scale(0) rotate(0) } 50% { transform: scale(1.2) rotate(15deg) } 100% { transform: scale(0.8) rotate(-5deg) } }
@keyframes cen-shadow { 0% { transform: translateX(-10%) } 50% { transform: translateX(0) } 100% { transform: translateX(10%) } }

/* Scene 3: tales-about-the-gods – dim interior tense */
.scn-tales-about-the-gods {
  background: linear-gradient(180deg, #2b1a2e 0%, #1a0f1c 60%, #0f0711 100%), radial-gradient(ellipse at 40% 70%, #4a2a3e 0%, transparent 60%);
}
.scn-tales-about-the-gods .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0f1c 0%, #2b1a2e 50%, #1a0f1c 100%);
  animation: tal-room 4s ease-in-out infinite alternate;
}
.scn-tales-about-the-gods .lamp {
  position: absolute; top: 20%; left: 15%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #ffd680 0%, #b08040 60%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 15px #b08040;
  animation: tal-lamp 3s ease-in-out infinite alternate;
}
.scn-tales-about-the-gods .teacher {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a0f1c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tal-teacher 6s ease-in-out infinite;
}
.scn-tales-about-the-gods .child1 {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a3a4e 0%, #3a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: tal-child1 8s ease-in-out infinite;
}
.scn-tales-about-the-gods .child2 {
  position: absolute; bottom: 12%; left: 60%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #4a2a3e 0%, #2a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: tal-child2 7s ease-in-out infinite;
}
.scn-tales-about-the-gods .scroll {
  position: absolute; top: 35%; left: 50%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #c8b08a 0%, #a08060 50%, #c8b08a 100%);
  border-radius: 20% / 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tal-scroll 12s ease-in-out infinite;
}
.scn-tales-about-the-gods .lyre {
  position: absolute; top: 25%; right: 15%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tal-lyre 5s ease-in-out infinite;
}
@keyframes tal-room { 0% { opacity:0.85 } 50% { opacity:0.75 } 100% { opacity:0.9 } }
@keyframes tal-lamp { 0% { box-shadow: 0 0 20px 10px #b08040 } 50% { box-shadow: 0 0 40px 20px #ffd680 } 100% { box-shadow: 0 0 25px 12px #b08040 } }
@keyframes tal-teacher { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes tal-child1 { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes tal-child2 { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes tal-scroll { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) translateX(-5px) } 100% { transform: scaleX(1) } }
@keyframes tal-lyre { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }

/* Scene 4: homer-and-hesiod-censored – dim interior tense overhead */
.scn-homer-and-hesiod-censored {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 60%, #0f0707 100%), radial-gradient(ellipse at 50% 50%, #3a2020 0%, transparent 60%);
}
.scn-homer-and-hesiod-censored .desk-bg {
  position: absolute; inset: 20% 10% 10% 10%;
  background: linear-gradient(135deg, #4a2a2a 0%, #3a1a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: hom-desk 6s ease-in-out infinite alternate;
}
.scn-homer-and-hesiod-censored .scroll-paper {
  position: absolute; top: 30%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #d2b48c 0%, #c8a07a 100%);
  border-radius: 2px 2px 20px 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hom-scroll 8s ease-in-out infinite;
}
.scn-homer-and-hesiod-censored .hand-quill {
  position: absolute; bottom: 35%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #c8b08a 0%, #8a6a4a 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hom-hand 2s ease-in-out infinite;
}
.scn-homer-and-hesiod-censored .censor-mark {
  position: absolute; top: 40%; left: 50%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 100%);
  clip-path: polygon(20% 0%, 80% 0%, 50% 50%, 80% 100%, 20% 100%, 50% 50%);
  animation: hom-mark 4s ease-in-out infinite;
}
.scn-homer-and-hesiod-censored .ink-blot {
  position: absolute; bottom: 20%; right: 20%; width: 16px; height: 16px;
  background: radial-gradient(circle, #2a1a1a 50%, #4a2a2a 80%, transparent 100%);
  border-radius: 50%;
  animation: hom-ink 3s ease-in-out infinite;
}
@keyframes hom-desk { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes hom-scroll { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hom-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes hom-mark { 0% { opacity:0.6; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes hom-ink { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }

/* ----------------- the-guardian-dog ----------------- */
.scn-the-guardian-dog {
  background: linear-gradient(180deg, #f2e0b0 0%, #d4a050 40%, #b87a30 100%),
              radial-gradient(ellipse at 20% 80%, #f7e7c8 0%, transparent 60%);
}
.scn-the-guardian-dog .gd-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #e2c68a 60%, transparent 100%);
  animation: gd-sky 20s ease-in-out infinite alternate;
}
.scn-the-guardian-dog .gd-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a5a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-the-guardian-dog .gd-wall {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(90deg, #c8a86a, #b08850, #c8a86a);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
  animation: gd-wall 12s ease-in-out infinite;
}
.scn-the-guardian-dog .gd-gate {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5020 0%, #4a3810 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  border: 4px solid #8a6a30;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: gd-gate 8s ease-in-out infinite;
}
.scn-the-guardian-dog .gd-dog {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gd-dog 4s ease-in-out infinite;
}
.scn-the-guardian-dog .gd-shadow {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: gd-shadow 4s ease-in-out infinite alternate;
}
.scn-the-guardian-dog .gd-lamp {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 6px #ffc060, 0 0 60px 15px rgba(255,192,96,0.3);
  animation: gd-lamp 3s ease-in-out infinite alternate;
}
@keyframes gd-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gd-wall { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes gd-gate { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes gd-dog { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-1px) 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(-1deg); } }
@keyframes gd-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(0.9); } }
@keyframes gd-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 4px #b08040; } 50% { opacity:1; box-shadow: 0 0 40px 10px #ffd080; } 100% { opacity:0.9; box-shadow: 0 0 25px 5px #b08040; } }

/* ----------------- the-philosophical-dog ----------------- */
.scn-the-philosophical-dog {
  background: linear-gradient(135deg, #d4c08a 0%, #b09860 50%, #8a7a4a 100%),
              radial-gradient(ellipse at 30% 60%, #f0e0b0 0%, transparent 70%);
}
.scn-the-philosophical-dog .pd-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b890 0%, #a89870 100%);
  border-radius: 8px 8px 0 0;
  animation: pd-wall 15s ease-in-out infinite;
}
.scn-the-philosophical-dog .pd-window {
  position: absolute; top: 12%; left: 8%; width: 40%; height: 40%;
  background: linear-gradient(135deg, #c0e0ff 0%, #e0f0ff 50%, #b0d0f0 100%);
  border: 6px solid #8a7a5a;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: pd-window 10s ease-in-out infinite alternate;
}
.scn-the-philosophical-dog .pd-bookshelf {
  position: absolute; top: 10%; right: 8%; width: 25%; height: 70%;
  background: linear-gradient(90deg, #6a5a3a 0%, #5a4a2a 50%, #7a6a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: pd-bookshelf 20s ease-in-out infinite;
}
.scn-the-philosophical-dog .pd-desk {
  position: absolute; bottom: 15%; left: 15%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pd-desk 6s ease-in-out infinite;
}
.scn-the-philosophical-dog .pd-chair {
  position: absolute; bottom: 16%; left: 20%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pd-chair 5s ease-in-out infinite;
}
.scn-the-philosophical-dog .pd-dog {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a12 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pd-dog 7s ease-in-out infinite;
}
.scn-the-philosophical-dog .pd-sunbeam {
  position: absolute; top: 10%; left: 20%; width: 15%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0.05) 100%);
  filter: blur(12px);
  animation: pd-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes pd-wall { 0%,100% { opacity:1; } 50% { opacity:0.95; } }
@keyframes pd-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pd-bookshelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pd-desk { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.97); } 100% { transform: scaleX(1); } }
@keyframes pd-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes pd-dog { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pd-sunbeam { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* ----------------- the-guardian-must-be-gentle-and-fierce ----------------- */
.scn-the-guardian-must-be-gentle-and-fierce {
  background: linear-gradient(135deg, #d4c0a0 0%, #b89870 50%, #9a7a5a 100%),
              radial-gradient(ellipse at 80% 20%, #e8d0b0 0%, transparent 60%);
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%);
  animation: gf-bg 15s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-body {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gf-body 6s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-head {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: gf-head 5s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-ear-l {
  position: absolute; bottom: 56%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #3a2a12 0%, #1a0e04 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: gf-ear-l 3s ease-in-out infinite alternate;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-ear-r {
  position: absolute; bottom: 56%; right: 42%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a12 0%, #1a0e04 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: gf-ear-r 3.5s ease-in-out infinite alternate;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-eye-l {
  position: absolute; bottom: 48%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0d080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffd060;
  animation: gf-eye-l 2s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-eye-r {
  position: absolute; bottom: 48%; right: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0d080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffd060;
  animation: gf-eye-r 2.5s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-paw-l {
  position: absolute; bottom: 12%; left: 40%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40%;
  animation: gf-paw-l 4s ease-in-out infinite;
}
.scn-the-guardian-must-be-gentle-and-fierce .gf-paw-r {
  position: absolute; bottom: 12%; right: 40%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40%;
  animation: gf-paw-r 4.5s ease-in-out infinite;
}
@keyframes gf-bg { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes gf-body { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.96); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes gf-head { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gf-ear-l { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-12deg); } }
@keyframes gf-ear-r { 0% { transform: rotate(15deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(12deg); } }
@keyframes gf-eye-l { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes gf-eye-r { 0%,100% { opacity:0.9; } 50% { opacity:0.6; } }
@keyframes gf-paw-l { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes gf-paw-r { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* ----------------- the-dog-is-a-philosopher ----------------- */
.scn-the-dog-is-a-philosopher {
  background: linear-gradient(180deg, #b8d0e0 0%, #d0c8a0 40%, #a0a080 100%),
              radial-gradient(ellipse at 70% 30%, #e0e0c0 0%, transparent 60%);
}
.scn-the-dog-is-a-philosopher .dp-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #d0d8b0 70%, transparent 100%);
  animation: dp-sky 25s ease-in-out infinite alternate;
}
.scn-the-dog-is-a-philosopher .dp-trunk {
  position: absolute; bottom: 0; left: 30%; width: 12%; height: 100%;
  background: linear-gradient(90deg, #6a5a3a, #5a4a2a, #7a6a4a);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.3);
  animation: dp-trunk 20s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-branch {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%);
  border-radius: 40% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dp-branch 18s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-books {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #c8a86a, #b09050, #a08040);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: dp-books 7s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-dog {
  position: absolute; bottom: 14%; left: 50%; width: 35px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dp-dog 6s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-scroll {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0b090 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dp-scroll 10s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-leaf {
  position: absolute; top: 12%; left: 25%; width: 12px; height: 16px;
  background: linear-gradient(135deg, #8aaa40 0%, #6a8a2a 100%);
  border-radius: 70% 0 70% 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dp-leaf 8s ease-in-out infinite;
}
.scn-the-dog-is-a-philosopher .dp-shadow {
  position: absolute; bottom: 8%; left: 50%; width: 60px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: dp-shadow 6s ease-in-out infinite alternate;
}
@keyframes dp-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dp-trunk { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes dp-branch { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes dp-books { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dp-dog { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes dp-scroll { 0%,100% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(0.97); } }
@keyframes dp-leaf { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-2px) rotate(5deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dp-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(0.9); } }

/* Scene: justice-and-partnerships (jp) – dim interior, calm mood */
.scn-justice-and-partnerships {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e00 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-justice-and-partnerships .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a4a3a 0%, transparent 50%);
  opacity: 0.3;
  animation: jp-bg 20s ease-in-out infinite alternate;
}
.scn-justice-and-partnerships .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle, #b08040 0%, #6a4a2a 70%);
  border-radius: 10% / 15%;
  box-shadow: inset 0 0 20px #1a0e00, 0 0 30px 10px rgba(176,128,64,0.3);
  animation: jp-window 8s ease-in-out infinite;
}
.scn-justice-and-partnerships .table {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0;
  transform: perspective(200px) rotateX(30deg);
  animation: jp-table 15s ease-in-out infinite;
}
.scn-justice-and-partnerships .board {
  position: absolute; bottom: 23%; left: 32%; width: 80px; height: 80px;
  background: linear-gradient(45deg, #8a6a4a 25%, #3a2a1a 25%, #3a2a1a 50%, #8a6a4a 50%, #8a6a4a 75%, #3a2a1a 75%);
  background-size: 20px 20px;
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0,0,0,0.6);
  animation: jp-board 12s ease-in-out infinite alternate;
}
.scn-justice-and-partnerships .piece1,
.scn-justice-and-partnerships .piece2 {
  width: 16px; height: 16px; border-radius: 50%;
  position: absolute; bottom: 27%;
}
.scn-justice-and-partnerships .piece1 {
  left: 34%; background: radial-gradient(circle at 40% 35%, #b08060 0%, #6a4a2a 100%);
  animation: jp-piece1 6s ease-in-out infinite;
}
.scn-justice-and-partnerships .piece2 {
  left: 37%; background: radial-gradient(circle at 40% 35%, #c8a080 0%, #8a6a4a 100%);
  animation: jp-piece2 6s ease-in-out infinite 0.5s;
}
.scn-justice-and-partnerships .figure1,
.scn-justice-and-partnerships .figure2 {
  position: absolute; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-justice-and-partnerships .figure1 {
  bottom: 15%; left: 23%;
  animation: jp-figure1 8s ease-in-out infinite;
}
.scn-justice-and-partnerships .figure2 {
  bottom: 15%; left: 48%;
  animation: jp-figure2 8s ease-in-out infinite 1s;
}
.scn-justice-and-partnerships .lamp {
  position: absolute; top: 30%; right: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #6a4a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.5);
  animation: jp-lamp 4s ease-in-out infinite alternate;
}

@keyframes jp-bg { 0%{ opacity:0.2; } 50%{ opacity:0.35; } 100%{ opacity:0.2; } }
@keyframes jp-window { 0%{ box-shadow: inset 0 0 20px #1a0e00, 0 0 30px 10px rgba(176,128,64,0.3); } 50%{ box-shadow: inset 0 0 30px #1a0e00, 0 0 50px 20px rgba(176,128,64,0.5); } 100%{ box-shadow: inset 0 0 20px #1a0e00, 0 0 30px 10px rgba(176,128,64,0.3); } }
@keyframes jp-table { 0%{ transform: perspective(200px) rotateX(30deg) translateY(0); } 50%{ transform: perspective(200px) rotateX(30deg) translateY(-2px); } 100%{ transform: perspective(200px) rotateX(30deg) translateY(0); } }
@keyframes jp-board { 0%{ transform: scale(1); } 50%{ transform: scale(1.02); } 100%{ transform: scale(1); } }
@keyframes jp-piece1 { 0%{ transform: translateY(0); } 25%{ transform: translateY(-4px); } 50%{ transform: translateY(0); } 75%{ transform: translateY(-4px); } 100%{ transform: translateY(0); } }
@keyframes jp-piece2 { 0%{ transform: translateY(0); } 50%{ transform: translateY(-4px); } 100%{ transform: translateY(0); } }
@keyframes jp-figure1 { 0%{ transform: translateX(0) rotate(-1deg); } 50%{ transform: translateX(5px) rotate(1deg); } 100%{ transform: translateX(0) rotate(-1deg); } }
@keyframes jp-figure2 { 0%{ transform: translateX(0) rotate(1deg); } 50%{ transform: translateX(-5px) rotate(-1deg); } 100%{ transform: translateX(0) rotate(1deg); } }
@keyframes jp-lamp { 0%{ transform: scaleY(1) rotate(-2deg); opacity:0.8; } 50%{ transform: scaleY(1.05) rotate(2deg); opacity:1; } 100%{ transform: scaleY(1) rotate(-2deg); opacity:0.8; } }

/* Scene: justice-for-keeping (jk) – dim interior, calm mood */
.scn-justice-for-keeping {
  background:
    linear-gradient(180deg, #2a2010 0%, #1a1008 30%, #0e0a04 100%),
    radial-gradient(ellipse at 50% 80%, #3a2815 0%, transparent 60%);
}
.scn-justice-for-keeping .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, transparent 50%);
  opacity: 0.2;
  animation: jk-bg 25s ease-in-out infinite alternate;
}
.scn-justice-for-keeping .chest {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: jk-chest 12s ease-in-out infinite;
}
.scn-justice-for-keeping .lid {
  position: absolute; bottom: calc(20% + 60px); left: 20%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 0 0;
  transform-origin: bottom center;
  animation: jk-lid 8s ease-in-out infinite alternate;
}
.scn-justice-for-keeping .coins {
  position: absolute; bottom: 17%; left: 28%; width: 40px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #c8a040 0%, #8a6a20 100%);
  border-radius: 50% / 100%;
  box-shadow: 0 0 10px 5px rgba(200,160,64,0.4);
  animation: jk-coins 6s ease-in-out infinite;
}
.scn-justice-for-keeping .guard {
  position: absolute; bottom: 25%; right: 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: jk-guard 10s ease-in-out infinite;
}
.scn-justice-for-keeping .lantern {
  position: absolute; top: 20%; right: 30%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffc060 0%, #b07030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,192,96,0.5);
  animation: jk-lantern 5s ease-in-out infinite alternate;
}
.scn-justice-for-keeping .glow {
  position: absolute; top: 18%; right: 28%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,192,96,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: jk-glow 5s ease-in-out infinite alternate;
}

@keyframes jk-bg { 0%{ opacity:0.15; } 50%{ opacity:0.25; } 100%{ opacity:0.15; } }
@keyframes jk-chest { 0%{ transform: translateY(0) scale(1); } 50%{ transform: translateY(-2px) scale(1.02); } 100%{ transform: translateY(0) scale(1); } }
@keyframes jk-lid { 0%{ transform: rotateX(0deg); } 50%{ transform: rotateX(-10deg); } 100%{ transform: rotateX(0deg); } }
@keyframes jk-coins { 0%{ transform: translateX(0) rotate(0deg); } 50%{ transform: translateX(3px) rotate(10deg); } 100%{ transform: translateX(0) rotate(0deg); } }
@keyframes jk-guard { 0%{ transform: translateY(0) rotate(-1deg); } 50%{ transform: translateY(-3px) rotate(1deg); } 100%{ transform: translateY(0) rotate(-1deg); } }
@keyframes jk-lantern { 0%{ box-shadow: 0 0 20px 5px rgba(255,192,96,0.4); opacity:0.8; } 50%{ box-shadow: 0 0 40px 15px rgba(255,192,96,0.7); opacity:1; } 100%{ box-shadow: 0 0 20px 5px rgba(255,192,96,0.4); opacity:0.8; } }
@keyframes jk-glow { 0%{ transform: scale(0.8); opacity:0.6; } 50%{ transform: scale(1.2); opacity:1; } 100%{ transform: scale(0.8); opacity:0.6; } }

/* Scene: justice-as-a-kind-of-theft (jt) – dim interior, funny mood */
.scn-justice-as-a-kind-of-theft {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e00 100%),
    radial-gradient(ellipse at 70% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-justice-as-a-kind-of-theft .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a4a3a 0%, transparent 50%);
  opacity: 0.3;
  animation: jt-bg 22s ease-in-out infinite alternate;
}
.scn-justice-as-a-kind-of-theft .tent {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: jt-tent 14s ease-in-out infinite;
}
.scn-justice-as-a-kind-of-theft .guard {
  position: absolute; bottom: 20%; left: 25%; width: 20px; 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: jt-guard 6s ease-in-out infinite;
}
.scn-justice-as-a-kind-of-theft .thief {
  position: absolute; bottom: 20%; left: 5%; width: 18px; 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: jt-thief 4s ease-in-out infinite;
}
.scn-justice-as-a-kind-of-theft .shield {
  position: absolute; bottom: 25%; left: 15%; width: 24px; height: 32px;
  background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: jt-shield 8s ease-in-out infinite alternate;
}
.scn-justice-as-a-kind-of-theft .lyre {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  transform: rotate(15deg);
  animation: jt-lyre 4s ease-in-out infinite alternate;
}
.scn-justice-as-a-kind-of-theft .campfire {
  position: absolute; bottom: 15%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #ff6020 0%, #ff4010 30%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,96,32,0.5);
  animation: jt-fire 2s ease-in-out infinite;
}
.scn-justice-as-a-kind-of-theft .spark1,
.scn-justice-as-a-kind-of-theft .spark2 {
  position: absolute; width: 4px; height: 4px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,128,64,0.8);
}
.scn-justice-as-a-kind-of-theft .spark1 {
  bottom: 30%; left: 56%;
  animation: jt-spark1 1.5s linear infinite;
}
.scn-justice-as-a-kind-of-theft .spark2 {
  bottom: 25%; left: 53%;
  animation: jt-spark2 2s linear infinite 0.5s;
}

@keyframes jt-bg { 0%{ opacity:0.2; } 50%{ opacity:0.35; } 100%{ opacity:0.2; } }
@keyframes jt-tent { 0%{ transform: translateY(0) scaleX(1); } 50%{ transform: translateY(-2px) scaleX(1.02); } 100%{ transform: translateY(0) scaleX(1); } }
@keyframes jt-guard { 0%{ transform: translateY(0) rotate(1deg); } 25%{ transform: translateY(-3px) rotate(-1deg); } 50%{ transform: translateY(0) rotate(1deg); } 75%{ transform: translateY(-3px) rotate(-1deg); } 100%{ transform: translateY(0) rotate(1deg); } }
@keyframes jt-thief { 0%{ transform: translateX(0) rotate(-2deg); } 25%{ transform: translateX(8px) rotate(2deg); } 50%{ transform: translateX(12px) rotate(-1deg); } 75%{ transform: translateX(8px) rotate(1deg); } 100%{ transform: translateX(0) rotate(-2deg); } }
@keyframes jt-shield { 0%{ transform: scale(1) rotate(0deg); } 50%{ transform: scale(1.05) rotate(5deg); } 100%{ transform: scale(1) rotate(0deg); } }
@keyframes jt-lyre { 0%{ transform: rotate(10deg); } 50%{ transform: rotate(20deg); } 100%{ transform: rotate(10deg); } }
@keyframes jt-fire { 0%{ transform: scale(0.9); opacity:0.8; } 50%{ transform: scale(1.1); opacity:1; } 100%{ transform: scale(0.9); opacity:0.8; } }
@keyframes jt-spark1 { 0%{ transform: translateY(0) scale(1); opacity:1; } 100%{ transform: translateY(-40px) scale(0.3); opacity:0; } }
@keyframes jt-spark2 { 0%{ transform: translateY(0) scale(1); opacity:1; } 100%{ transform: translateY(-30px) scale(0.3); opacity:0; } }

/* Scene: homer-and-autolycus (ha) – dim interior, funny mood */
.scn-homer-and-autolycus {
  background:
    linear-gradient(180deg, #2a2010 0%, #1a1008 50%, #0e0a04 100%),
    radial-gradient(ellipse at 20% 50%, #3a2815 0%, transparent 60%);
}
.scn-homer-and-autolycus .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, transparent 50%);
  opacity: 0.2;
  animation: ha-bg 30s ease-in-out infinite alternate;
}
.scn-homer-and-autolycus .figure {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure 5s ease-in-out infinite;
}
.scn-homer-and-autolycus .moneybag {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #b08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ha-bag 4s ease-in-out infinite alternate;
}
.scn-homer-and-autolycus .campfire {
  position: absolute; bottom: 10%; left: 15%; width: 50px; height: 35px;
  background: radial-gradient(circle at 50% 100%, #ff6020 0%, #ff4010 30%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,96,32,0.5);
  animation: ha-fire 3s ease-in-out infinite;
}
.scn-homer-and-autolycus .shadow {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ha-shadow 8s ease-in-out infinite;
}
.scn-homer-and-autolycus .sneak-line {
  position: absolute; bottom: 24%; left: 25%; width: 80px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #8a6a4a 20%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ha-sneak 4s linear infinite;
}

@keyframes ha-bg { 0%{ opacity:0.15; } 50%{ opacity:0.25; } 100%{ opacity:0.15; } }
@keyframes ha-figure { 0%{ transform: translateX(0) rotate(0deg); } 25%{ transform: translateX(10px) rotate(-2deg); } 50%{ transform: translateX(20px) rotate(2deg); } 75%{ transform: translateX(10px) rotate(-2deg); } 100%{ transform: translateX(0) rotate(0deg); } }
@keyframes ha-bag { 0%{ transform: scaleY(1) rotate(0deg); } 50%{ transform: scaleY(1.1) rotate(-5deg); } 100%{ transform: scaleY(1) rotate(0deg); } }
@keyframes ha-fire { 0%{ transform: scale(0.9); opacity:0.8; } 50%{ transform: scale(1.15); opacity:1; } 100%{ transform: scale(0.9); opacity:0.8; } }
@keyframes ha-shadow { 0%{ opacity:0.4; transform: scaleX(-1) translateY(0); } 50%{ opacity:0.7; transform: scaleX(-1) translateY(-5px); } 100%{ opacity:0.4; transform: scaleX(-1) translateY(0); } }
@keyframes ha-sneak { 0%{ transform: translateX(-30px); opacity:0; } 20%{ opacity:1; } 80%{ opacity:1; } 100%{ transform: translateX(100px); opacity:0; } }

.scn-wisdom-in-the-state { background: linear-gradient(180deg, #b3d9ff 0%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 60%); }
.scn-wisdom-in-the-state .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b3d9ff 0%, transparent 100%); animation: wis-sky 12s ease-in-out infinite alternate; }
.scn-wisdom-in-the-state .sun { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; animation: wis-sun 6s ease-in-out infinite alternate; }
.scn-wisdom-in-the-state .cloud { position:absolute; top:20%; left:20%; width:90px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(6px); animation: wis-cloud 35s linear infinite; }
.scn-wisdom-in-the-state .pediment { position:absolute; top:25%; left:50%; transform:translateX(-50%); width:200px; height:60px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-wisdom-in-the-state .col-a, .scn-wisdom-in-the-state .col-b, .scn-wisdom-in-the-state .col-c { position:absolute; top:38%; width:12px; height:120px; background: linear-gradient(180deg, #e8c39e 0%, #c3a07a 100%); border-radius:6px 6px 0 0; transform-origin: top center; }
.scn-wisdom-in-the-state .col-a { left:43%; }
.scn-wisdom-in-the-state .col-b { left:50%; margin-left:-6px; }
.scn-wisdom-in-the-state .col-c { left:55%; }
.scn-wisdom-in-the-state .steps { position:absolute; bottom:25%; left:40%; width:200px; height:40px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius:10% 10% 0 0; box-shadow: 0 -6px 10px rgba(0,0,0,0.2); }
.scn-wisdom-in-the-state .owl-body { position:absolute; bottom:26%; left:47%; width:30px; height:40px; background: linear-gradient(180deg, #8B4513 0%, #5c2e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wis-owl-b 4s ease-in-out infinite; }
.scn-wisdom-in-the-state .owl-head { position:absolute; bottom:41%; left:47.5%; width:20px; height:20px; background: #5c2e0e; border-radius:50%; box-shadow: 0 -4px 0 2px #8B4513; animation: wis-owl-h 4s ease-in-out infinite; }
@keyframes wis-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wis-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes wis-cloud { 0% { transform: translateX(-60px); opacity:0.5 } 50% { opacity:0.8 } 100% { transform: translateX(120vw); opacity:0.2 } }
@keyframes wis-owl-b { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wis-owl-h { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes wis-pediment { 0% { transform: translateX(-50%) } } /* unused but placeholder */

.scn-courage-in-the-state { background: linear-gradient(180deg, #b3d9ff 0%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 10%, #fff8dc 0%, transparent 70%); }
.scn-courage-in-the-state .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b3d9ff 0%, transparent 100%); animation: cou-sky 14s ease-in-out infinite alternate; }
.scn-courage-in-the-state .sun { position:absolute; top:12%; left:80%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; animation: cou-sun 8s ease-in-out infinite alternate; }
.scn-courage-in-the-state .cloud { position:absolute; top:22%; left:30%; width:70px; height:16px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(5px); animation: cou-cloud 40s linear infinite; }
.scn-courage-in-the-state .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: cou-hills 18s ease-in-out infinite alternate; }
.scn-courage-in-the-state .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); }
.scn-courage-in-the-state .soldier { position:absolute; bottom:30%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #2f1e0f 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cou-soldier 6s ease-in-out infinite; }
.scn-courage-in-the-state .shield { position:absolute; bottom:40%; left:46%; width:30px; height:30px; background: radial-gradient(circle, #e8c39e 0%, #c3a07a 100%); border-radius:50%; border: 2px solid #8B4513; animation: cou-shield 6s ease-in-out infinite; }
.scn-courage-in-the-state .spear { position:absolute; bottom:55%; left:44%; width:4px; height:70px; background: linear-gradient(180deg, #8B4513 0%, #5c2e0e 100%); border-radius:2px; transform-origin: bottom center; animation: cou-spear 6s ease-in-out infinite; }
@keyframes cou-sky { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.75; transform: scaleY(1) } }
@keyframes cou-sun { 0% { transform: scale(1) rotate(0deg); opacity:0.9 } 50% { transform: scale(1.1) rotate(5deg); opacity:1 } 100% { transform: scale(0.95) rotate(-5deg); opacity:0.8 } }
@keyframes cou-cloud { 0% { transform: translateX(-50px) } 50% { transform: translateX(50vw) translateY(2px) } 100% { transform: translateX(130vw) } }
@keyframes cou-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cou-soldier { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cou-shield { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cou-spear { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

.scn-the-dyers-analogy { background: linear-gradient(180deg, #d2b48c 0%, #8B7355 40%, #5c4033 100%), radial-gradient(ellipse at 50% 50%, #f5deb3 0%, transparent 70%); }
.scn-the-dyers-analogy .bg-wall { position:absolute; inset:0 60% 0 0; background: linear-gradient(90deg, #8B7355 0%, #5c4033 100%); }
.scn-the-dyers-analogy .window { position:absolute; top:20%; left:10%; width:50px; height:60px; background: radial-gradient(circle at 50% 50%, #b3d9ff 0%, #87ceeb 70%); border-radius:10%; box-shadow: 0 0 20px rgba(135,206,235,0.5); animation: dya-window 5s ease-in-out infinite alternate; }
.scn-the-dyers-analogy .sunbeam { position:absolute; top:20%; left:10%; width:200px; height:400px; background: linear-gradient(135deg, rgba(255,248,220,0.3) 0%, transparent 100%); transform-origin: top left; animation: dya-beam 10s ease-in-out infinite; }
.scn-the-dyers-analogy .vat { position:absolute; bottom:20%; left:30%; width:120px; height:100px; background: radial-gradient(ellipse at 50% 40%, #8B4513 0%, #5c2e0e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
.scn-the-dyers-analogy .liquid { position:absolute; bottom:25%; left:32%; width:100px; height:60px; background: radial-gradient(ellipse at 50% 50%, #4169E1 0%, #00008B 100%); border-radius:50%; opacity:0.8; animation: dya-liquid 4s ease-in-out infinite; }
.scn-the-dyers-analogy .cloth { position:absolute; bottom:45%; left:35%; width:100px; height:40px; background: linear-gradient(180deg, #4169E1 0%, #00008B 100%); border-radius:10px 10px 50% 50%; transform-origin: bottom center; animation: dya-cloth 6s ease-in-out infinite; }
.scn-the-dyers-analogy .steam { position:absolute; bottom:55%; left:40%; width:40px; height:20px; background: rgba(255,255,255,0.3); border-radius:50%; filter: blur(8px); animation: dya-steam 8s ease-in-out infinite; }
.scn-the-dyers-analogy .worker { position:absolute; bottom:22%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #2f1e0f 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dya-worker 5s ease-in-out infinite; }
.scn-the-dyers-analogy .pole { position:absolute; bottom:40%; left:56%; width:4px; height:60px; background: linear-gradient(180deg, #8B4513 0%, #5c2e0e 100%); border-radius:2px; transform-origin: bottom center; animation: dya-pole 5s ease-in-out infinite; }
@keyframes dya-window { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes dya-beam { 0% { transform: rotate(-5deg) scale(1); opacity:0.5 } 50% { transform: rotate(5deg) scale(1.1); opacity:0.8 } 100% { transform: rotate(-5deg) scale(1); opacity:0.5 } }
@keyframes dya-liquid { 0% { transform: scale(1) translateY(0); border-radius:50% } 50% { transform: scale(1.02) translateY(-2px); border-radius:45% } 100% { transform: scale(1) translateY(0); border-radius:50% } }
@keyframes dya-cloth { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dya-steam { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2 } 100% { transform: translateY(0) scale(1); opacity:0.6 } }
@keyframes dya-worker { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dya-pole { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

.scn-courage-defined { background: linear-gradient(180deg, #b3d9ff 0%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 70%); }
.scn-courage-defined .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b3d9ff 0%, transparent 100%); animation: cde-sky 16s ease-in-out infinite alternate; }
.scn-courage-defined .sun { position:absolute; top:15%; left:75%; width:55px; height:55px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; animation: cde-sun 7s ease-in-out infinite alternate; }
.scn-courage-defined .col-a, .scn-courage-defined .col-b, .scn-courage-defined .col-c { position:absolute; top:30%; width:10px; height:130px; background: linear-gradient(180deg, #e8c39e 0%, #c3a07a 100%); border-radius:5px 5px 0 0; transform-origin: top center; }
.scn-courage-defined .col-a { left:20%; animation: cde-col 4s ease-in-out infinite; }
.scn-courage-defined .col-b { left:50%; margin-left:-5px; animation: cde-col 4s ease-in-out infinite 1s; }
.scn-courage-defined .col-c { left:75%; animation: cde-col 4s ease-in-out infinite 2s; }
.scn-courage-defined .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); }
.scn-courage-defined .athlete-body { position:absolute; bottom:30%; left:40%; width:25px; height:60px; background: linear-gradient(180deg, #2f1e0f 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cde-athlete 3s ease-in-out infinite; }
.scn-courage-defined .athlete-arm { position:absolute; bottom:45%; left:43%; width:8px; height:30px; background: linear-gradient(180deg, #2f1e0f 0%, #1a0f06 100%); border-radius:4px; transform-origin: top left; animation: cde-arm 3s ease-in-out infinite; }
.scn-courage-defined .lyre { position:absolute; bottom:47%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #8B4513 0%, #5c2e0e 100%); border-radius: 20% 20% 40% 40% / 30% 30% 40% 40%; transform-origin: bottom center; animation: cde-lyre 5s ease-in-out infinite; }
@keyframes cde-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes cde-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes cde-col { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cde-athlete { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cde-arm { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(-40deg) translate(-5px, -10px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes cde-lyre { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(-3deg); } }

/* SCENE: piraeus-festival-arrival */
.scn-piraeus-festival-arrival {
  background: linear-gradient(180deg, #2a4a7a 0%, #7ab0e0 40%, #ffcc80 100%), radial-gradient(circle at 70% 20%, #fff5e0 0%, transparent 60%);
}
.scn-piraeus-festival-arrival .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, transparent 0%, #b0d4f0 50%, #ffe0b0 100%);
  animation: pf-sky 10s ease-in-out infinite alternate;
}
.scn-piraeus-festival-arrival .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a3a5a 100%);
  animation: pf-sea 8s ease-in-out infinite;
}
.scn-piraeus-festival-arrival .sun {
  position:absolute; top:12%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 60%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,.6);
  animation: pf-sun 6s ease-in-out infinite alternate;
}
.scn-piraeus-festival-arrival .city-wall {
  position:absolute; bottom:40%; left:5%; width:30%; height:15%;
  background: linear-gradient(90deg, #9a8a7a 0%, #7a6a5a 50%, #8a7a6a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: pf-wall 12s ease-in-out infinite alternate;
}
.scn-piraeus-festival-arrival .ship {
  position:absolute; bottom:30%; left:45%; width:80px; height:30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 30% 0 0 / 0 100% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pf-ship 7s ease-in-out infinite;
}
.scn-piraeus-festival-arrival .temple {
  position:absolute; bottom:35%; left:65%; width:50px; height:40px;
  background: linear-gradient(180deg, #d4c8b0 0%, #b0a090 100%);
  clip-path: polygon(0% 100%, 0% 30%, 50% 0%, 100% 30%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: pf-temple 9s ease-in-out infinite alternate;
}
.scn-piraeus-festival-arrival .cloud-a {
  position:absolute; top:8%; left:10%; width:80px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,0) 100%);
  filter: blur(8px); border-radius:50%;
  animation: pf-cloud-a 40s linear infinite;
}
.scn-piraeus-festival-arrival .cloud-b {
  position:absolute; top:18%; right:10%; width:60px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 100%);
  filter: blur(6px); border-radius:50%;
  animation: pf-cloud-b 50s linear infinite reverse;
}
@keyframes pf-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes pf-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes pf-sun { 0% { box-shadow: 0 0 30px 15px rgba(255,200,100,.5); } 50% { box-shadow: 0 0 50px 25px rgba(255,220,120,.8); } 100% { box-shadow: 0 0 40px 20px rgba(255,200,100,.6); } }
@keyframes pf-wall { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes pf-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pf-temple { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.95; } }
@keyframes pf-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes pf-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* SCENE: compelled-to-stay */
.scn-compelled-to-stay {
  background: linear-gradient(180deg, #7aa0c0 0%, #c0d8e8 50%, #e8c090 100%), radial-gradient(ellipse at 50% 100%, #f0d8a0 0%, transparent 70%);
}
.scn-compelled-to-stay .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a80a0 0%, transparent 100%);
  animation: cs-sky 12s ease-in-out infinite alternate;
}
.scn-compelled-to-stay .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
  animation: cs-ground 9s ease-in-out infinite;
}
.scn-compelled-to-stay .building.left {
  position:absolute; bottom:35%; left:10%; width:25%; height:30%;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 50%, #6a5a4a 100%);
  border-radius: 4px 0 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
  animation: cs-building 11s ease-in-out infinite alternate;
}
.scn-compelled-to-stay .building.right {
  position:absolute; bottom:35%; right:10%; width:30%; height:35%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #7a6a5a 100%);
  border-radius: 0 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,.4);
  animation: cs-building 13s ease-in-out infinite alternate-reverse;
}
.scn-compelled-to-stay .figure.soc {
  position:absolute; bottom:25%; left:35%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cs-figure 5s ease-in-out infinite;
}
.scn-compelled-to-stay .figure.glau {
  position:absolute; bottom:25%; left:42%; width:18px; height:48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cs-figure 5s ease-in-out infinite 1s;
}
.scn-compelled-to-stay .figure.pole {
  position:absolute; bottom:25%; left:55%; width:22px; height:52px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cs-figure 5s ease-in-out infinite 2s;
}
.scn-compelled-to-stay .shadow {
  position:absolute; bottom:28%; left:32%; width:50%; height:6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: cs-shadow 7s ease-in-out infinite;
}
@keyframes cs-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes cs-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs-building { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cs-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cs-shadow { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.1); } 100% { opacity:.5; transform: scaleX(1); } }

/* SCENE: torch-race-promise */
.scn-torch-race-promise {
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 30%, #5a3a1a 60%, #8a5a2a 100%), radial-gradient(ellipse at 50% 30%, #ff8844 0%, transparent 50%);
}
.scn-torch-race-promise .sky-dusk {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 40%, #5a3a1a 100%);
  animation: tr-sky 8s ease-in-out infinite alternate;
}
.scn-torch-race-promise .field {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: tr-field 10s ease-in-out infinite;
}
.scn-torch-race-promise .horse-a {
  position:absolute; bottom:25%; left:15%; width:60px; height:30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 10% 10% 50% / 40% 20% 20% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: tr-horse 4s ease-in-out infinite;
}
.scn-torch-race-promise .horse-b {
  position:absolute; bottom:25%; left:55%; width:60px; height:30px;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 10% 10% 50% / 40% 20% 20% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: tr-horse 4s ease-in-out infinite 1s;
  transform: scaleX(-1);
}
.scn-torch-race-promise .torch-a {
  position:absolute; bottom:30%; left:22%; width:8px; height:20px;
  background: linear-gradient(180deg, #ff6600 0%, #ffaa00 50%, #ffcc66 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 20px 10px #ff8800, 0 0 40px 15px rgba(255,136,0,.4);
  animation: tr-torch 1.5s ease-in-out infinite alternate;
}
.scn-torch-race-promise .torch-b {
  position:absolute; bottom:30%; left:62%; width:8px; height:20px;
  background: linear-gradient(180deg, #ff6600 0%, #ffaa00 50%, #ffcc66 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 20px 10px #ff8800, 0 0 40px 15px rgba(255,136,0,.4);
  animation: tr-torch 1.5s ease-in-out infinite alternate 0.5s;
}
.scn-torch-race-promise .rider-a {
  position:absolute; bottom:38%; left:20%; width:15px; height:25px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: tr-rider 4s ease-in-out infinite;
}
.scn-torch-race-promise .rider-b {
  position:absolute; bottom:38%; left:60%; width:15px; height:25px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: tr-rider 4s ease-in-out infinite 1s;
}
@keyframes tr-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes tr-field { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes tr-horse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr-torch { 0% { opacity:.7; transform: scaleY(1) rotate(-5deg); } 50% { opacity:1; transform: scaleY(1.1) rotate(5deg); } 100% { opacity:.8; transform: scaleY(1) rotate(-5deg); } }
@keyframes tr-rider { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* SCENE: cephalus-welcome */
.scn-cephalus-welcome {
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(circle at 50% 40%, #8a6a3a 0%, transparent 60%);
}
.scn-cephalus-welcome .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: cw-wall 10s ease-in-out infinite alternate;
}
.scn-cephalus-welcome .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.5);
  animation: cw-floor 8s ease-in-out infinite;
}
.scn-cephalus-welcome .lamp {
  position:absolute; top:45%; left:15%; width:24px; height:36px;
  background: radial-gradient(circle at 50% 80%, #ffcc77 0%, #b08040 60%, transparent 70%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px 10px #ffcc77, 0 0 60px 20px rgba(255,200,100,.3);
  animation: cw-lamp 4s ease-in-out infinite alternate;
}
.scn-cephalus-welcome .figure.cephalus {
  position:absolute; bottom:15%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cw-figure 6s ease-in-out infinite;
}
.scn-cephalus-welcome .figure.socrates {
  position:absolute; bottom:18%; left:50%; width:28px; height:55px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cw-figure 6s ease-in-out infinite 1s;
}
.scn-cephalus-welcome .table {
  position:absolute; bottom:8%; left:40%; width:40%; height:12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cw-table 7s ease-in-out infinite;
}
.scn-cephalus-welcome .garland {
  position:absolute; top:12%; left:45%; width:20%; height:8%;
  background: linear-gradient(90deg, #5a8a3a 0%, #3a6a2a 50%, #5a8a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
  animation: cw-garland 5s ease-in-out infinite alternate;
}
@keyframes cw-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes cw-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes cw-lamp { 0% { box-shadow: 0 0 20px 8px #ffcc77, 0 0 40px 15px rgba(255,200,100,.2); } 50% { box-shadow: 0 0 35px 15px #ffdd88, 0 0 70px 30px rgba(255,200,100,.5); } 100% { box-shadow: 0 0 25px 10px #ffcc77, 0 0 50px 20px rgba(255,200,100,.3); } }
@keyframes cw-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cw-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes cw-garland { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }

.scn-merchants-and-hirelings { background: linear-gradient(180deg, #f7e9c0 0%, #d4a853 40%, #b8852a 70%), radial-gradient(ellipse at 50% 100%, #b8852a 0%, transparent 80%); min-height:100%; }
.scn-merchants-and-hirelings .sky       { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d4f0 0%, #f7e9c0 100%); animation: mh-sky 10s ease-in-out infinite alternate; }
.scn-merchants-and-hirelings .ground    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c8a86a 0%, #9a7a4a 100%); border-radius:20% 20% 0 0 / 12% 12% 0 0; box-shadow: inset 0 6px 20px rgba(60,40,10,.35); animation: mh-ground 14s ease-in-out infinite alternate; }
.scn-merchants-and-hirelings .stall     { position:absolute; bottom:32%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #d4b48a 0%, #b8945a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.25); animation: mh-stall 8s ease-in-out infinite; }
.scn-merchants-and-hirelings .goods     { position:absolute; bottom:40%; left:30%; width:40%; height:14%; background: radial-gradient(ellipse at 30% 40%, #c8553d 10%, #a0461a 30%, #7a3a1a 60%, #5a2a0a 100%); border-radius:30% 30% 20% 20%; box-shadow: inset 0 -4px 10px rgba(0,0,0,.3); animation: mh-goods 6s ease-in-out infinite alternate; }
.scn-merchants-and-hirelings .merchant  { position:absolute; bottom:30%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: mh-merchant 5s ease-in-out infinite; }
.scn-merchants-and-hirelings .coin-1    { position:absolute; bottom:46%; left:36%; width:10px; height:10px; background: radial-gradient(circle, #fce8a0 0%, #d4a040 70%); border-radius:50%; box-shadow: 0 0 10px 3px rgba(212,160,64,.5); animation: mh-coin-1 4s ease-in-out infinite; }
.scn-merchants-and-hirelings .coin-2    { position:absolute; bottom:44%; left:54%; width:8px; height:8px; background: radial-gradient(circle, #fce8a0 0%, #d4a040 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(212,160,64,.4); animation: mh-coin-2 4.5s ease-in-out infinite 0.5s; }
@keyframes mh-sky      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mh-ground   { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.005) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mh-stall    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mh-goods    { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes mh-merchant { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mh-coin-1   { 0%,100% { transform: translateY(0) rotate(0) scale(1); opacity:.8 } 50% { transform: translateY(-6px) rotate(180deg) scale(1.1); opacity:1 } }
@keyframes mh-coin-2   { 0%,100% { transform: translateY(0) rotate(0) scale(1); opacity:.8 } 50% { transform: translateY(-5px) rotate(-180deg) scale(1.15); opacity:1 } }

.scn-the-city-of-pigs { background: linear-gradient(180deg, #d8e8c8 0%, #b8d09a 30%, #8ab06a 60%), radial-gradient(ellipse at 50% 100%, #6a9050 0%, transparent 70%); min-height:100%; }
.scn-the-city-of-pigs .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a8c8e8 0%, #d8e8c8 100%); animation: cp-sky 14s ease-in-out infinite alternate; }
.scn-the-city-of-pigs .field  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8ab06a 0%, #5a8040 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,30,0,.25); }
.scn-the-city-of-pigs .path   { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(60,40,10,.2); }
.scn-the-city-of-pigs .cart   { position:absolute; bottom:26%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.25); transform-origin: bottom center; animation: cp-cart 9s ease-in-out infinite; }
.scn-the-city-of-pigs .farmer { position:absolute; bottom:22%; left:20%; width:18px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cp-farmer 7s ease-in-out infinite; }
.scn-the-city-of-pigs .pig-1  { position:absolute; bottom:28%; left:55%; width:28px; height:16px; background: radial-gradient(ellipse at 50% 50%, #e8b8a0 0%, #c88870 60%); border-radius:50% 50% 40% 40%; box-shadow: inset 0 -3px 6px rgba(80,30,10,.2); animation: cp-pig-1 6s ease-in-out infinite; }
.scn-the-city-of-pigs .pig-2  { position:absolute; bottom:26%; left:62%; width:22px; height:13px; background: radial-gradient(ellipse at 50% 50%, #e8b8a0 0%, #c88870 60%); border-radius:50% 50% 40% 40%; box-shadow: inset 0 -3px 6px rgba(80,30,10,.2); animation: cp-pig-2 7s ease-in-out infinite 0.8s; }
.scn-the-city-of-pigs .pig-3  { position:absolute; bottom:30%; left:68%; width:20px; height:11px; background: radial-gradient(ellipse at 50% 50%, #e8b8a0 0%, #c88870 60%); border-radius:50% 50% 40% 40%; box-shadow: inset 0 -3px 6px rgba(80,30,10,.2); animation: cp-pig-3 5.5s ease-in-out infinite 1.5s; }
@keyframes cp-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cp-cart    { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(-1deg) } }
@keyframes cp-farmer  { 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(4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes cp-pig-1   { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(6px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-3deg) } }
@keyframes cp-pig-2   { 0%,100% { 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) } }
@keyframes cp-pig-3   { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(5px) translateY(-1px) rotate(4deg) } 50% { transform: translateX(10px) translateY(0) rotate(0) } 75% { transform: translateX(5px) translateY(-1px) rotate(-4deg) } }

.scn-a-relish-for-the-meal { background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 30%, #b89858 60%), radial-gradient(ellipse at 50% 80%, #8a6a3a 0%, transparent 70%); min-height:100%; }
.scn-a-relish-for-the-meal .table       { position:absolute; bottom:15%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #c8a050 0%, #a08040 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 6px 20px rgba(0,0,0,.3), inset 0 2px 6px rgba(200,160,80,.4); }
.scn-a-relish-for-the-meal .bowl-1      { position:absolute; bottom:38%; left:20%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 40%, #e8c080 0%, #b88840 60%); border-radius:50% 50% 40% 40%; box-shadow: 0 3px 8px rgba(0,0,0,.15), inset 0 -4px 8px rgba(80,50,10,.2); animation: rm-bowl-1 4s ease-in-out infinite alternate; }
.scn-a-relish-for-the-meal .bowl-2      { position:absolute; bottom:42%; left:50%; width:50px; height:25px; background: radial-gradient(ellipse at 50% 40%, #e0c070 0%, #b08050 60%); border-radius:50% 50% 40% 40%; box-shadow: 0 3px 8px rgba(0,0,0,.15), inset 0 -4px 8px rgba(80,50,10,.2); animation: rm-bowl-2 5s ease-in-out infinite alternate 0.3s; }
.scn-a-relish-for-the-meal .jug         { position:absolute; bottom:35%; left:65%; width:30px; height:45px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:30% 30% 20% 20%; box-shadow: 2px 4px 8px rgba(0,0,0,.2); animation: rm-jug 6s ease-in-out infinite; }
.scn-a-relish-for-the-meal .bread       { position:absolute; bottom:42%; left:32%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, #e0b060 0%, #c89040 70%); border-radius:40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.12); animation: rm-bread 7s ease-in-out infinite alternate; }
.scn-a-relish-for-the-meal .olives      { position:absolute; bottom:46%; left:22%; width:6px; height:6px; background: radial-gradient(circle, #5a3a2a 0%, #2a1a0a 100%); border-radius:50%; box-shadow: 12px 2px 0 0 #3a2a1a, 24px -1px 0 0 #4a3a2a, 36px 4px 0 0 #3a2a1a; animation: rm-olives 8s ease-in-out infinite; }
.scn-a-relish-for-the-meal .hand-left   { position:absolute; bottom:30%; left:5%; width:20px; height:30px; background: linear-gradient(180deg, #d4a080 0%, #b08060 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: right bottom; box-shadow: 0 2px 8px rgba(0,0,0,.15); animation: rm-hand-l 3s ease-in-out infinite; }
.scn-a-relish-for-the-meal .hand-right  { position:absolute; bottom:28%; right:5%; width:18px; height:28px; background: linear-gradient(180deg, #c89878 0%, #a87858 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: left bottom; box-shadow: 0 2px 8px rgba(0,0,0,.15); animation: rm-hand-r 3.2s ease-in-out infinite 0.4s; }
@keyframes rm-bowl-1 { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes rm-bowl-2 { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-1.5deg) } }
@keyframes rm-jug    { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes rm-bread  { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.98) } }
@keyframes rm-olives { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rm-hand-l { 0%,100% { transform: translateX(0) translateY(0) rotate(5deg) } 25% { transform: translateX(8px) translateY(-3px) rotate(-3deg) } 50% { transform: translateX(16px) translateY(-1px) rotate(2deg) } 75% { transform: translateX(8px) translateY(-2px) rotate(-2deg) } }
@keyframes rm-hand-r { 0%,100% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(-8px) translateY(-3px) rotate(3deg) } 50% { transform: translateX(-16px) translateY(-1px) rotate(-2deg) } 75% { transform: translateX(-8px) translateY(-2px) rotate(2deg) } }

.scn-war-originates-in-luxury { background: linear-gradient(180deg, #e0c090 0%, #b89860 30%, #8a6a3a 60%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%); min-height:100%; }
.scn-war-originates-in-luxury .sky          { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a89070 0%, #e0c090 100%); animation: wl-sky 5s ease-in-out infinite alternate; }
.scn-war-originates-in-luxury .wall         { position:absolute; bottom:30%; left:10%; width:80%; height:25%; background: linear-gradient(90deg, #7a6a4a 0%, #9a8a5a 20%, #6a5a3a 80%, #5a4a2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4), 0 -4px 10px rgba(0,0,0,.3); animation: wl-wall 7s ease-in-out infinite alternate; }
.scn-war-originates-in-luxury .city-expand  { position:absolute; bottom:30%; right:5%; width:18%; height:20%; background: linear-gradient(180deg, #9a8a5a 0%, #6a5a3a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.35); transform-origin: bottom center; animation: wl-expand 8s ease-in-out infinite; }
.scn-war-originates-in-luxury .luxury       { position:absolute; bottom:40%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #d4b040 0%, #b89030 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 4px rgba(180,120,40,.3); animation: wl-luxury 4s ease-in-out infinite alternate; }
.scn-war-originates-in-luxury .soldier-1    { position:absolute; bottom:22%; left:20%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: wl-soldier-1 3s ease-in-out infinite; }
.scn-war-originates-in-luxury .soldier-2    { position:absolute; bottom:22%; left:30%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: wl-soldier-2 3.2s ease-in-out infinite 0.3s; }
.scn-war-originates-in-luxury .spear        { position:absolute; bottom:28%; left:24%; width:4px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform-origin: bottom center; animation: wl-spear 2s ease-in-out infinite alternate; }
@keyframes wl-sky       { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wl-wall      { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(.98) } }
@keyframes wl-expand    { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.08) } }
@keyframes wl-luxury    { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes wl-soldier-1 { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wl-soldier-2 { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wl-spear     { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }

.scn-injustice-is-gain { background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%), radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 70%); }
.scn-injustice-is-gain .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); }
.scn-injustice-is-gain .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 8px 10px rgba(0,0,0,.5); }
.scn-injustice-is-gain .light { position:absolute; bottom:40%; left:30%; width:80px; height:80px; background: radial-gradient(circle, #ffaa33 0%, #aa5500 50%, transparent 70%); border-radius:50%; animation: ig-light 3s ease-in-out infinite alternate; }
.scn-injustice-is-gain .shadow { position:absolute; bottom:20%; right:10%; width:200px; height:100px; background: rgba(0,0,0,.6); filter: blur(10px); animation: ig-shadow 6s ease-in-out infinite alternate; }
.scn-injustice-is-gain .ruler { position:absolute; bottom:20%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ig-ruler 4s ease-in-out infinite; }
.scn-injustice-is-gain .subject { position:absolute; bottom:20%; right:30%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ig-subject 5s ease-in-out infinite; }
@keyframes ig-light { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(.95); opacity:.85 } }
@keyframes ig-shadow { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-2px) } }
@keyframes ig-ruler { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes ig-subject { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }

.scn-tyranny-ideal-of-injustice { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%), radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%); }
.scn-tyranny-ideal-of-injustice .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a1a 100%); }
.scn-tyranny-ideal-of-injustice .throne { position:absolute; bottom:30%; left:40%; width:100px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: ti-throne 8s ease-in-out infinite alternate; }
.scn-tyranny-ideal-of-injustice .tyrant { position:absolute; bottom:30%; left:45%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ti-tyrant 4s ease-in-out infinite; }
.scn-tyranny-ideal-of-injustice .victim { position:absolute; bottom:20%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ti-victim 6s ease-in-out infinite alternate; }
.scn-tyranny-ideal-of-injustice .chains { position:absolute; bottom:25%; right:27%; width:20px; height:50px; background: repeating-linear-gradient(0deg, #666 0px, #666 2px, #888 2px, #888 4px); animation: ti-chains 2s ease-in-out infinite; }
.scn-tyranny-ideal-of-injustice .spotlight { position:absolute; top:10%; left:45%; width:120px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.2) 0%, transparent 70%); animation: ti-spotlight 10s ease-in-out infinite alternate; }
@keyframes ti-throne { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(.98) } }
@keyframes ti-tyrant { 0% { transform:rotate(0) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-2deg) } }
@keyframes ti-victim { 0% { transform:translateY(0) rotate(10deg) } 50% { transform:translateY(3px) rotate(10deg) } 100% { transform:translateY(-2px) rotate(10deg) } }
@keyframes ti-chains { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ti-spotlight { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-socrates-presses-on { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%); }
.scn-socrates-presses-on .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-socrates-presses-on .table { position:absolute; bottom:25%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: sp-table 12s ease-in-out infinite alternate; }
.scn-socrates-presses-on .socrates { position:absolute; bottom:30%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-socrates 4s ease-in-out infinite; }
.scn-socrates-presses-on .thrasymachus { position:absolute; bottom:30%; right:20%; width:45px; height:95px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-thras 5s ease-in-out infinite; }
.scn-socrates-presses-on .lamp { position:absolute; bottom:45%; left:50%; width:20px; height:20px; transform: translateX(-50%); background: radial-gradient(circle, #ffaa33 0%, #aa5500 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,170,51,.5); animation: sp-lamp 3s ease-in-out infinite alternate; }
.scn-socrates-presses-on .lamp-glow { position:absolute; bottom:40%; left:48%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,170,51,.15) 0%, transparent 70%); border-radius:50%; animation: sp-glow 4s ease-in-out infinite alternate; }
.scn-socrates-presses-on .shadow-table { position:absolute; bottom:25%; left:30%; width:100px; height:30px; background: rgba(0,0,0,.4); filter: blur(8px); animation: sp-shadow 6s ease-in-out infinite alternate; }
@keyframes sp-table { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(.98) } }
@keyframes sp-socrates { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes sp-thras { 0% { transform:rotate(1deg) } 50% { transform:rotate(-2deg) } 100% { transform:rotate(0) } }
@keyframes sp-lamp { 0% { transform:scale(1) } 50% { transform:scale(1.1) } 100% { transform:scale(.95) } }
@keyframes sp-glow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes sp-shadow { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-3px) } }

.scn-no-one-willingly-rules { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 70%); }
.scn-no-one-willingly-rules .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-no-one-willingly-rules .council-table { position:absolute; top:25%; left:25%; width:50%; height:50%; background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e05 100%); border-radius:50%; box-shadow: inset 0 10px 20px rgba(0,0,0,.7), 0 0 20px rgba(0,0,0,.5); animation: nw-table 6s ease-in-out infinite alternate; }
.scn-no-one-willingly-rules .ruler { position:absolute; top:30%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius:50%; animation: nw-ruler 4s ease-in-out infinite; }
.scn-no-one-willingly-rules .subject-a { position:absolute; top:50%; left:20%; width:25px; height:25px; background: radial-gradient(circle, #2a1a1a 0%, #1a0e05 100%); border-radius:50%; animation: nw-subject 5s ease-in-out infinite alternate; }
.scn-no-one-willingly-rules .subject-b { position:absolute; top:55%; right:20%; width:25px; height:25px; background: radial-gradient(circle, #2a1a1a 0%, #1a0e05 100%); border-radius:50%; animation: nw-subject 5s ease-in-out infinite alternate-reverse; }
.scn-no-one-willingly-rules .overhead-light { position:absolute; top:15%; left:45%; width:100px; height:100px; background: radial-gradient(ellipse at 50% 50%, rgba(200,170,100,.3) 0%, transparent 60%); border-radius:50%; animation: nw-light 8s ease-in-out infinite alternate; }
.scn-no-one-willingly-rules .ring { position:absolute; top:22%; left:22%; width:56%; height:56%; border-radius:50%; border: 2px solid rgba(100,80,60,.2); animation: nw-ring 10s linear infinite; }
@keyframes nw-table { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(.98) } }
@keyframes nw-ruler { 0% { transform:rotate(0) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }
@keyframes nw-subject { 0% { transform:translateY(0) } 50% { transform:translateY(5px) } 100% { transform:translateY(-5px) } }
@keyframes nw-light { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes nw-ring { 0% { transform:rotate(0) } 50% { transform:rotate(180deg) } 100% { transform:rotate(360deg) } }

/* Scene: the-good-man-imitatates-only-the-good */
.scn-the-good-man-imitatates-only-the-good {
  background: linear-gradient(180deg, #1a1510 0%, #2a2015 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-the-good-man-imitatates-only-the-good .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2015, #1a1510); animation: gm-wall 20s ease-in-out infinite alternate;
}
.scn-the-good-man-imitatates-only-the-good .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #1a1210, #2a1a10); border-radius: 10% 10% 0 0; animation: gm-floor 15s ease-in-out infinite;
}
.scn-the-good-man-imitatates-only-the-good .frame {
  position: absolute; left: 50%; top: 35%; width: 30%; height: 40%; transform: translate(-50%, -10%); background: #3a2a1a; border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: gm-frame 7s ease-in-out infinite alternate;
}
.scn-the-good-man-imitatates-only-the-good .portrait {
  position: absolute; top: 40%; left: 50%; width: 60%; height: 60%; transform: translate(-50%, -20%); background: linear-gradient(180deg, #2a1a10, #1a0a05); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: gm-portrait 8s ease-in-out infinite;
}
.scn-the-good-man-imitatates-only-the-good .figure {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 25%; background: linear-gradient(180deg, #1a1510, #0a0a05); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gm-figure 5s ease-in-out infinite;
}
.scn-the-good-man-imitatates-only-the-good .lamp {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 30px 10px #ffb060, 0 0 60px 20px rgba(255,176,96,0.4); animation: gm-lamp 4s ease-in-out infinite alternate;
}
@keyframes gm-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gm-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gm-frame { 0% { box-shadow: 0 0 10px rgba(0,0,0,0.4); } 50% { box-shadow: 0 0 25px rgba(0,0,0,0.7); } 100% { box-shadow: 0 0 15px rgba(0,0,0,0.5); } }
@keyframes gm-portrait { 0% { transform: translate(-50%, -20%) scale(0.95); opacity:0.8 } 50% { transform: translate(-50%, -20%) scale(1); opacity:1 } 100% { transform: translate(-50%, -20%) scale(0.95); opacity:0.9 } }
@keyframes gm-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes gm-lamp { 0% { box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,0.3); opacity:0.9 } 50% { box-shadow: 0 0 35px 12px #ffd080, 0 0 70px 20px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #ffb060, 0 0 50px 16px rgba(255,176,96,0.4); opacity:0.95 } }

/* Scene: the-two-styles-of-verse */
.scn-the-two-styles-of-verse {
  background: linear-gradient(180deg, #1c1512 0%, #2a1d15 100%), radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-the-two-styles-of-verse .bg-wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a1d15, #1c1512); animation: tv-wall 25s ease-in-out infinite alternate;
}
.scn-the-two-styles-of-verse .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%; background: #3a2a1a; border-radius: 5px; box-shadow: 0 4px 10px black; animation: tv-table 12s ease-in-out infinite;
}
.scn-the-two-styles-of-verse .mask-left {
  position: absolute; bottom: 30%; left: 25%; width: 10%; height: 15%; background: linear-gradient(180deg, #5a3a20, #3a2510); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: tv-mask 6s ease-in-out infinite alternate;
}
.scn-the-two-styles-of-verse .mask-right {
  position: absolute; bottom: 30%; right: 25%; width: 10%; height: 15%; background: linear-gradient(180deg, #5a3a20, #3a2510); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); animation: tv-mask 6s ease-in-out infinite alternate-reverse;
}
.scn-the-two-styles-of-verse .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 30px 10px #ffb060; animation: tv-lamp 3s ease-in-out infinite alternate;
}
@keyframes tv-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tv-table { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes tv-mask { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tv-lamp { 0% { box-shadow: 0 0 20px 6px #ffb060; opacity:0.9 } 50% { box-shadow: 0 0 35px 12px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #ffb060; opacity:0.95 } }

/* Scene: the-rough-and-the-mixed-style */
.scn-the-rough-and-the-mixed-style {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e15 100%), radial-gradient(ellipse at 50% 100%, #4a3020 0%, transparent 70%);
}
.scn-the-rough-and-the-mixed-style .bg-wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a1e15, #1a1410); animation: rm-wall 18s ease-in-out infinite alternate;
}
.scn-the-rough-and-the-mixed-style .column-left {
  position: absolute; left: 20%; bottom: 20%; width: 8%; height: 50%; background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: rm-col-left 20s ease-in-out infinite alternate;
}
.scn-the-rough-and-the-mixed-style .column-right {
  position: absolute; right: 20%; bottom: 20%; width: 8%; height: 50%; background: linear-gradient(90deg, #5a4a3a, #6a5a4a, #5a4a3a); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: rm-col-right 20s ease-in-out infinite alternate-reverse;
}
.scn-the-rough-and-the-mixed-style .figure {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 20%; background: linear-gradient(180deg, #1a1510, #0a0a05); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-figure 7s ease-in-out infinite;
}
.scn-the-rough-and-the-mixed-style .pedestal {
  position: absolute; bottom: 20%; left: 38%; right: 38%; height: 8%; background: #3a2a1a; border-radius: 4px; box-shadow: 0 4px 8px black; animation: rm-ped 15s ease-in-out infinite;
}
.scn-the-rough-and-the-mixed-style .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 30px 10px #ffb060; animation: rm-lamp 4s ease-in-out infinite alternate;
}
@keyframes rm-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rm-col-left { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rm-col-right { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rm-figure { 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 rm-ped { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes rm-lamp { 0% { box-shadow: 0 0 20px 6px #ffb060; opacity:0.95 } 50% { box-shadow: 0 0 35px 12px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #ffb060; opacity:0.9 } }

/* Scene: admitting-the-rough-poet */
.scn-admitting-the-rough-poet {
  background: linear-gradient(180deg, #1b1512 0%, #2a2018 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 60%);
}
.scn-admitting-the-rough-poet .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2018, #1b1512); animation: rp-wall 22s ease-in-out infinite alternate;
}
.scn-admitting-the-rough-poet .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 60%; transform: translateX(-50%); background: #1a1210; border: 4px solid #4a3a2a; border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 20px black; animation: rp-doorway 20s ease-in-out infinite alternate;
}
.scn-admitting-the-rough-poet .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #1a1210, #2a1a10); border-radius: 5% 5% 0 0; animation: rp-floor 15s ease-in-out infinite;
}
.scn-admitting-the-rough-poet .guardian {
  position: absolute; bottom: 25%; left: 42%; width: 10%; height: 20%; background: linear-gradient(180deg, #1a1510, #0a0a05); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-guardian 7s ease-in-out infinite;
}
.scn-admitting-the-rough-poet .poet {
  position: absolute; bottom: 25%; right: 42%; width: 10%; height: 20%; background: linear-gradient(180deg, #2a1a10, #1a0a05); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-poet 8s ease-in-out infinite alternate;
}
.scn-admitting-the-rough-poet .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 30px 10px #ffb060; animation: rp-lamp 3s ease-in-out infinite alternate;
}
@keyframes rp-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rp-doorway { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes rp-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rp-guardian { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rp-poet { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes rp-lamp { 0% { box-shadow: 0 0 20px 6px #ffb060; opacity:0.9 } 50% { box-shadow: 0 0 35px 12px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #ffb060; opacity:0.95 } }

/* scene 1: the-state-arises-from-needs */
.scn-the-state-arises-from-needs {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b088 100%), radial-gradient(ellipse at 30% 60%, #ffebd0 0%, transparent 60%);
}
.scn-the-state-arises-from-needs .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b8d0e8, #dce4f0);
  animation: sta-sky 20s ease-in-out infinite alternate;
}
.scn-the-state-arises-from-needs .sun {
  position: absolute; top: 8%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffeb80, #ffc040 70%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,200,64,0.4);
  animation: sta-sun 16s ease-in-out infinite alternate;
}
.scn-the-state-arises-from-needs .city {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 5% 70%, 15% 85%, 25% 40%, 35% 90%, 50% 20%, 65% 80%, 80% 35%, 95% 75%, 100% 100%);
  mask-image: linear-gradient(180deg, #000 50%, transparent);
  animation: sta-city 12s ease-in-out infinite alternate;
}
.scn-the-state-arises-from-needs .figure {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sta-figure 4s ease-in-out infinite;
}
.scn-the-state-arises-from-needs .scales {
  position: absolute; bottom: 28%; left: 39%; width: 16px; height: 18px;
  background: radial-gradient(circle at 50% 20%, #c0a060, #8a6a30);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: sta-scales 5s ease-in-out infinite;
}
.scn-the-state-arises-from-needs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08050, #705a30);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}

@keyframes sta-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sta-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(3px,-3px) scale(1.02) } 100% { transform: translate(0,0) scale(1) } }
@keyframes sta-city { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sta-figure { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes sta-scales { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(1px,-1px) rotate(3deg) } 100% { transform: translate(0,0) rotate(-3deg) } }

/* scene 2: the-primitive-state */
.scn-the-primitive-state {
  background: linear-gradient(180deg, #87ceb0 0%, #f5f0d0 50%, #b0a080 100%), radial-gradient(circle at 20% 30%, #ffe680 0%, transparent 40%);
}
.scn-the-primitive-state .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a8d0e0, transparent);
  animation: prs-sky 25s ease-in-out infinite alternate;
}
.scn-the-primitive-state .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b8c4e, #3d5a2a);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: prs-grass 15s ease-in-out infinite alternate;
}
.scn-the-primitive-state .hut-body {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a, #4a2a1a);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-the-primitive-state .hut-roof {
  position: absolute; bottom: calc(30% + 60px); left: 38%; width: 100px; height: 30px;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  background: linear-gradient(180deg, #8a6a4a, #5a3a2a);
  animation: prs-roof 6s ease-in-out infinite;
}
.scn-the-primitive-state .door {
  position: absolute; bottom: 30%; left: 46%; width: 20px; height: 30px;
  background: #2a1a0a;
  border-radius: 4px 4px 0 0;
  animation: prs-door 7s ease-in-out infinite;
}
.scn-the-primitive-state .figure1 {
  position: absolute; bottom: 28%; left: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prs-figure 5s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-the-primitive-state .figure2 {
  position: absolute; bottom: 30%; left: 60%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prs-figure 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-the-primitive-state .tree {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 0 20px #3a6a2a, 0 0 0 30px #4a7a3a;
  animation: prs-tree 8s ease-in-out infinite;
}

@keyframes prs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes prs-grass { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes prs-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes prs-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes prs-figure { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px,-1px) rotate(2deg) } 50% { transform: translate(8px,0) rotate(-2deg) } 75% { transform: translate(4px,1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes prs-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

/* scene 3: division-of-labour */
.scn-division-of-labour {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(circle at 50% 60%, #e07030 0%, transparent 40%);
}
.scn-division-of-labour .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #1a1a0a 0%, transparent 60%);
}
.scn-division-of-labour .forge {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #603020, #301010);
  border-radius: 10px;
  box-shadow: inset 0 0 20px #e06020, 0 0 40px 10px rgba(224,96,32,0.3);
  animation: dol-forge 4s ease-in-out infinite alternate;
}
.scn-division-of-labour .anvil {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a5a5a, #2a2a2a);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-division-of-labour .smith {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #2a2a2a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dol-smith 2s ease-in-out infinite;
}
.scn-division-of-labour .farmer {
  position: absolute; bottom: 24%; left: 15%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -8px 0 0 #3a5a2a;
  animation: dol-farmer 6s ease-in-out infinite;
}
.scn-division-of-labour .builder {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a3a2a, #1a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dol-builder 5s ease-in-out infinite;
}
.scn-division-of-labour .tools {
  position: absolute; bottom: 28%; left: 5%; right: 5%; height: 8px;
  background: repeating-linear-gradient(90deg, #5a3a3a 0px, #5a3a3a 4px, transparent 4px, transparent 10px);
  animation: dol-tools 10s linear infinite;
}

@keyframes dol-forge { 0% { box-shadow: 0 0 20px 5px rgba(224,96,32,0.3) } 50% { box-shadow: 0 0 40px 15px rgba(224,96,32,0.7) } 100% { box-shadow: 0 0 20px 5px rgba(224,96,32,0.3) } }
@keyframes dol-smith { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(0,-4px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes dol-farmer { 0% { transform: translate(0,0) } 50% { transform: translate(8px,-2px) } 100% { transform: translate(0,0) } }
@keyframes dol-builder { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(0,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes dol-tools { 0% { background-position: 0 0 } 100% { background-position: -30px 0 } }

/* scene 4: the-city-grows */
.scn-the-city-grows {
  background: linear-gradient(180deg, #d4e8f0 0%, #f5e8c0 100%), radial-gradient(circle at 80% 20%, #ffe680 0%, transparent 50%);
}
.scn-the-city-grows .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d0e8, transparent);
  animation: ctg-sky 30s ease-in-out infinite alternate;
}
.scn-the-city-grows .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a, #5a4a3a);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-the-city-grows .building1 {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ctg-building1 12s ease-in-out infinite alternate;
}
.scn-the-city-grows .building2 {
  position: absolute; bottom: 15%; left: 45%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a, #2a1a0a);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ctg-building2 14s ease-in-out infinite alternate;
}
.scn-the-city-grows .scaffold {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 20px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 20px);
  animation: ctg-scaffold 6s ease-in-out infinite;
}
.scn-the-city-grows .worker1 {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #3a3a3a, #1a1a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctg-worker1 4s ease-in-out infinite;
}
.scn-the-city-grows .worker2 {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctg-worker2 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-the-city-grows .tree {
  position: absolute; bottom: 18%; left: 75%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  box-shadow: 0 0 0 15px #4a7a3a, 0 0 0 25px #3a6a2a;
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: ctg-tree 9s ease-in-out infinite;
}

@keyframes ctg-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ctg-building1 { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ctg-building2 { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ctg-scaffold { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ctg-worker1 { 0% { transform: translate(0,0) } 25% { transform: translate(4px,-15px) } 50% { transform: translate(8px,0) } 75% { transform: translate(4px,-5px) } 100% { transform: translate(0,0) } }
@keyframes ctg-worker2 { 0% { transform: rotate(0) translate(0,0) } 50% { transform: rotate(10deg) translate(0,-2px) } 100% { transform: rotate(0) translate(0,0) } }
@keyframes ctg-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-the-judge-must-know-vice {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 50%, #b8a88a 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-the-judge-must-know-vice .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8c8b0 100%);
  animation: tj-wall-pulse 8s ease-in-out infinite alternate;
}
@keyframes tj-wall-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
.scn-the-judge-must-know-vice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09078 0%, #7a6850 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}
.scn-the-judge-must-know-vice .window {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 50%, #fff5d0 0%, #f0e0a0 70%, #d0b880 100%);
  border: 6px solid #b09870; border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,240,180,0.5);
  animation: tj-window-glow 6s ease-in-out infinite alternate;
}
@keyframes tj-window-glow {
  0% { box-shadow: 0 0 30px 8px rgba(255,240,180,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 15px rgba(255,245,200,0.6); opacity: 1; }
  100% { box-shadow: 0 0 40px 10px rgba(255,240,180,0.5); opacity: 0.9; }
}
.scn-the-judge-must-know-vice .light-beam {
  position: absolute; top: 15%; left: 65%; width: 200px; height: 400px;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  transform: rotate(-20deg); transform-origin: top left;
  animation: tj-light-sway 10s ease-in-out infinite alternate;
}
@keyframes tj-light-sway {
  0% { transform: rotate(-25deg) translateX(0); opacity: 0.3; }
  50% { transform: rotate(-15deg) translateX(10px); opacity: 0.5; }
  100% { transform: rotate(-20deg) translateX(0); opacity: 0.35; }
}
.scn-the-judge-must-know-vice .statue {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: tj-statue-float 7s ease-in-out infinite;
}
@keyframes tj-statue-float {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-the-judge-must-know-vice .staff {
  position: absolute; bottom: 30%; left: 27%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 3px;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: tj-staff-sway 9s ease-in-out infinite;
}
@keyframes tj-staff-sway {
  0% { transform: rotate(8deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.02); }
  100% { transform: rotate(8deg) scaleY(1); }
}
.scn-the-judge-must-know-vice .shadow {
  position: absolute; bottom: 28%; left: 18%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: tj-shadow-pulse 7s ease-in-out infinite;
}
@keyframes tj-shadow-pulse {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}

.scn-harmony-of-music-and-gymnastic {
  background: linear-gradient(180deg, #f2e8d0 0%, #d4c4a0 50%, #b8a888 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-harmony-of-music-and-gymnastic .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #eee4d0 0%, #d8c8b0 100%);
  animation: hm-wall-pulse 10s ease-in-out infinite alternate;
}
@keyframes hm-wall-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
.scn-harmony-of-music-and-gymnastic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09078 0%, #7a6850 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
}
.scn-harmony-of-music-and-gymnastic .table {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #c8b098 0%, #a08868 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hm-table-float 12s ease-in-out infinite alternate;
}
@keyframes hm-table-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.scn-harmony-of-music-and-gymnastic .lyre {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #d4b060 0%, #b89040 70%, #8a6a20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hm-lyre-vibrate 4s ease-in-out infinite;
}
@keyframes hm-lyre-vibrate {
  0% { transform: scaleX(1) scaleY(1); }
  25% { transform: scaleX(1.02) scaleY(0.98); }
  50% { transform: scaleX(0.98) scaleY(1.02); }
  75% { transform: scaleX(1.01) scaleY(0.99); }
  100% { transform: scaleX(1) scaleY(1); }
}
.scn-harmony-of-music-and-gymnastic .discus {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: hm-discus-spin 6s linear infinite;
}
@keyframes hm-discus-spin {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(90deg) scale(1.02); }
  50% { transform: rotate(180deg) scale(1); }
  75% { transform: rotate(270deg) scale(0.98); }
  100% { transform: rotate(360deg) scale(1); }
}
.scn-harmony-of-music-and-gymnastic .figure {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hm-figure-balance 4s ease-in-out infinite alternate;
}
@keyframes hm-figure-balance {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
.scn-harmony-of-music-and-gymnastic .shadow {
  position: absolute; bottom: 23%; left: 42%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(3px);
  animation: hm-shadow-pulse 5s ease-in-out infinite;
}
@keyframes hm-shadow-pulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.15); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-the-true-musician {
  background: linear-gradient(180deg, #f5ecd8 0%, #d8c8b0 50%, #b8a888 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 65%);
}
.scn-the-true-musician .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8c8b0 100%);
  animation: tm-wall-pulse 9s ease-in-out infinite alternate;
}
@keyframes tm-wall-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
.scn-the-true-musician .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09078 0%, #7a6850 100%);
  border-radius: 25% 25% 0 0 / 45% 45% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
}
.scn-the-true-musician .window {
  position: absolute; top: 12%; left: 65%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 50%, #fff5d0 0%, #f0e0a0 70%, #d0b880 100%);
  border: 5px solid #b09870; border-radius: 4px;
  box-shadow: 0 0 35px 8px rgba(255,240,180,0.5);
  animation: tm-window-glow 7s ease-in-out infinite alternate;
}
@keyframes tm-window-glow {
  0% { box-shadow: 0 0 25px 6px rgba(255,240,180,0.4); opacity: 0.85; }
  50% { box-shadow: 0 0 55px 14px rgba(255,245,200,0.65); opacity: 1; }
  100% { box-shadow: 0 0 35px 8px rgba(255,240,180,0.5); opacity: 0.9; }
}
.scn-the-true-musician .chair {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: tm-chair-settle 15s ease-in-out infinite alternate;
}
@keyframes tm-chair-settle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-the-true-musician .musician {
  position: absolute; bottom: 30%; left: 45%; 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: tm-musician-bow 6s ease-in-out infinite;
}
@keyframes tm-musician-bow {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(5deg) translateY(-2px); }
  60% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
.scn-the-true-musician .lyre {
  position: absolute; bottom: 35%; left: 47%; width: 20px; height: 35px;
  background: radial-gradient(ellipse at 50% 30%, #d4b060 0%, #b89040 70%, #8a6a20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tm-lyre-strum 3s ease-in-out infinite;
}
@keyframes tm-lyre-strum {
  0% { transform: scaleY(1) scaleX(1); }
  25% { transform: scaleY(1.05) scaleX(0.95); }
  50% { transform: scaleY(0.95) scaleX(1.05); }
  75% { transform: scaleY(1.03) scaleX(0.97); }
  100% { transform: scaleY(1) scaleX(1); }
}
.scn-the-true-musician .book {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #d0c8b0 0%, #a09878 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: tm-book-turn 8s ease-in-out infinite;
}
@keyframes tm-book-turn {
  0% { transform: rotateY(0deg) scaleX(1); }
  30% { transform: rotateY(-20deg) scaleX(0.8); }
  60% { transform: rotateY(10deg) scaleX(1.1); }
  100% { transform: rotateY(0deg) scaleX(1); }
}

.scn-the-harmonious-soul {
  background: linear-gradient(180deg, #f0e8d0 0%, #d4c4a0 50%, #b8a888 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-the-harmonious-soul .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #eee4d0 0%, #d8c8b0 100%);
  animation: hs-wall-pulse 8s ease-in-out infinite alternate;
}
@keyframes hs-wall-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
.scn-the-harmonious-soul .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09078 0%, #7a6850 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
}
.scn-the-harmonious-soul .scale {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #c0b098 0%, #a08868 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hs-scale-tilt 10s ease-in-out infinite alternate;
}
@keyframes hs-scale-tilt {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
.scn-the-harmonious-soul .left-figure {
  position: absolute; bottom: 25%; left: 40%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hs-left-crouch 6s ease-in-out infinite alternate;
}
@keyframes hs-left-crouch {
  0% { transform: translateY(0) scaleY(1) rotate(0deg); }
  50% { transform: translateY(-3px) scaleY(0.95) rotate(5deg); }
  100% { transform: translateY(0) scaleY(1) rotate(0deg); }
}
.scn-the-harmonious-soul .right-figure {
  position: absolute; bottom: 25%; left: 55%; width: 25px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hs-right-strum 4s ease-in-out infinite;
}
@keyframes hs-right-strum {
  0% { transform: scaleX(1) scaleY(1); }
  25% { transform: scaleX(1.1) scaleY(0.9); }
  50% { transform: scaleX(0.9) scaleY(1.1); }
  75% { transform: scaleX(1.05) scaleY(0.95); }
  100% { transform: scaleX(1) scaleY(1); }
}
.scn-the-harmonious-soul .light {
  position: absolute; top: 8%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: hs-light-pulse 5s ease-in-out infinite alternate;
}
@keyframes hs-light-pulse {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.15); }
  100% { opacity: 0.4; transform: scale(1); }
}
.scn-the-harmonious-soul .shadow {
  position: absolute; bottom: 28%; left: 42%; width: 80px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(3px);
  animation: hs-shadow-pulse 7s ease-in-out infinite;
}
@keyframes hs-shadow-pulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* arts-and-rule */
.scn-arts-and-rule {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 50%, #0f0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-arts-and-rule .lamp {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,104,.5); animation: ar-lamp 3s ease-in-out infinite alternate;
}
.scn-arts-and-rule .bench {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ar-bench 6s ease-in-out infinite;
}
.scn-arts-and-rule .figure {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ar-figure 4s ease-in-out infinite;
}
.scn-arts-and-rule .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 10px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(3px);
  animation: ar-shadow 4s ease-in-out infinite;
}
.scn-arts-and-rule .scroll {
  position: absolute; bottom: 22%; left: 60%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c8a060, #a07840); border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ar-scroll 8s ease-in-out infinite alternate;
}
.scn-arts-and-rule .column {
  position: absolute; bottom: 0; left: 15%; width: 8px; height: 80%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,.3); animation: ar-column 12s ease-in-out infinite alternate;
}
@keyframes ar-lamp {
  0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(240,192,104,.3); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(240,192,104,.6); }
  100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(240,192,104,.4); }
}
@keyframes ar-bench {
  0% { transform: translateY(0); opacity:.8; }
  50% { transform: translateY(-2px); opacity:1; }
  100% { transform: translateY(0); opacity:.8; }
}
@keyframes ar-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ar-shadow {
  0% { transform: scale(1); opacity:.4; }
  50% { transform: scale(1.1); opacity:.6; }
  100% { transform: scale(1); opacity:.4; }
}
@keyframes ar-scroll {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ar-column {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.8; }
}

/* arts-consider-the-subject */
.scn-arts-consider-the-subject {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 50%, #0f0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-arts-consider-the-subject .lamp {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,104,.5); animation: cs-lamp 3s ease-in-out infinite alternate;
}
.scn-arts-consider-the-subject .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: cs-table 8s ease-in-out infinite alternate;
}
.scn-arts-consider-the-subject .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cs-fig-l 5s ease-in-out infinite;
}
.scn-arts-consider-the-subject .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a2a, #1a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cs-fig-r 5s ease-in-out infinite alternate;
}
.scn-arts-consider-the-subject .book {
  position: absolute; bottom: 26%; left: 45%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #c8a060, #a07840); border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cs-book 4s ease-in-out infinite alternate;
}
.scn-arts-consider-the-subject .chair {
  position: absolute; bottom: 28%; left: 20%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cs-chair 10s ease-in-out infinite;
}
@keyframes cs-lamp {
  0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(240,192,104,.3); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(240,192,104,.6); }
  100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(240,192,104,.4); }
}
@keyframes cs-table {
  0% { transform: translateY(0); opacity:.9; }
  50% { transform: translateY(-1px); opacity:1; }
  100% { transform: translateY(0); opacity:.9; }
}
@keyframes cs-fig-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-fig-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-book {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes cs-chair {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.8; }
}

/* shepherd-and-sheep */
.scn-shepherd-and-sheep {
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1f0f 50%, #0a0f0a 100%), radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, transparent 60%);
}
.scn-shepherd-and-sheep .lantern {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,104,.5); animation: ss-lantern 3s ease-in-out infinite alternate;
}
.scn-shepherd-and-sheep .shepherd {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ss-shepherd 4s ease-in-out infinite;
}
.scn-shepherd-and-sheep .sheep {
  position: absolute; bottom: 23%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a3a2a, #1a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ss-sheep 6s ease-in-out infinite;
}
.scn-shepherd-and-sheep .stall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(180deg, #4a4a3a, #2a2a1a); border-radius: 3px;
  animation: ss-stall 12s ease-in-out infinite;
}
.scn-shepherd-and-sheep .hay {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #b08040, #906020); border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ss-hay 5s ease-in-out infinite alternate;
}
.scn-shepherd-and-sheep .staff {
  position: absolute; bottom: 25%; left: 32%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius: 2px;
  transform-origin: bottom center; animation: ss-staff 7s ease-in-out infinite alternate;
}
@keyframes ss-lantern {
  0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(240,192,104,.3); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(240,192,104,.6); }
  100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(240,192,104,.4); }
}
@keyframes ss-shepherd {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ss-sheep {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.02) translateX(2px); }
  100% { transform: scale(1) translateX(0); }
}
@keyframes ss-stall {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes ss-hay {
  0% { opacity:.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:.7; transform: scale(1); }
}
@keyframes ss-staff {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

/* thrasymachus-insults-socrates */
.scn-thrasymachus-insults-socrates {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1f 50%, #0a0a0f 100%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 60%);
}
.scn-thrasymachus-insults-socrates .lamp {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,104,.5); animation: ti-lamp 3s ease-in-out infinite alternate;
}
.scn-thrasymachus-insults-socrates .socrates {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ti-socrates 5s ease-in-out infinite;
}
.scn-thrasymachus-insults-socrates .thrasymachus {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a2a, #1a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ti-thrasymachus 5s ease-in-out infinite alternate;
}
.scn-thrasymachus-insults-socrates .nurse {
  position: absolute; bottom: 24%; left: 48%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #1a2a2a, #0a1a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ti-nurse 4s ease-in-out infinite;
}
.scn-thrasymachus-insults-socrates .stool {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 6px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 2px;
  animation: ti-stool 8s ease-in-out infinite alternate;
}
.scn-thrasymachus-insults-socrates .column {
  position: absolute; bottom: 0; left: 10%; width: 6px; height: 80%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 3px;
  box-shadow: 0 0 8px rgba(0,0,0,.3); animation: ti-column 15s ease-in-out infinite alternate;
}
@keyframes ti-lamp {
  0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(240,192,104,.3); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(240,192,104,.6); }
  100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(240,192,104,.4); }
}
@keyframes ti-socrates {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ti-thrasymachus {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(-3px) rotate(1deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes ti-nurse {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ti-stool {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes ti-column {
  0% { opacity:.7; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.drift { position: absolute; pointer-events: none; }
.pointing { position: absolute; pointer-events: none; }
.sat-1 { position: absolute; pointer-events: none; }
.sat-2 { position: absolute; pointer-events: none; }
.silhouetted { position: absolute; pointer-events: none; }
.sun-ray { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-censorship-poets { background: linear-gradient(180deg, #1e1a15 0%, #2b221c 30%, #1a1612 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-censorship-poets .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a221a 0%, #1e1812 100%); animation: cp-wall 8s ease-in-out infinite alternate; }
.scn-censorship-poets .desk { position:absolute; bottom:15%; left:15%; right:30%; height:20%; background: linear-gradient(180deg, #4a3520 0%, #2a1e10 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.6); }
.scn-censorship-poets .scroll { position:absolute; bottom:25%; left:22%; width:40%; height:8%; background: linear-gradient(180deg, #c8b080 0%, #9a7a50 100%); border-radius: 5px; animation: cp-scroll 4s ease-in-out infinite; }
.scn-censorship-poets .figure { position:absolute; bottom:15%; left:20%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cp-figure 5s ease-in-out infinite; }
.scn-censorship-poets .censor-hand { position:absolute; bottom:28%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; animation: cp-hand 3s ease-in-out infinite; }
.scn-censorship-poets .lamp { position:absolute; top:30%; left:65%; width:16px; height:12px; background: radial-gradient(circle, #ffc080 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.5); animation: cp-lamp 4s ease-in-out infinite alternate; }
.scn-censorship-poets .shadow { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%); animation: cp-shadow 6s ease-in-out infinite; }
@keyframes cp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cp-scroll { 0% { transform: translateX(0) } 50% { transform: translateX(2px) scale(.98) } 100% { transform: translateX(0) } }
@keyframes cp-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-hand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cp-lamp { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:.7 } 50% { box-shadow: 0 0 40px 15px #ffc080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08040; opacity:.8 } }
@keyframes cp-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-ideal-state-pattern { background: linear-gradient(180deg, #1e1a22 0%, #2a2430 40%, #18141e 100%), radial-gradient(ellipse at 50% 30%, #3a3250 0%, transparent 70%); }
.scn-ideal-state-pattern .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2430 0%, #18141e 100%); }
.scn-ideal-state-pattern .grid { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(200,180,240,.08) 20px, rgba(200,180,240,.08) 21px), repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(200,180,240,.08) 20px, rgba(200,180,240,.08) 21px); animation: isp-grid 20s linear infinite; }
.scn-ideal-state-pattern .compass { position:absolute; bottom:30%; left:35%; width:40px; height:40px; background: radial-gradient(circle, #c8b8e0 0%, #8a7a9a 100%); border-radius: 50%; border: 2px solid #6a5a7a; animation: isp-compass 10s ease-in-out infinite; }
.scn-ideal-state-pattern .figure-architect { position:absolute; bottom:20%; left:25%; width:25px; height:50px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: isp-fig 6s ease-in-out infinite; }
.scn-ideal-state-pattern .blueprint { position:absolute; bottom:25%; left:45%; width:20%; height:25%; background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 5%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: isp-blue 8s ease-in-out infinite; }
.scn-ideal-state-pattern .light-beam { position:absolute; top:10%; left:30%; width:40%; height:5%; background: linear-gradient(90deg, transparent, rgba(200,180,240,.15) 50%, transparent); filter: blur(5px); animation: isp-beam 12s ease-in-out infinite alternate; }
@keyframes isp-grid { 0% { background-position: 0 0 } 100% { background-position: 20px 20px } }
@keyframes isp-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(45deg) } 100% { transform: rotate(0deg) } }
@keyframes isp-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes isp-blue { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes isp-beam { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

.scn-philosopher-kings { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #4a4a7a 0%, transparent 80%); }
.scn-philosopher-kings .bg-column { position:absolute; left:10%; right:10%; top:0; bottom:0; background: linear-gradient(90deg, transparent 0%, rgba(200,200,240,.05) 20%, rgba(200,200,240,.05) 80%, transparent 100%); }
.scn-philosopher-kings .throne { position:absolute; bottom:10%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #5a4a6a 0%, #2a1a3a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-philosopher-kings .king-figure { position:absolute; bottom:18%; left:50%; width:35px; height:65px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a7a 0%, #3a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pk-king 7s ease-in-out infinite; }
.scn-philosopher-kings .book { position:absolute; bottom:32%; left:46%; width:20px; height:25px; background: linear-gradient(180deg, #8a7a9a 0%, #4a3a5a 100%); border-radius: 4px; transform: rotate(-5deg); animation: pk-book 5s ease-in-out infinite; }
.scn-philosopher-kings .math-symbol { position:absolute; top:30%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #b0a0c0 0%, transparent 70%); border-radius: 50%; animation: pk-math 6s ease-in-out infinite; }
.scn-philosopher-kings .light-rays { position:absolute; top:5%; left:30%; right:30%; height:20%; background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(200,200,240,.1) 10px, rgba(200,200,240,.1) 11px), linear-gradient(180deg, transparent, rgba(200,200,240,.05)); animation: pk-rays 8s ease-in-out infinite alternate; }
@keyframes pk-king { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pk-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes pk-math { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.3; transform: scale(1) } }
@keyframes pk-rays { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-harming-enemies-unjust { background: linear-gradient(180deg, #1a141e 0%, #2a202e 30%, #120e16 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%); }
.scn-harming-enemies-unjust .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.7) 100%); animation: heu-shadow 3s ease-in-out infinite alternate; }
.scn-harming-enemies-unjust .table { position:absolute; bottom:18%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-harming-enemies-unjust .figure-left { position:absolute; bottom:15%; left:25%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: heu-left 2s ease-in-out infinite; }
.scn-harming-enemies-unjust .figure-right { position:absolute; bottom:15%; right:25%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: heu-right 2.3s ease-in-out infinite; }
.scn-harming-enemies-unjust .fist { position:absolute; bottom:30%; left:40%; width:14px; height:18px; background: linear-gradient(180deg, #5a4a5a 0%, #2a1a2a 100%); border-radius: 50%; animation: heu-fist 1.5s ease-in-out infinite; }
.scn-harming-enemies-unjust .candle { position:absolute; bottom:30%; left:50%; width:8px; height:25px; background: linear-gradient(180deg, #ffd080 0%, #8a6020 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); }
.scn-harming-enemies-unjust .flicker { position:absolute; bottom:52%; left:50%; width:20px; height:20px; transform: translateX(-50%); background: radial-gradient(circle, #ffc080 0%, #b07030 50%, transparent 80%); border-radius: 50%; animation: heu-flicker .8s ease-in-out infinite alternate; }
@keyframes heu-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes heu-left { 0% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes heu-right { 0% { transform: rotate(0deg) } 25% { transform: rotate(-8deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes heu-fist { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes heu-flicker { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.5; transform: translateX(-50%) scale(.9) } }

.scn-royal-lie-metals {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #4a3520 0%, transparent 60%);
}
.scn-royal-lie-metals .cave-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2015 0%, #3a2a10 50%, #1a0a00 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: rlm-wall 12s ease-in-out infinite alternate;
}
.scn-royal-lie-metals .glow-ambient {
  position: absolute; inset: 30% 10% 10% 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,100,0.15) 0%, transparent 70%);
  animation: rlm-glow 8s ease-in-out infinite alternate;
}
.scn-royal-lie-metals .gold-ingot {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #d4a017 0%, #b8860b 50%, #8b6914 100%);
  border-radius: 10% / 20%; box-shadow: 0 0 20px 4px rgba(212,160,23,0.5);
  animation: rlm-metal 4s ease-in-out infinite, rlm-metal-glow 2s ease-in-out infinite alternate;
}
.scn-royal-lie-metals .silver-ingot {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #c0c0c0 0%, #a0a0a0 50%, #808080 100%);
  border-radius: 10% / 20%; box-shadow: 0 0 20px 4px rgba(192,192,192,0.4);
  animation: rlm-metal 4s ease-in-out infinite 0.5s, rlm-metal-glow 2.5s ease-in-out infinite alternate 0.5s;
}
.scn-royal-lie-metals .brass-ingot {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #c5a55a 0%, #9c7a3b 50%, #7a5a28 100%);
  border-radius: 10% / 20%; box-shadow: 0 0 20px 4px rgba(197,165,90,0.4);
  animation: rlm-metal 4s ease-in-out infinite 1s, rlm-metal-glow 3s ease-in-out infinite alternate 1s;
}
.scn-royal-lie-metals .dust-sparkle {
  position: absolute; top: 35%; left: 30%; width: 4px; height: 4px;
  background: #f0e68c; border-radius: 50%;
  box-shadow: 20px -40px 0 2px #f5deb3, 40px -10px 0 1px #ffd700, -10px -20px 0 3px #eee8aa;
  animation: rlm-sparkle 5s ease-in-out infinite;
}
@keyframes rlm-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rlm-glow { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }
@keyframes rlm-metal { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rlm-metal-glow { 0% { box-shadow: 0 0 10px 2px rgba(255,215,0,0.2) } 100% { box-shadow: 0 0 30px 8px rgba(255,215,0,0.5) } }
@keyframes rlm-sparkle { 0%,100% { opacity: 0; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.5) } }

.scn-divided-city-poor-rich {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f23 40%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 60%);
}
.scn-divided-city-poor-rich .city-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%);
  animation: dcr-sky 10s ease-in-out infinite alternate;
}
.scn-divided-city-poor-rich .great-wall {
  position: absolute; inset: 30% 40% 10% 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5%; box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: dcr-wall 3s ease-in-out infinite alternate;
}
.scn-divided-city-poor-rich .rich-tower {
  position: absolute; bottom: 30%; left: 45%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5%; box-shadow: -5px 0 15px rgba(255,215,0,0.2);
  animation: dcr-tower 2s ease-in-out infinite;
}
.scn-divided-city-poor-rich .poor-hut {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10%; box-shadow: 2px 0 10px rgba(0,0,0,0.6);
  animation: dcr-hut 4s ease-in-out infinite;
}
.scn-divided-city-poor-rich .rich-light {
  position: absolute; bottom: 55%; left: 47%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd700 0%, rgba(255,215,0,0.3) 60%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #ffd700;
  animation: dcr-richlight 1.5s ease-in-out infinite alternate;
}
.scn-divided-city-poor-rich .poor-light {
  position: absolute; bottom: 55%; left: 38%; width: 5px; height: 5px;
  background: radial-gradient(circle, #d2b48c 0%, rgba(210,180,140,0.3) 60%);
  border-radius: 50%; box-shadow: 0 0 10px 3px #d2b48c;
  animation: dcr-poorlight 3s ease-in-out infinite alternate;
}
.scn-divided-city-poor-rich .figure-reach {
  position: absolute; bottom: 27%; left: 37%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center 80%;
  animation: dcr-reach 2s ease-in-out infinite;
}
@keyframes dcr-sky { 0% { opacity: 0.6 } 100% { opacity: 0.9 } }
@keyframes dcr-wall { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }
@keyframes dcr-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dcr-hut { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes dcr-richlight { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #ffd700 } 100% { opacity: 1; box-shadow: 0 0 30px 10px #ffd700 } }
@keyframes dcr-poorlight { 0% { opacity: 0.3; box-shadow: 0 0 5px 2px #d2b48c } 100% { opacity: 0.7; box-shadow: 0 0 15px 5px #d2b48c } }
@keyframes dcr-reach { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-4px) } }

.scn-wisdom-courage-temperance {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-wisdom-courage-temperance .temple-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 0 0 30% 30%;
  animation: wct-bg 20s ease-in-out infinite alternate;
}
.scn-wisdom-courage-temperance .scroll-stand {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%; box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: wct-scroll 6s ease-in-out infinite;
}
.scn-wisdom-courage-temperance .shield {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 45px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%);
  border-radius: 50% / 55% 55% 45% 45%;
  transform: translateX(-50%);
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: wct-shield 4s ease-in-out infinite;
}
.scn-wisdom-courage-temperance .scales {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: wct-scales 3s ease-in-out infinite alternate;
}
.scn-wisdom-courage-temperance .candle-glow {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 15px;
  background: radial-gradient(circle at 50% 30%, #ffd700 0%, #ff8c00 50%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 30px 8px rgba(255,140,0,0.5);
  animation: wct-candle 3s ease-in-out infinite alternate;
}
@keyframes wct-bg { 0% { opacity: 0.7 } 100% { opacity: 0.9 } }
@keyframes wct-scroll { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes wct-shield { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes wct-scales { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes wct-candle { 0% { opacity: 0.6; box-shadow: 0 0 20px 4px rgba(255,140,0,0.3) } 100% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,140,0,0.6) } }

.scn-each-his-own-work {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a0a 40%, #0a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a10 0%, transparent 60%);
}
.scn-each-his-own-work .workshop-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  animation: eho-floor 10s ease-in-out infinite alternate;
}
.scn-each-his-own-work .trader {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eho-trader 4s ease-in-out infinite;
}
.scn-each-his-own-work .auxiliary {
  position: absolute; bottom: 15%; left: 50%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: eho-aux 5s ease-in-out infinite 1s;
}
.scn-each-his-own-work .guardian {
  position: absolute; bottom: 15%; right: 15%; width: 25px; height: 48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eho-guard 6s ease-in-out infinite 2s;
}
.scn-each-his-own-work .tool-bench {
  position: absolute; bottom: 12%; left: 22%; width: 45px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  animation: eho-bench 8s ease-in-out infinite;
}
.scn-each-his-own-work .spear {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 30px;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 10%; transform: translateX(-50%);
  animation: eho-spear 3s ease-in-out infinite;
}
@keyframes eho-floor { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes eho-trader { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes eho-aux { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes eho-guard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes eho-bench { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes eho-spear { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }

/* scene: democratic-man */
.scn-democratic-man {
  background: linear-gradient(180deg, #2a2520 0%, #3a3228 40%, #4a3d30 100%),
              radial-gradient(ellipse at 30% 20%, #5a4a3a 0%, transparent 60%);
}
.scn-democratic-man .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3d30 0%, #2a2520 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-democratic-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3228 0%, #1e1a15 100%);
}
.scn-democratic-man .figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1a15 0%, #0e0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dm-figure 6s ease-in-out infinite;
}
.scn-democratic-man .pleasure-left {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a87a 0%, #a0805a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,168,122,0.5);
  animation: dm-pleasure 4s ease-in-out infinite alternate;
}
.scn-democratic-man .pleasure-right {
  position: absolute; bottom: 30%; right: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a87a 0%, #a0805a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,168,122,0.5);
  animation: dm-pleasure 4s ease-in-out infinite alternate reverse;
}
.scn-democratic-man .light-shaft {
  position: absolute; top: 10%; left: 45%; width: 10%;
  height: 60%;
  background: linear-gradient(180deg, rgba(200,180,150,0.15) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: dm-shaft 8s ease-in-out infinite alternate;
}
.scn-democratic-man .shadow-warp {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: dm-shadow 5s ease-in-out infinite alternate;
}
@keyframes dm-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(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) rotate(0); }
}
@keyframes dm-pleasure {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes dm-shaft {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(5px); }
  100% { opacity: 0.3; transform: translateX(-5px); }
}
@keyframes dm-shadow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

/* scene: liberty-anarchy-breeding */
.scn-liberty-anarchy-breeding {
  background: linear-gradient(180deg, #1a1a1a 0%, #2d2525 40%, #3a2020 100%),
              radial-gradient(ellipse at 70% 30%, #4a2a2a 0%, transparent 60%);
}
.scn-liberty-anarchy-breeding .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
.scn-liberty-anarchy-breeding .bg-mid {
  position: absolute; inset: 20% 10% 40% 10%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 30% 70% 40% 60%;
  filter: blur(8px);
  opacity: 0.4;
  animation: lab-mid 12s ease-in-out infinite alternate;
}
.scn-liberty-anarchy-breeding .figure-chaos {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1a1a 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lab-figure 3s ease-in-out infinite;
}
.scn-liberty-anarchy-breeding .impulse-1 {
  position: absolute; bottom: 40%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #a85a4a 0%, #803528 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(168,90,74,0.5);
  animation: lab-impulse 2s ease-in-out infinite alternate;
}
.scn-liberty-anarchy-breeding .impulse-2 {
  position: absolute; bottom: 35%; right: 28%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b87860 0%, #905040 100%);
  border-radius: 50%;
  box-shadow: 0 0 14px 3px rgba(184,120,96,0.4);
  animation: lab-impulse 2.5s ease-in-out infinite alternate reverse;
}
.scn-liberty-anarchy-breeding .crown-tilt {
  position: absolute; top: 15%; left: 45%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lab-crown 6s ease-in-out infinite;
}
.scn-liberty-anarchy-breeding .scatter {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: repeating-linear-gradient(90deg, #3a2a2a 0px, #3a2a2a 2px, transparent 2px, transparent 8px);
  opacity: 0.3;
  animation: lab-scatter 4s linear infinite;
}
@keyframes lab-mid {
  0% { transform: scale(1) translate(0,0); }
  50% { transform: scale(1.05) translate(10px,-5px); }
  100% { transform: scale(0.95) translate(-10px,5px); }
}
@keyframes lab-figure {
  0% { transform: translateX(-50%) rotate(0); }
  20% { transform: translateX(-50%) rotate(5deg) translateY(0); }
  40% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
  60% { transform: translateX(-50%) rotate(7deg) translateY(0); }
  80% { transform: translateX(-50%) rotate(-5deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes lab-impulse {
  0% { opacity: 0.5; transform: scale(1) translate(0,0); }
  50% { opacity: 1; transform: scale(1.5) translate(15px,-10px); }
  100% { opacity: 0.5; transform: scale(0.8) translate(-5px,5px); }
}
@keyframes lab-crown {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.1); }
  100% { transform: rotate(-20deg) scale(0.9); }
}
@keyframes lab-scatter {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}

/* scene: tyrant-purges-good */
.scn-tyrant-purges-good {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 40%, #2a1a18 100%),
              radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%);
}
.scn-tyrant-purges-good .bg-throne {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1512 0%, #0a0808 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-tyrant-purges-good .tyrant {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a18 0%, #0e0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: tpg-tyrant 8s ease-in-out infinite alternate;
}
.scn-tyrant-purges-good .victim {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: tpg-victim 5s ease-in-out infinite;
}
.scn-tyrant-purges-good .drone-1 {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1210 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tpg-drone 30s linear infinite;
}
.scn-tyrant-purges-good .drone-2 {
  position: absolute; top: 30%; right: 15%; width: 18px; height: 9px;
  background: linear-gradient(180deg, #4a3030 0%, #1a1210 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tpg-drone 25s linear infinite reverse;
}
.scn-tyrant-purges-good .blood-pool {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, #2a0e0e 100%);
  border-radius: 50% 50% 40% 40%;
  opacity: 0.5;
  animation: tpg-blood 7s ease-in-out infinite alternate;
}
.scn-tyrant-purges-good .chain {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 3px;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 50%, #4a3a3a 100%);
  border-radius: 2px;
  opacity: 0.6;
  animation: tpg-chain 10s ease-in-out infinite;
}
@keyframes tpg-tyrant {
  0% { transform: translateX(-50%) scale(1) rotate(0); }
  50% { transform: translateX(-50%) scale(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); }
}
@keyframes tpg-victim {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-5px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tpg-drone {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}
@keyframes tpg-blood {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes tpg-chain {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(3px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(0.95); }
}

/* scene: tyrannical-master-passion */
.scn-tyrannical-master-passion {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1420 40%, #2a1a30 100%),
              radial-gradient(ellipse at 60% 40%, #3a2040 0%, transparent 70%);
}
.scn-tyrannical-master-passion .bg-soul {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(50,30,60,0.3) 0%, transparent 60%);
  animation: tmp-soul 12s ease-in-out infinite alternate;
}
.scn-tyrannical-master-passion .master {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a30 0%, #120a18 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 30px rgba(80,50,100,0.4);
  animation: tmp-master 9s ease-in-out infinite alternate;
}
.scn-tyrannical-master-passion .slave {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tmp-slave 4s ease-in-out infinite;
}
.scn-tyrannical-master-passion .winged-drone {
  position: absolute; top: 25%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3060 0%, #2a1a40 100%);
  border-radius: 50% 50% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);
  animation: tmp-drone 6s ease-in-out infinite alternate;
}
.scn-tyrannical-master-passion .madness-glow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #6a4080 0%, transparent 70%);
  opacity: 0.4;
  animation: tmp-glow 5s ease-in-out infinite alternate;
}
.scn-tyrannical-master-passion .temperance-fragment {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 15px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  opacity: 0.3;
  transform: rotate(30deg);
  animation: tmp-fragment 8s linear infinite;
}
.scn-tyrannical-master-passion .chain {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 3px;
  background: linear-gradient(90deg, #4a3a4a 0%, #2a1a2a 50%, #4a3a4a 100%);
  border-radius: 2px;
  opacity: 0.5;
  animation: tmp-chain 7s ease-in-out infinite;
}
@keyframes tmp-soul {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes tmp-master {
  0% { transform: translateX(-50%) scale(1) rotate(0); }
  50% { transform: translateX(-50%) scale(1.03) rotate(2deg); }
  100% { transform: translateX(-50%) scale(0.97) rotate(-2deg); }
}
@keyframes tmp-slave {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes tmp-drone {
  0% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(20px,-30px) rotate(10deg); }
  100% { transform: translate(-10px,10px) rotate(-5deg); }
}
@keyframes tmp-glow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.8); }
}
@keyframes tmp-fragment {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(100deg) translateY(-20px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes tmp-chain {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}

/* inner-harmony-justice */
.scn-inner-harmony-justice {
  background: linear-gradient(180deg, #2c2a3a 0%, #3a3748 40%, #4a4355 100%),
              radial-gradient(ellipse at 30% 70%, #5a4a3a 0%, transparent 70%);
}
.scn-inner-harmony-justice .bg-walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a3748 0%, #2c2a3a 60%, #1e1c28 100%);
}
.scn-inner-harmony-justice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 10% 0 0 / 10% 5% 0 0;
}
.scn-inner-harmony-justice .lamp {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
}
.scn-inner-harmony-justice .glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 40px;
  transform: translate(-50%, 20%);
  background: radial-gradient(ellipse, rgba(230,190,120,0.6) 0%, transparent 70%);
  animation: ihj-glow 4s ease-in-out infinite alternate;
}
.scn-inner-harmony-justice .figure-reason {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ihj-fig-reason 6s ease-in-out infinite;
}
.scn-inner-harmony-justice .figure-spirit {
  position: absolute; bottom: 28%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ihj-fig-spirit 5s ease-in-out infinite;
}
.scn-inner-harmony-justice .figure-appetite {
  position: absolute; bottom: 28%; left: 70%; width: 28px; 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: ihj-fig-appetite 7s ease-in-out infinite;
}
.scn-inner-harmony-justice .table {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 10px;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a4a2a 100%);
  border-radius: 5px;
}
.scn-inner-harmony-justice .scroll {
  position: absolute; bottom: 32%; left: 47%; width: 16px; height: 8px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
}
@keyframes ihj-glow {
  0% { opacity: 0.7; transform: translate(-50%, 20%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, 18%) scale(1.1); }
  100% { opacity: 0.8; transform: translate(-50%, 20%) scale(0.95); }
}
@keyframes ihj-fig-reason {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ihj-fig-spirit {
  0% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes ihj-fig-appetite {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* women-guardians-education */
.scn-women-guardians-education {
  background: linear-gradient(180deg, #3a3440 0%, #4a4050 50%, #5a4a5a 100%),
              radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 80%);
}
.scn-women-guardians-education .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2530 0%, #3a3440 60%, #4a4050 100%);
}
.scn-women-guardians-education .desk {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 8px;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a4a2a 100%);
  border-radius: 4px;
}
.scn-women-guardians-education .book-stack {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5020 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}
.scn-women-guardians-education .lamp-light {
  position: absolute; bottom: 36%; left: 30%; width: 12px; height: 18px;
  background: radial-gradient(ellipse, #f0d080 0%, #c08040 70%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 0 20px 8px rgba(200,130,50,0.4);
  animation: wge-lamp 5s ease-in-out infinite alternate;
}
.scn-women-guardians-education .figure-reading {
  position: absolute; bottom: 26%; left: 48%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wge-figure 8s ease-in-out infinite;
}
.scn-women-guardians-education .scroll-open {
  position: absolute; bottom: 32%; left: 52%; width: 24px; height: 12px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: wge-scroll 6s ease-in-out infinite;
}
.scn-women-guardians-education .shield-lean {
  position: absolute; bottom: 28%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(10deg);
}
.scn-women-guardians-education .lyre {
  position: absolute; bottom: 32%; left: 35%; width: 18px; height: 28px;
  background: linear-gradient(0deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(-20deg);
}
@keyframes wge-lamp {
  0% { opacity: 0.7; transform: scale(1) rotate(-2deg); }
  50% { opacity: 1; transform: scale(1.1) rotate(0deg); }
  100% { opacity: 0.8; transform: scale(0.9) rotate(2deg); }
}
@keyframes wge-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wge-scroll {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

/* women-war-music */
.scn-women-war-music {
  background: linear-gradient(180deg, #3a3038 0%, #4a3840 50%, #5a4040 100%),
              radial-gradient(ellipse at 70% 40%, #4a3a30 0%, transparent 70%);
}
.scn-women-war-music .bg-interior {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #2a2028 0%, #3a3038 100%);
}
.scn-women-war-music .column {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 70px;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 50%, #7a6a5a 100%);
  border-radius: 4px;
}
.scn-women-war-music .torch {
  position: absolute; bottom: 50%; left: 80%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 2px;
}
.scn-women-war-music .torch-glow {
  position: absolute; bottom: 48%; left: 78%; width: 30px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,130,50,0.5) 0%, transparent 70%);
  animation: wwm-glow 3s ease-in-out infinite alternate;
}
.scn-women-war-music .figure-warrior {
  position: absolute; bottom: 26%; left: 50%; width: 32px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wwm-warrior 7s ease-in-out infinite;
}
.scn-women-war-music .shield {
  position: absolute; bottom: 28%; left: 55%; width: 28px; height: 34px;
  background: radial-gradient(circle at 40% 40%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: wwm-shield 5s ease-in-out infinite;
}
.scn-women-war-music .lyre-onpedestal {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(0deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: wwm-lyre 6s ease-in-out infinite;
}
.scn-women-war-music .scroll-music {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
}
.scn-women-war-music .sword {
  position: absolute; bottom: 34%; left: 65%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 4px 4px 20% 20%;
  transform: rotate(-15deg);
}
@keyframes wwm-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes wwm-warrior {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes wwm-shield {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes wwm-lyre {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}

/* community-wives-children */
.scn-community-wives-children {
  background: linear-gradient(180deg, #3a3030 0%, #4a3a38 50%, #5a4040 100%),
              radial-gradient(ellipse at 50% 90%, #5a4a3a 0%, transparent 80%);
}
.scn-community-wives-children .bg-hearth {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2020 0%, #3a3030 100%);
}
.scn-community-wives-children .hearth-fire {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #f08040 0%, #c04020 40%, #a03020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: cwc-fire 2s ease-in-out infinite alternate;
}
.scn-community-wives-children .fire-glow {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 60px;
  transform: translate(-50%, 10%);
  background: radial-gradient(ellipse, rgba(200,80,30,0.3) 0%, transparent 70%);
  animation: cwc-glow 4s ease-in-out infinite alternate;
}
.scn-community-wives-children .child-1 {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child1 6s ease-in-out infinite;
}
.scn-community-wives-children .child-2 {
  position: absolute; bottom: 26%; left: 45%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child2 7s ease-in-out infinite 0.5s;
}
.scn-community-wives-children .child-3 {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwc-child3 5s ease-in-out infinite 1s;
}
.scn-community-wives-children .figure-woman {
  position: absolute; bottom: 24%; left: 48%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: cwc-woman 8s ease-in-out infinite;
}
.scn-community-wives-children .common-bed {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 12px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a4a 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
}
@keyframes cwc-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); }
  50% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9); }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); }
}
@keyframes cwc-glow {
  0% { opacity: 0.5; transform: translate(-50%, 10%) scale(1); }
  50% { opacity: 0.8; transform: translate(-50%, 8%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, 10%) scale(0.95); }
}
@keyframes cwc-child1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes cwc-child2 {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cwc-child3 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cwc-woman {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

/* piraeus-journey */
.scn-piraeus-journey { background: linear-gradient(180deg, #7a8a9a 0%, #9aaab5 40%, #b8c8d0 80%), radial-gradient(ellipse at 50% 100%, #c0d0d8 0%, transparent 70%); }
.scn-piraeus-journey .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0c0cc 0%, #d0dce0 100%); animation: pj-sky 14s ease-in-out infinite alternate; }
.scn-piraeus-journey .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #708090 0%, #5a6a7a 100%); border-radius:0; animation: pj-sea 8s ease-in-out infinite alternate; }
.scn-piraeus-journey .city-skyline { position:absolute; bottom:45%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 70%), radial-gradient(circle at 20% 20%, #3a4a5a 0%, transparent 70%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; mask-image: linear-gradient(180deg, #000 0%, transparent 40%); animation: pj-skyline 20s ease-in-out infinite alternate; }
.scn-piraeus-journey .pier { position:absolute; bottom:45%; left:20%; right:40%; height:4%; background: #5a4a3a; border-radius: 2px 2px 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: pj-pier 12s ease-in-out infinite alternate; }
.scn-piraeus-journey .figure-a { position:absolute; bottom:46%; left:25%; width:12px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pj-walk-a 4s ease-in-out infinite; }
.scn-piraeus-journey .figure-b { position:absolute; bottom:46%; left:32%; width:14px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pj-walk-b 4.5s ease-in-out infinite; }
.scn-piraeus-journey .distant-temple { position:absolute; bottom:45%; left:55%; width:30px; height:25px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); clip-path: polygon(20% 100%, 80% 100%, 80% 20%, 60% 0%, 40% 0%, 20% 20%); border-radius: 2px; animation: pj-temple 16s ease-in-out infinite alternate; }
@keyframes pj-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pj-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pj-skyline { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pj-pier { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pj-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes pj-walk-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(-12px) translateY(0) rotate(2deg) } 75% { transform: translateX(-18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0) } }
@keyframes pj-temple { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }

/* simonides-definition */
.scn-simonides-definition { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 80%), radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 60%); }
.scn-simonides-definition .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; animation: sd-wall 12s ease-in-out infinite alternate; }
.scn-simonides-definition .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0; animation: sd-floor 16s ease-in-out infinite alternate; }
.scn-simonides-definition .table { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: sd-table 8s ease-in-out infinite alternate; }
.scn-simonides-definition .lamp-glow { position:absolute; bottom:35%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #ffe080 0%, #c8a050 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px #c8a050; animation: sd-lamp 4s ease-in-out infinite alternate; }
.scn-simonides-definition .figure-left { position:absolute; bottom:25%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sd-figure-l 6s ease-in-out infinite; }
.scn-simonides-definition .figure-right { position:absolute; bottom:25%; right:20%; width:18px; height:42px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sd-figure-r 6s ease-in-out infinite reverse; }
.scn-simonides-definition .scroll { position:absolute; bottom:22%; left:48%; width:8px; height:12px; background: #c8a070; border-radius:2px; transform:rotate(-15deg); animation: sd-scroll 10s ease-in-out infinite alternate; }
@keyframes sd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sd-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sd-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sd-lamp { 0% { box-shadow: 0 0 30px 15px #c8a050; opacity:0.9 } 50% { box-shadow: 0 0 50px 25px #e0b060; opacity:1 } 100% { box-shadow: 0 0 35px 18px #c8a050; opacity:0.85 } }
@keyframes sd-figure-l { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sd-figure-r { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sd-scroll { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(-15deg) scale(1) } }

/* justice-useless-safekeeping */
.scn-justice-useless-safekeeping { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 80%), radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 70%); }
.scn-justice-useless-safekeeping .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:0 0 10% 10% / 0 0 5% 5%; animation: ju-wall 8s ease-in-out infinite alternate; }
.scn-justice-useless-safekeeping .room-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: ju-floor 14s ease-in-out infinite alternate; }
.scn-justice-useless-safekeeping .wooden-box { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: ju-box 6s ease-in-out infinite alternate; }
.scn-justice-useless-safekeeping .coin-pile { position:absolute; bottom:28%; left:32%; width:20px; height:6px; background: radial-gradient(circle, #c8a050 0%, #a08030 70%); border-radius:50%; box-shadow: 0 0 8px 4px #a08030; animation: ju-coins 3s ease-in-out infinite alternate; }
.scn-justice-useless-safekeeping .figure-ta { position:absolute; bottom:30%; left:15%; width:18px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ju-fig-a 5s ease-in-out infinite; }
.scn-justice-useless-safekeeping .figure-tb { position:absolute; bottom:30%; right:15%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ju-fig-b 5s ease-in-out infinite reverse; }
.scn-justice-useless-safekeeping .shadow-hand { position:absolute; bottom:28%; left:40%; width:12px; height:8px; background: #0a0a1a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform:rotate(20deg); animation: ju-hand 2s ease-in-out infinite; }
@keyframes ju-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ju-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ju-box { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes ju-coins { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ju-fig-a { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ju-fig-b { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ju-hand { 0% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(25deg) translate(3px,-2px) } 100% { transform: rotate(20deg) translate(0,0) } }

/* just-man-thief */
.scn-just-man-thief { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 80%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 70%); }
.scn-just-man-thief .deep-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:0 0 5% 5% / 0 0 2% 2%; animation: jt-wall 10s ease-in-out infinite alternate; }
.scn-just-man-thief .stone-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: jt-floor 12s ease-in-out infinite alternate; }
.scn-just-man-thief .locked-chest { position:absolute; bottom:20%; left:40%; width:36px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: inset 0 0 0 2px #6a5a4a, 0 4px 12px rgba(0,0,0,0.7); animation: jt-chest 7s ease-in-out infinite alternate; }
.scn-just-man-thief .torch-flame { position:absolute; bottom:35%; left:50%; width:14px; height:18px; background: radial-gradient(circle at 50% 100%, #e07020 0%, #c85010 60%, #a03000 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 30px 15px #e07020, 0 0 60px 30px rgba(224,112,32,0.4); animation: jt-flame 1.5s ease-in-out infinite alternate; }
.scn-just-man-thief .thief-silhouette { position:absolute; bottom:25%; left:35%; width:20px; height:48px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jt-thief 4s ease-in-out infinite; }
.scn-just-man-thief .light-ray { position:absolute; bottom:35%; left:45%; width:60px; height:40px; background: linear-gradient(135deg, rgba(224,112,32,0.3) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 60% 100%, 0% 100%); animation: jt-ray 3s ease-in-out infinite alternate; }
.scn-just-man-thief .key-ring { position:absolute; bottom:22%; left:45%; width:8px; height:10px; background: #c0a070; border-radius:50%; box-shadow: 0 0 4px 2px #c0a070; animation: jt-key 5s ease-in-out infinite; }
@keyframes jt-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes jt-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes jt-chest { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes jt-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.2) scaleX(0.9) translateY(-2px) } 100% { transform: scaleY(1) scaleX(1) translateY(0) } }
@keyframes jt-thief { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes jt-ray { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes jt-key { 0% { transform: rotate(0) translate(0,0) } 50% { transform: rotate(30deg) translate(2px,-1px) } 100% { transform: rotate(0) translate(0,0) } }

.scn-ban-laughter-gods {
  background: 
    linear-gradient(140deg, #1f1a2e 0%, #2a223a 40%, #3b2e4a 100%),
    radial-gradient(ellipse at 40% 60%, #5a4a3a 0%, #1f1a2e 70%);
}
.scn-ban-laughter-gods .wall-depth { position:absolute; inset:0; background: linear-gradient(180deg, #2a223a 0%, #1a1430 100%); animation: blg-walls 20s ease-in-out infinite alternate; }
.scn-ban-laughter-gods .stone-table { position:absolute; bottom:15%; left:20%; right:20%; height:20px; background: linear-gradient(90deg, #4a3a2a, #5a4a3a, #4a3a2a); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-ban-laughter-gods .lamp-glow { position:absolute; bottom:45%; left:50%; width:30px; height:40px; transform:translate(-50%,0); background: radial-gradient(circle at 50% 30%, #f0c068 0%, #c08040 40%, transparent 80%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 40px 20px rgba(192,128,64,.3), 0 0 80px 40px rgba(192,128,64,.1); animation: blg-lamp 6s ease-in-out infinite alternate; }
.scn-ban-laughter-gods .lawgiver { position:absolute; bottom:20%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blg-figure 12s ease-in-out infinite; }
.scn-ban-laughter-gods .tablet { position:absolute; bottom:25%; left:40%; width:30px; height:20px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-5deg); animation: blg-tablet 8s ease-in-out infinite alternate; }
.scn-ban-laughter-gods .shadow-sweep { position:absolute; bottom:10%; left:20%; width:60%; height:40%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%); filter: blur(8px); animation: blg-shad 18s linear infinite; }
.scn-ban-laughter-gods .dust-motes { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,150,.15) 0%, transparent 100%); filter: blur(6px); animation: blg-dust 25s linear infinite; }
@keyframes blg-walls { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes blg-lamp { 0% { opacity:.8; box-shadow: 0 0 30px 10px rgba(192,128,64,.2); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(192,128,64,.4); } 100% { opacity:.85; box-shadow: 0 0 35px 12px rgba(192,128,64,.25); } }
@keyframes blg-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes blg-tablet { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes blg-shad { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }
@keyframes blg-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-20px) scale(1.2); } 100% { transform: translateY(0) scale(1); } }

.scn-imitation-virtue {
  background: 
    linear-gradient(110deg, #1e1e2a 0%, #2a2e3a 50%, #3a3e4a 100%),
    radial-gradient(ellipse at 40% 70%, #4a4e5a 0%, #1e1e2a 70%);
}
.scn-imitation-virtue .bg-arch { position:absolute; inset:0; background: linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); animation: imv-arch 24s ease-in-out infinite alternate; }
.scn-imitation-virtue .column-left { position:absolute; bottom:15%; left:15%; width:12px; height:60%; background: linear-gradient(90deg, #3a3e4a, #4a4e5a, #3a3e4a); border-radius:10% 10% 0 0; box-shadow: 0 0 8px rgba(0,0,0,.4); }
.scn-imitation-virtue .pedestal { position:absolute; bottom:20%; left:25%; width:40px; height:10px; background: #4a4e5a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: imv-ped4 16s ease-in-out infinite; }
.scn-imitation-virtue .guardian-teach { position:absolute; bottom:22%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: imv-guard 15s ease-in-out infinite; }
.scn-imitation-virtue .youth-copy { position:absolute; bottom:22%; left:48%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: imv-youth 12s ease-in-out infinite; }
.scn-imitation-virtue .mirror-pool { position:absolute; bottom:28%; left:38%; width:28px; height:28px; background: radial-gradient(circle, #6a6e7a 0%, #3a3e4a 60%); border-radius:50%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: imv-mirr 10s ease-in-out infinite alternate; }
.scn-imitation-virtue .silhouette-rim { position:absolute; bottom:18%; left:15%; right:15%; height:5px; background: rgba(0,0,0,.3); filter: blur(4px); animation: imv-rim 20s linear infinite; }
@keyframes imv-arch { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes imv-ped4 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes imv-guard { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(0) translateY(-1px); } 60% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes imv-youth { 0% { transform: rotate(1deg) translateY(0); } 40% { transform: rotate(0) translateY(-2px); } 80% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0) translateY(-1px); } }
@keyframes imv-mirr { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.8; transform: scale(1); } }
@keyframes imv-rim { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }

.scn-music-rhythm-harmony {
  background: 
    linear-gradient(130deg, #1f1c2a 0%, #2a263a 40%, #3a324a 100%),
    radial-gradient(ellipse at 50% 50%, #4a3e5a 0%, #1f1c2a 70%);
}
.scn-music-rhythm-harmony .alcove-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a263a 0%, #1a162a 100%); animation: mrh-wall 22s ease-in-out infinite alternate; }
.scn-music-rhythm-harmony .musician-figure { position:absolute; bottom:20%; left:38%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mrh-play 8s ease-in-out infinite; }
.scn-music-rhythm-harmony .lyre { position:absolute; bottom:30%; left:42%; width:16px; height:24px; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: mrh-lyre 4s ease-in-out infinite alternate; }
.scn-music-rhythm-harmony .scroll-open { position:absolute; bottom:15%; left:50%; width:30px; height:14px; background: linear-gradient(90deg, #d4c4a0 0%, #b8a888 100%); border-radius:20% 20% 10% 10%; transform: rotate(-10deg); animation: mrh-scroll 12s ease-in-out infinite; }
.scn-music-rhythm-harmony .candle-halo { position:absolute; bottom:50%; left:30%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #f0d090 0%, #c08040 30%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,128,64,.25); animation: mrh-candle 7s ease-in-out infinite alternate; }
.scn-music-rhythm-harmony .floor-tile { position:absolute; bottom:12%; left:10%; right:10%; height:8px; background: repeating-linear-gradient(90deg, #2a2230 0px, #3a3240 4px, #2a2230 8px); border-radius:2px; animation: mrh-floor 18s linear infinite; }
.scn-music-rhythm-harmony .sound-waves { position:absolute; top:20%; left:45%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,180,160,.1) 0%, transparent 100%); filter: blur(10px); animation: mrh-wave 9s ease-in-out infinite; }
@keyframes mrh-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes mrh-play { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes mrh-lyre { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes mrh-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes mrh-candle { 0% { opacity:.7; box-shadow: 0 0 20px 6px rgba(192,128,64,.15); } 50% { opacity:1; box-shadow: 0 0 40px 14px rgba(192,128,64,.3); } 100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(192,128,64,.2); } }
@keyframes mrh-floor { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes mrh-wave { 0% { transform: scale(1) rotate(0); opacity:.3; } 50% { transform: scale(1.3) rotate(10deg); opacity:.6; } 100% { transform: scale(1) rotate(0); opacity:.3; } }

.scn-asclepius-physician {
  background: 
    linear-gradient(120deg, #1a1e24 0%, #242a34 40%, #343a44 100%),
    radial-gradient(ellipse at 50% 70%, #4a5058 0%, #1a1e24 70%);
}
.scn-asclepius-physician .sickbed { position:absolute; bottom:10%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #2a3038 0%, #1a1e24 100%); border-radius:10px 10px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: asp-bed 14s ease-in-out infinite alternate; }
.scn-asclepius-physician .healer-near { position:absolute; bottom:12%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: asp-heal 12s ease-in-out infinite; }
.scn-asclepius-physician .patient-form { position:absolute; bottom:12%; left:50%; width:24px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: asp-pt 10s ease-in-out infinite; }
.scn-asclepius-physician .herb-bundle { position:absolute; bottom:22%; left:28%; width:10px; height:18px; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius:20% 20% 50% 50%; transform: rotate(-15deg); animation: asp-herb 18s ease-in-out infinite; }
.scn-asclepius-physician .lamp-high { position:absolute; top:40%; left:50%; width:24px; height:30px; background: radial-gradient(circle at 50% 30%, #d0b080 0%, #a08050 40%, transparent 80%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 30px 8px rgba(160,128,80,.25); animation: asp-lamp 6s ease-in-out infinite alternate; }
.scn-asclepius-physician .stool-low { position:absolute; bottom:6%; left:42%; width:16px; height:8px; background: #3a3e44; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: asp-stool 20s ease-in-out infinite; }
.scn-asclepius-physician .veil-curtain { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(6px); animation: asp-veil 30s linear infinite; }
@keyframes asp-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes asp-heal { 0% { transform: rotate(-3deg) translateY(0); } 40% { transform: rotate(0) translateY(-2px); } 80% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes asp-pt { 0% { transform: rotate(1deg) translateY(0); } 30% { transform: rotate(0) translateY(-2px); } 70% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0) translateY(-1px); } }
@keyframes asp-herb { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes asp-lamp { 0% { opacity:.7; box-shadow: 0 0 20px 4px rgba(160,128,80,.15); } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(160,128,80,.3); } 100% { opacity:.8; box-shadow: 0 0 25px 6px rgba(160,128,80,.2); } }
@keyframes asp-stool { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes asp-veil { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* item-gyges-ring */
.scn-item-gyges-ring {
  background: radial-gradient(ellipse at 40% 50%, #4a2e1a 0%, #1a0f08 70%), linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%);
}
.scn-item-gyges-ring .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0f08 0%, transparent 60%);
  animation: gr-ambient 12s ease-in-out infinite alternate;
}
.scn-item-gyges-ring .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: gr-table 6s ease-in-out infinite;
}
.scn-item-gyges-ring .hand {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gr-hand 8s ease-in-out infinite;
}
.scn-item-gyges-ring .ring-glow {
  position: absolute; bottom: 42%; left: 35%; width: 18px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.4);
  animation: gr-ring 1.5s ease-in-out infinite alternate;
}
.scn-item-gyges-ring .shadow-flick {
  position: absolute; bottom: 10%; left: 25%; right: 30%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: gr-shadow 3s ease-in-out infinite alternate;
}
.scn-item-gyges-ring .candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #3a2a10 100%);
  border-radius: 20% 20% 0 0;
}
.scn-item-gyges-ring .candle::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  animation: gr-flame 1s ease-in-out infinite alternate;
}
@keyframes gr-ambient { 0%,100% { opacity: .7; } 50% { opacity: .9; } }
@keyframes gr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes gr-hand { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gr-ring { 0% { box-shadow: 0 0 20px 8px #c08040, 0 0 40px 12px rgba(192,128,64,.3); opacity: .8; } 50% { box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 25px rgba(255,208,96,.5); opacity: 1; } 100% { box-shadow: 0 0 25px 10px #c08040, 0 0 50px 18px rgba(192,128,64,.35); opacity: .85; } }
@keyframes gr-shadow { 0% { opacity: .3; } 100% { opacity: .7; } }
@keyframes gr-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.3) translateY(-3px); } }

/* city-of-pigs */
.scn-city-of-pigs {
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #1a1208 70%), linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%);
}
.scn-city-of-pigs .hut-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 50%);
  animation: cp-hut 10s ease-in-out infinite alternate;
}
.scn-city-of-pigs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-city-of-pigs .pig {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #b08060 0%, #8a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cp-pig 3s ease-in-out infinite;
}
.scn-city-of-pigs .trough {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: cp-trough 4s ease-in-out infinite;
}
.scn-city-of-pigs .hay {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #c0a060 0%, #8a7030 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(2px);
  animation: cp-hay 6s ease-in-out infinite alternate;
}
.scn-city-of-pigs .lantern {
  position: absolute; bottom: 40%; left: 25%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(192,128,64,.3);
  animation: cp-lantern 2s ease-in-out infinite alternate;
}
@keyframes cp-hut { 0%,100% { opacity: .8; } 50% { opacity: .95; } }
@keyframes cp-pig { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-2px) translateX(3px) rotate(-5deg); } 50% { transform: translateY(0) translateX(6px) rotate(0deg); } 75% { transform: translateY(-1px) translateX(3px) rotate(5deg); } 100% { transform: translateY(0) translateX(0); } }
@keyframes cp-trough { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cp-hay { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(.98); } }
@keyframes cp-lantern { 0% { box-shadow: 0 0 15px 5px #c08040, 0 0 30px 10px rgba(192,128,64,.3); opacity: .8; } 100% { box-shadow: 0 0 25px 10px #ffd060, 0 0 50px 18px rgba(255,208,96,.5); opacity: 1; } }

/* autolycus-theft */
.scn-autolycus-theft {
  background: radial-gradient(ellipse at 30% 50%, #3a4a5a 0%, #1a222a 70%), linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-autolycus-theft .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, transparent 60%);
  animation: at-ambient 15s ease-in-out infinite alternate;
}
.scn-autolycus-theft .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 0 0 0 0;
}
.scn-autolycus-theft .window {
  position: absolute; top: 20%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a3a4a 100%);
  border: 4px solid #0a0a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.1);
}
.scn-autolycus-theft .figure {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure 8s ease-in-out infinite;
}
.scn-autolycus-theft .bag {
  position: absolute; bottom: 24%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30%;
  animation: at-bag 5s ease-in-out infinite alternate;
}
.scn-autolycus-theft .coin {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c0a060 0%, #806030 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(192,160,96,.5);
  animation: at-coin 3s ease-in-out infinite;
}
@keyframes at-ambient { 0%,100% { opacity: .6; } 50% { opacity: .85; } }
@keyframes at-figure { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes at-bag { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(-5px) scale(.95); } }
@keyframes at-coin { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(90deg); } 50% { transform: translateY(0) rotate(180deg); } 75% { transform: translateY(-2px) rotate(270deg); } 100% { transform: translateY(0) rotate(360deg); } }

/* true-lie-god */
.scn-true-lie-god {
  background: radial-gradient(ellipse at 60% 40%, #3a3a4a 0%, #1a1a2a 70%), linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
}
.scn-true-lie-god .study-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, transparent 50%);
  animation: tl-ambient 14s ease-in-out infinite alternate;
}
.scn-true-lie-god .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
}
.scn-true-lie-god .scroll {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #c0a060 0%, #8a7030 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform-origin: center left;
  animation: tl-scroll 10s ease-in-out infinite;
}
.scn-true-lie-god .lyre {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-true-lie-god .lyre::after {
  content: ''; position: absolute; top: 10%; left: 20%; width: 60%; height: 80%;
  border: 2px solid #5a3a1a;
  border-radius: 50%;
}
.scn-true-lie-god .poet-figure {
  position: absolute; bottom: 16%; left: 20%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tl-poet 9s ease-in-out infinite;
}
.scn-true-lie-god .mask {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 25px;
  background: radial-gradient(circle at 40% 30%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,.5);
  animation: tl-mask 6s ease-in-out infinite alternate;
}
@keyframes tl-ambient { 0%,100% { opacity: .7; } 50% { opacity: .9; } }
@keyframes tl-scroll { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(-8px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes tl-poet { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes tl-mask { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-allegory-cave { background: linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #3b2218 70%, #1a0e0a 100%), radial-gradient(ellipse at 60% 80%, #ff7a30 0%, rgba(255,122,48,0) 60%); position: relative; overflow: hidden; }
.scn-allegory-cave .cave-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1c1210 0%, #2c1a14 40%, #1c1210 100%); animation: ac-breathe 12s ease-in-out infinite; }
.scn-allegory-cave .fire { position: absolute; bottom: 15%; left: 55%; width: 40px; height: 60px; background: radial-gradient(ellipse 40% 60% at 50% 100%, #ff6a20 0%, #e04e10 40%, #8c2e0a 100%); border-radius: 50% 50% 30% 30%; animation: ac-fire 2s ease-in-out infinite alternate; }
.scn-allegory-cave .fire-glow { position: absolute; bottom: 15%; left: 55%; width: 120px; height: 120px; transform: translate(-50%, -30%); background: radial-gradient(circle, #ff8c40 0%, rgba(255,140,64,0.3) 40%, transparent 70%); border-radius: 50%; animation: ac-glow 2.5s ease-in-out infinite alternate; }
.scn-allegory-cave .chain { position: absolute; bottom: 25%; left: 30%; width: 6px; height: 80px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 3px; transform: rotate(12deg); transform-origin: top center; animation: ac-swing 4s ease-in-out infinite; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-allegory-cave .prisoner-a { position: absolute; bottom: 22%; left: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-fidget 6s ease-in-out infinite; }
.scn-allegory-cave .prisoner-b { position: absolute; bottom: 22%; left: 70%; width: 22px; height: 48px; background: linear-gradient(180deg, #1c1614 0%, #100c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-fidget 6s ease-in-out infinite reverse; }
.scn-allegory-cave .shadow-a { position: absolute; bottom: 18%; left: 20%; width: 60px; height: 80px; background: radial-gradient(ellipse 60% 80% at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ac-shad 5s ease-in-out infinite; }
.scn-allegory-cave .shadow-b { position: absolute; bottom: 18%; right: 15%; width: 70px; height: 90px; background: radial-gradient(ellipse 60% 80% at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: ac-shad 5s ease-in-out infinite reverse; }
@keyframes ac-breathe { 0%, 100% { opacity: 0.85; } 50% { opacity: 1; } }
@keyframes ac-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.08) scaleX(0.95); } 100% { transform: scaleY(0.95) scaleX(1.05); } }
@keyframes ac-glow { 0% { opacity: 0.7; transform: translate(-50%, -30%) scale(0.95); } 50% { opacity: 1; transform: translate(-50%, -30%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%, -30%) scale(1); } }
@keyframes ac-swing { 0%, 100% { transform: rotate(8deg); } 50% { transform: rotate(14deg); } }
@keyframes ac-fidget { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes ac-shad { 0%, 100% { opacity: 0.5; transform: translateX(0) scale(1); } 50% { opacity: 0.8; transform: translateX(10px) scale(1.05); } }

.scn-arithmetic-abstract { background: linear-gradient(180deg, #2a2a2e 0%, #3a3a40 40%, #2a2a2e 100%), radial-gradient(ellipse at 60% 30%, #4a4a50 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-arithmetic-abstract .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #222226 0%, #3a3a3e 60%, #222226 100%); animation: aa-pulse 15s ease-in-out infinite; }
.scn-arithmetic-abstract .lamp { position: absolute; top: 12%; left: 50%; width: 16px; height: 40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 0 20px rgba(200,180,120,0.3); }
.scn-arithmetic-abstract .lamp-glow { position: absolute; top: 8%; left: 50%; width: 100px; height: 100px; transform: translate(-50%, -20%); background: radial-gradient(circle, #c8b478 0%, rgba(200,180,120,0.15) 40%, transparent 70%); border-radius: 50%; animation: aa-glow 4s ease-in-out infinite alternate; }
.scn-arithmetic-abstract .finger-line { position: absolute; bottom: 35%; left: 35%; width: 80px; height: 6px; background: linear-gradient(90deg, #4a3a2a 0%, #7a6a4a 100%); border-radius: 3px; transform: rotate(20deg); transform-origin: left center; animation: aa-point 5s ease-in-out infinite; }
.scn-arithmetic-abstract .finger-thumb { position: absolute; bottom: 33%; left: 30%; width: 18px; height: 18px; background: radial-gradient(circle, #8a7a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 50% 20%; transform: rotate(-10deg); animation: aa-point 5s ease-in-out infinite; }
.scn-arithmetic-abstract .geometric-square { position: absolute; bottom: 20%; left: 20%; width: 60px; height: 60px; background: linear-gradient(135deg, #6a6a6e 0%, #4a4a4e 100%); border-radius: 10%; box-shadow: 0 0 12px rgba(0,0,0,0.4); animation: aa-spin 10s linear infinite; }
.scn-arithmetic-abstract .geometric-circle { position: absolute; bottom: 18%; right: 25%; width: 50px; height: 50px; background: radial-gradient(circle, #7a7a7e 0%, #4a4a4e 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.3); animation: aa-float 8s ease-in-out infinite; }
.scn-arithmetic-abstract .shadow-table { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
@keyframes aa-pulse { 0%, 100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes aa-glow { 0% { opacity: 0.6; transform: translate(-50%, -20%) scale(0.9); } 50% { opacity: 0.9; transform: translate(-50%, -20%) scale(1.1); } 100% { opacity: 0.7; transform: translate(-50%, -20%) scale(0.95); } }
@keyframes aa-point { 0%, 100% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } }
@keyframes aa-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes aa-float { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.05); } }

.scn-astronomy-harmony { background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #0e0e1e 100%), radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-astronomy-harmony .night-sky { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #16162a 60%, #0a0a1a 100%); animation: ah-breathe 20s ease-in-out infinite; }
.scn-astronomy-harmony .moon { position: absolute; top: 12%; right: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #e8e0c0 0%, #c8c0a0 80%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 8px #c8c0a0; animation: ah-moon 12s ease-in-out infinite alternate; }
.scn-astronomy-harmony .star-field { position: absolute; top: 0; left: 0; right: 0; bottom: 50%; background: radial-gradient(1px 1px at 20% 30%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 40% 10%, #ffd 0%, transparent 100%), radial-gradient(1px 1px at 60% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 40%, #ffe 0%, transparent 100%), radial-gradient(1px 1px at 10% 60%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 90% 15%, #ffd 0%, transparent 100%); background-size: 100% 100%; animation: ah-twinkle 6s ease-in-out infinite alternate; }
.scn-astronomy-harmony .orbit-circle { position: absolute; top: 15%; left: 50%; width: 200px; height: 200px; transform: translate(-50%, -30%); border: 1px solid rgba(200,200,220,0.15); border-radius: 50%; animation: ah-orbit 30s linear infinite; }
.scn-astronomy-harmony .planet-small { position: absolute; top: 15%; left: 50%; width: 14px; height: 14px; background: radial-gradient(circle, #a0a0b0 0%, #606070 100%); border-radius: 50%; transform: translate(-50%, -30%); animation: ah-planet 12s linear infinite; box-shadow: 0 0 8px rgba(160,160,176,0.3); }
.scn-astronomy-harmony .figure-silhouette { position: absolute; bottom: 18%; left: 30%; width: 24px; height: 60px; background: linear-gradient(180deg, #121218 0%, #080812 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ah-look 8s ease-in-out infinite; }
.scn-astronomy-harmony .staff { position: absolute; bottom: 22%; left: 28%; width: 4px; height: 80px; background: linear-gradient(180deg, #3a3528 0%, #1a1812 100%); border-radius: 2px; transform: rotate(10deg); transform-origin: bottom center; animation: ah-staff 8s ease-in-out infinite; box-shadow: 0 0 4px rgba(0,0,0,0.5); }
@keyframes ah-breathe { 0%, 100% { opacity: 0.85; } 50% { opacity: 1; } }
@keyframes ah-moon { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes ah-twinkle { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ah-orbit { 0% { transform: translate(-50%, -30%) rotate(0deg); } 100% { transform: translate(-50%, -30%) rotate(360deg); } }
@keyframes ah-planet { 0% { transform: translate(-50%, -30%) rotate(0deg) translateX(100px); } 100% { transform: translate(-50%, -30%) rotate(360deg) translateX(100px); } }
@keyframes ah-look { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes ah-staff { 0%, 100% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } }

.scn-dialectic-coping-stone { background: linear-gradient(180deg, #2a2824 0%, #3c3832 40%, #2a2824 100%), radial-gradient(ellipse at 50% 80%, #4a4440 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-dialectic-coping-stone .chamber-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #22201c 0%, #3a3630 60%, #22201c 100%); animation: dc-breathe 18s ease-in-out infinite; }
.scn-dialectic-coping-stone .pillar-left { position: absolute; bottom: 0; left: 15%; width: 20px; height: 80%; background: linear-gradient(180deg, #6a6258 0%, #4a443c 100%); border-radius: 8% 8% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.4); filter: blur(0.5px); }
.scn-dialectic-coping-stone .pillar-right { position: absolute; bottom: 0; right: 15%; width: 20px; height: 80%; background: linear-gradient(180deg, #6a6258 0%, #4a443c 100%); border-radius: 8% 8% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.4); filter: blur(0.5px); }
.scn-dialectic-coping-stone .step-1 { position: absolute; bottom: 6%; left: 30%; right: 30%; height: 8%; background: linear-gradient(180deg, #5a544c 0%, #4a443c 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dialectic-coping-stone .step-2 { position: absolute; bottom: 14%; left: 28%; right: 28%; height: 7%; background: linear-gradient(180deg, #5a544c 0%, #4a443c 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dialectic-coping-stone .step-3 { position: absolute; bottom: 21%; left: 26%; right: 26%; height: 7%; background: linear-gradient(180deg, #5a544c 0%, #4a443c 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dialectic-coping-stone .light-column { position: absolute; top: 0; left: 45%; right: 45%; height: 100%; background: linear-gradient(180deg, rgba(230,220,200,0.12) 0%, rgba(230,220,200,0.05) 60%, transparent 100%); filter: blur(8px); animation: dc-light 10s ease-in-out infinite alternate; }
.scn-dialectic-coping-stone .shadow-figure { position: absolute; bottom: 8%; left: 50%; width: 26px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1c1816 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: dc-ascend 14s ease-in-out infinite; }
@keyframes dc-breathe { 0%, 100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes dc-light { 0% { opacity: 0.4; transform: scaleY(0.95); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(1); } }
@keyframes dc-ascend { 0%, 100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-6px) scale(1.02); } }

.scn-item-pruning-knife { background: linear-gradient(180deg, #1a1510 0%, #2a1e14 40%, #1c1410 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-item-pruning-knife .bg-wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(135deg, #2a1e14 0%, #1a1510 70%); animation: si2-wall 16s ease-in-out infinite alternate; }
.scn-item-pruning-knife .table-top { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 0 0 / 6% 6% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-item-pruning-knife .knife-blade { position:absolute; bottom:38%; left:50%; width:120px; height:14px; transform:translateX(-50%) rotate(-12deg); background: linear-gradient(90deg, #a09888 0%, #d0c8b8 30%, #f0e8d8 50%, #c8b8a8 70%, #8a8078 100%); border-radius: 2px 80% 80% 2px / 2px 60% 60% 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5), inset 0 0 6px rgba(255,255,240,.3); animation: si2-blade 3s ease-in-out infinite; }
.scn-item-pruning-knife .knife-handle { position:absolute; bottom:33%; left:60%; width:50px; height:18px; transform:translateX(-50%) rotate(-12deg); background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 40%, #3a1a0a 100%); border-radius: 4px 8px 8px 4px; box-shadow: 0 2px 3px rgba(0,0,0,.6), inset 0 1px 2px rgba(255,200,150,.2); }
.scn-item-pruning-knife .oil-lamp { position:absolute; bottom:48%; right:22%; width:20px; height:28px; background: radial-gradient(ellipse 60% 80% at 50% 60%, #e8b060 0%, #b08040 40%, #5a3820 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 30px 8px rgba(200,140,80,.6), 0 0 60px 16px rgba(200,140,80,.25); animation: si2-lamp 4s ease-in-out infinite alternate; }
.scn-item-pruning-knife .shadow-fig { position:absolute; bottom:0; left:8%; width:100px; height:60%; background: linear-gradient(180deg, rgba(10,8,6,.6) 0%, rgba(10,8,6,.9) 100%); border-radius: 40% 40% 0 0 / 50% 50% 0 0; transform-origin: bottom center; animation: si2-shadow 8s ease-in-out infinite; }
.scn-item-pruning-knife .sparks { position:absolute; bottom:40%; left:30%; width:4px; height:4px; background:#f0d080; border-radius:50%; box-shadow: 0 0 6px 2px rgba(240,208,128,.8), 8px -4px 3px 1px rgba(240,200,120,.5), -6px -8px 4px 1px rgba(240,200,120,.3), 12px 2px 2px 0 rgba(240,200,120,.2); animation: si2-spark 2.5s ease-in-out infinite alternate; }
@keyframes si2-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si2-blade { 0% { transform:translateX(-50%) rotate(-14deg) scaleX(1) } 50% { transform:translateX(-50%) rotate(-10deg) scaleX(1.02) } 100% { transform:translateX(-50%) rotate(-14deg) scaleX(1) } }
@keyframes si2-lamp { 0% { box-shadow:0 0 20px 4px rgba(200,140,80,.4); opacity:.85 } 50% { box-shadow:0 0 40px 12px rgba(200,140,80,.7); opacity:1 } 100% { box-shadow:0 0 24px 6px rgba(200,140,80,.45); opacity:.9 } }
@keyframes si2-shadow { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.04) translateY(-2px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes si2-spark { 0% { opacity:.3;transform:translate(0,0) scale(.6) } 50% { opacity:1;transform:translate(2px,-3px) scale(1.3) } 100% { opacity:.4;transform:translate(-1px,-1px) scale(.7) } }

.scn-enemies-sick-voyaging { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 35%, #2a1e2e 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 60%); }
.scn-enemies-sick-voyaging .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #14141e 50%, #0e0e18 100%); animation: si3-room 14s ease-in-out infinite alternate; }
.scn-enemies-sick-voyaging .window-frame { position:absolute; top:10%; left:10%; width:50%; height:60%; border:6px solid #2a1e1a; border-radius:4px; background: linear-gradient(180deg, #1a2030 0%, #0e1220 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 0 2px #1a1410; }
.scn-enemies-sick-voyaging .ship-hull { position:absolute; bottom:32%; left:22%; width:60px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 40% 10% 20% 30% / 60% 20% 40% 50%; transform:rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: si3-ship 6s ease-in-out infinite; }
.scn-enemies-sick-voyaging .ship-mast { position:absolute; bottom:50%; left:38%; width:4px; height:45px; background: linear-gradient(180deg, #1a1410 0%, #2a1a10 100%); border-radius:2px; transform:rotate(2deg); transform-origin:bottom center; animation: si3-mast 6s ease-in-out infinite; }
.scn-enemies-sick-voyaging .sea-waves { position:absolute; bottom:25%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: si3-waves 4s ease-in-out infinite alternate; }
.scn-enemies-sick-voyaging .moon-glow { position:absolute; top:16%; left:26%; width:24px; height:24px; background: radial-gradient(circle, rgba(180,200,220,.3) 0%, rgba(180,200,220,.1) 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(180,200,220,.15); animation: si3-moon 9s ease-in-out infinite alternate; }
.scn-enemies-sick-voyaging .figure-profile { position:absolute; bottom:18%; left:12%; width:22px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-8deg); animation: si3-fig 5s ease-in-out infinite; }
@keyframes si3-room { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si3-ship { 0% { transform:rotate(-7deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } 100% { transform:rotate(-7deg) translateY(0) } }
@keyframes si3-mast { 0% { transform:rotate(0deg) } 50% { transform:rotate(4deg) } 100% { transform:rotate(0deg) } }
@keyframes si3-waves { 0% { border-radius:40% 50% 30% 50%/60% 50% 40% 50%; transform:scaleY(1) } 50% { border-radius:50% 40% 50% 30%/50% 60% 50% 40%; transform:scaleY(1.08) } 100% { border-radius:40% 50% 30% 50%/60% 50% 40% 50%; transform:scaleY(1) } }
@keyframes si3-moon { 0% { opacity:.5;transform:scale(.9) } 50% { opacity:.8;transform:scale(1.1) } 100% { opacity:.6;transform:scale(.95) } }
@keyframes si3-fig { 0% { transform:rotate(-10deg) translateX(0) } 50% { transform:rotate(-6deg) translateX(2px) } 100% { transform:rotate(-10deg) translateX(0) } }

.scn-art-of-theft { background: linear-gradient(180deg, #0e0a0a 0%, #1a1410 40%, #0a0806 100%), radial-gradient(ellipse at 40% 60%, #2a1a14 0%, transparent 70%); }
.scn-art-of-theft .stone-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(0deg, #1a1410 0%, #2a2018 30%, #1c1612 100%); border-radius:0 0 20% 20%/0 0 10% 10%; box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-art-of-theft .niche-dark { position:absolute; top:15%; left:25%; width:40%; height:65%; background: linear-gradient(180deg, #080604 0%, #14100c 60%); border-radius: 8px; box-shadow: inset 0 0 50px rgba(0,0,0,.8), 0 0 0 4px #2a1e18; animation: si4-niche 12s ease-in-out infinite alternate; }
.scn-art-of-theft .goblet-glow { position:absolute; top:35%; left:38%; width:18px; height:24px; background: radial-gradient(ellipse 70% 80% at 50% 50%, #c8a060 0%, #8a6840 50%, #3a2818 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 6px rgba(180,140,80,.5), 0 0 60px 12px rgba(180,140,80,.2); animation: si4-glow 3.5s ease-in-out infinite alternate; }
.scn-art-of-theft .hand-thief { position:absolute; bottom:28%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 70%); border-radius: 20% 20% 40% 40% / 20% 20% 50% 50%; transform:rotate(-20deg); transform-origin: 50% 90%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: si4-hand 4s ease-in-out infinite; }
.scn-art-of-theft .drapes { position:absolute; top:10%; left:8%; width:18%; height:70%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1e14 30%, #1a1410 100%); border-radius: 10% 0 60% 0/ 20% 0 40% 0; box-shadow: inset -6px 0 12px rgba(0,0,0,.4); animation: si4-drape 9s ease-in-out infinite alternate; }
.scn-art-of-theft .shadow-caster { position:absolute; bottom:0; right:15%; width:80px; height:70%; background: linear-gradient(180deg, rgba(6,4,3,.5) 0%, rgba(6,4,3,.8) 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; transform-origin: bottom center; animation: si4-cast 7s ease-in-out infinite; }
@keyframes si4-niche { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes si4-glow { 0% { box-shadow:0 0 12px 2px rgba(180,140,80,.3); opacity:.7 } 50% { box-shadow:0 0 40px 10px rgba(180,140,80,.6); opacity:1 } 100% { box-shadow:0 0 16px 4px rgba(180,140,80,.35); opacity:.8 } }
@keyframes si4-hand { 0% { transform:rotate(-22deg) translateY(0) } 50% { transform:rotate(-18deg) translateY(-4px) } 100% { transform:rotate(-22deg) translateY(0) } }
@keyframes si4-drape { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }
@keyframes si4-cast { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } 100% { transform:scaleY(1) } }

.scn-tyrant-thrasymachus { background: linear-gradient(180deg, #120e0a 0%, #1e1610 35%, #0e0a06 100%), radial-gradient(ellipse at 50% 60%, #2a1e14 0%, transparent 60%); }
.scn-tyrant-thrasymachus .bg-columns { position:absolute; inset:0 0 20% 0; background: repeating-linear-gradient(90deg, #1a1410 0px, #2a2018 8px, #1a1410 16px); opacity:.3; animation: si5-col 20s linear infinite; }
.scn-tyrant-thrasymachus .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a1410 0%, #2a1e16 100%); border-radius: 30% 30% 0 0/ 10% 10% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); }
.scn-tyrant-thrasymachus .throne-base { position:absolute; bottom:20%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-tyrant-thrasymachus .tyrant-fig { position:absolute; bottom:30%; left:50%; width:40px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: si5-tyrant 6s ease-in-out infinite; }
.scn-tyrant-thrasymachus .pleading-arms { position:absolute; bottom:28%; left:38%; width:50px; height:30px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; transform:rotate(15deg); transform-origin: 100% 100%; animation: si5-arms 4s ease-in-out infinite alternate; }
.scn-tyrant-thrasymachus .torch-flame { position:absolute; bottom:40%; right:18%; width:12px; height:20px; background: radial-gradient(ellipse 60% 80% at 50% 60%, #e8a040 0%, #c07030 40%, #5a2810 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px rgba(200,120,60,.5), 0 0 60px 16px rgba(200,120,60,.2); animation: si5-torch 2.5s ease-in-out infinite alternate; }
.scn-tyrant-thrasymachus .crowd-shapes { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: repeating-linear-gradient(90deg, #0e0a08 0px, #1a1410 6px, #0e0a08 12px, #16100c 18px, #0e0a08 24px); border-radius: 30% 30% 0 0/ 50% 50% 0 0; opacity:.6; animation: si5-crowd 10s ease-in-out infinite; }
@keyframes si5-col { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes si5-tyrant { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.03) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes si5-arms { 0% { transform:rotate(12deg) } 50% { transform:rotate(20deg) } 100% { transform:rotate(14deg) } }
@keyframes si5-torch { 0% { transform:scaleY(.85) rotate(-3deg);opacity:.8 } 50% { transform:scaleY(1.1) rotate(0deg);opacity:1 } 100% { transform:scaleY(.9) rotate(2deg);opacity:.85 } }
@keyframes si5-crowd { 0% { opacity:.4;transform:scaleY(1) } 50% { opacity:.7;transform:scaleY(1.05) } 100% { opacity:.5;transform:scaleY(1) } }

.scn-poetry-thrice-removed {
  background:
    linear-gradient(180deg, #1c1622 0%, #2a2032 40%, #3a2a3a 70%, #1a141a 100%),
    radial-gradient(ellipse at 70% 30%, #4a3a5a 0%, transparent 60%);
}
.scn-poetry-thrice-removed .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2032 0%, #1e1824 100%); }
.scn-poetry-thrice-removed .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2230 0%, #1a141e 100%); border-radius: 10% 10% 0 0; }
.scn-poetry-thrice-removed .bed    { position:absolute; bottom:18%; left:15%; width:40%; height:30%; background: linear-gradient(135deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-poetry-thrice-removed .blanket{ position:absolute; bottom:18%; left:18%; width:35%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 8px 8px / 0 0 4px 4px; animation: ptr-softrise 6s ease-in-out infinite alternate; }
.scn-poetry-thrice-removed .window { position:absolute; top:12%; right:12%; width:80px; height:60px; background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%); border: 4px solid #4a3a4a; border-radius: 4px; box-shadow: inset 0 0 20px #6a8aba; animation: ptr-glow 8s ease-in-out infinite alternate; }
.scn-poetry-thrice-removed .lamp   { position:absolute; bottom:28%; left:60%; width:12px; height:16px; background: radial-gradient(circle, #e8c068 0%, #b08040 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,160,80,.5), 0 0 60px 15px rgba(200,160,80,.25); animation: ptr-flicker 3s ease-in-out infinite; }
.scn-poetry-thrice-removed .nightstand { position:absolute; bottom:16%; left:56%; width:30px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 4px; }
@keyframes ptr-softrise { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ptr-glow { 0% { box-shadow: inset 0 0 15px #6a8aba; opacity: 0.7; } 50% { box-shadow: inset 0 0 30px #8ab2da; opacity: 1; } 100% { box-shadow: inset 0 0 20px #6a8aba; opacity: 0.8; } }
@keyframes ptr-flicker { 0% { transform: scale(1); opacity: 0.8; } 25% { transform: scale(1.05); opacity: 1; } 50% { transform: scale(0.95); opacity: 0.7; } 75% { transform: scale(1.02); opacity: 0.9; } 100% { transform: scale(1); opacity: 0.8; } }

.scn-poets-imitators-not-teachers {
  background:
    linear-gradient(180deg, #1a1422 0%, #2a1c32 50%, #1a1222 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-poets-imitators-not-teachers .backdrop   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1c32 0%, #1a1222 100%); }
.scn-poets-imitators-not-teachers .stage      { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-poets-imitators-not-teachers .curtain-l  { position:absolute; top:5%; left:8%; width:15%; height:60%; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 0 40% 40% 0 / 0 30% 30% 0; animation: pit-curtain 12s ease-in-out infinite alternate; }
.scn-poets-imitators-not-teachers .curtain-r  { position:absolute; top:5%; right:8%; width:15%; height:60%; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 40% 0 0 40% / 30% 0 0 30%; animation: pit-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-poets-imitators-not-teachers .figure     { position:absolute; bottom:15%; 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: pit-bow 4s ease-in-out infinite; }
.scn-poets-imitators-not-teachers .scroll     { position:absolute; bottom:20%; left:60%; width:40px; height:8px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; transform: rotate(-15deg); animation: pit-unroll 7s ease-in-out infinite alternate; }
.scn-poets-imitators-not-teachers .spotlight  { position:absolute; top:0; left:40%; width:20%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,140,0.3) 0%, transparent 70%); mix-blend-mode: overlay; animation: pit-glow 5s ease-in-out infinite alternate; }
@keyframes pit-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(8px); } }
@keyframes pit-bow { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pit-unroll { 0% { transform: rotate(-15deg) scaleX(1); } 100% { transform: rotate(-15deg) scaleX(1.3); } }
@keyframes pit-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-soul-immortal-judgment {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #4a5a8a 0%, transparent 60%);
}
.scn-soul-immortal-judgment .sky         { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a6a 0%, #1a1a3a 100%); }
.scn-soul-immortal-judgment .abyss       { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-soul-immortal-judgment .scale-beam  { position:absolute; top:40%; left:30%; width:40%; height:4px; background: #8a7a5a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: sij-tilt 8s ease-in-out infinite alternate; }
.scn-soul-immortal-judgment .scale-left  { position:absolute; top:36%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #c0a060 0%, #8a7020 100%); border-radius: 0 0 50% 50%; transform: rotate(180deg); box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: sij-sway 8s ease-in-out infinite alternate; }
.scn-soul-immortal-judgment .scale-right { position:absolute; top:36%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #c0a060 0%, #8a7020 100%); border-radius: 0 0 50% 50%; transform: rotate(180deg); box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: sij-sway 8s ease-in-out infinite alternate-reverse; }
.scn-soul-immortal-judgment .soul-up     { position:absolute; top:20%; left:45%; width:10px; height:16px; background: radial-gradient(circle, #e8e8ff 0%, #a0a0c8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.7; animation: sij-ascend 12s ease-in-out infinite; }
.scn-soul-immortal-judgment .soul-down   { position:absolute; top:70%; left:55%; width:12px; height:14px; background: radial-gradient(circle, #5a4a6a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; animation: sij-descend 12s ease-in-out infinite reverse; }
.scn-soul-immortal-judgment .halo        { position:absolute; top:5%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(200,180,255,0.25) 0%, transparent 70%); animation: sij-pulse 6s ease-in-out infinite alternate; }
@keyframes sij-tilt { 0% { transform: rotate(-8deg); } 50% { transform: rotate(0); } 100% { transform: rotate(8deg); } }
@keyframes sij-sway { 0% { transform: rotate(180deg) translateY(0); } 50% { transform: rotate(180deg) translateY(-6px); } 100% { transform: rotate(180deg) translateY(4px); } }
@keyframes sij-ascend { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-40px) scale(1.2); opacity: 1; } 100% { transform: translateY(-80px) scale(0.8); opacity: 0.3; } }
@keyframes sij-descend { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(40px) scale(0.9); opacity: 1; } 100% { transform: translateY(80px) scale(1.1); opacity: 0.4; } }
@keyframes sij-pulse { 0% { transform: scale(1); opacity: 0.3; } 100% { transform: scale(1.5); opacity: 0.6; } }

.scn-er-myth-justice {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a3a 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-er-myth-justice .bg-deep  { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 100%); }
.scn-er-myth-justice .plinth   { position:absolute; bottom:10%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.8); }
.scn-er-myth-justice .figure   { position:absolute; bottom:20%; left:43%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emj-stand 6s ease-in-out infinite; }
.scn-er-myth-justice .scales   { position:absolute; bottom:40%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #a08050 0%, #604020 100%); border-radius: 0 0 50% 50%; transform: scale(0.8); animation: emj-balance 10s ease-in-out infinite; }
.scn-er-myth-justice .thread   { position:absolute; bottom:45%; left:48%; width:2px; height:60px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); transform-origin: top; animation: emj-thread 10s ease-in-out infinite; }
.scn-er-myth-justice .star-1   { position:absolute; top:12%; left:20%; width:6px; height:6px; background: #e0d0a0; border-radius: 50%; box-shadow: 0 0 12px rgba(224,208,160,.6); animation: emj-twinkle 4s ease-in-out infinite; }
.scn-er-myth-justice .star-2   { position:absolute; top:25%; right:25%; width:4px; height:4px; background: #e0d0a0; border-radius: 50%; box-shadow: 0 0 8px rgba(224,208,160,.5); animation: emj-twinkle 4s ease-in-out infinite reverse; }
@keyframes emj-stand { 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 emj-balance { 0% { transform: scale(0.8) rotate(-10deg); } 50% { transform: scale(0.8) rotate(10deg); } 100% { transform: scale(0.8) rotate(-10deg); } }
@keyframes emj-thread { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes emj-twinkle { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.4; transform: scale(1); } }

/* Scene: stronger-interest */
.scn-stronger-interest {
  background: linear-gradient(135deg, #1a1510 0%, #2c221a 50%, #1f1812 100%), radial-gradient(ellipse at 40% 60%, #3d2b1a 0%, transparent 60%);
}
.scn-stronger-interest .shadow-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f0d0a 0%, #1a1410 100%);
  animation: sti-shadow-wall 12s ease-in-out infinite alternate;
}
.scn-stronger-interest .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(180deg, #4a3326 0%, #2d1f16 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-stronger-interest .candle-holder {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 8px;
  height: 20px;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1e 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-stronger-interest .flame {
  position: absolute;
  bottom: 38%;
  left: 40.5%;
  width: 6px;
  height: 16px;
  background: radial-gradient(ellipse 50% 60%, #ffb060 0%, #e08030 40%, #a04010 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 12px 3px #e08030, 0 0 24px 6px rgba(160,60,20,0.5);
  animation: sti-flame 0.8s ease-in-out infinite alternate;
}
.scn-stronger-interest .figure {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #1c1612 0%, #110c0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sti-figure 4s ease-in-out infinite;
}
.scn-stronger-interest .hand-arm {
  position: absolute;
  bottom: 38%;
  left: 42%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #1c1612 0%, #110c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: bottom left;
  animation: sti-hand 3s ease-in-out infinite alternate;
}
.scn-stronger-interest .curtain-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: sti-curtain 18s ease-in-out infinite alternate;
}
.scn-stronger-interest .curtain-right {
  position: absolute;
  top: 0;
  right: 0;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: sti-curtain 18s ease-in-out infinite alternate-reverse;
}
@keyframes sti-shadow-wall {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sti-flame {
  0% { transform: rotate(-2deg) scale(1, 1); opacity: 0.8; }
  30% { transform: rotate(3deg) scale(1.1, 1.2); opacity: 1; }
  70% { transform: rotate(-1deg) scale(0.95, 0.9); opacity: 0.9; }
  100% { transform: rotate(2deg) scale(1, 0.95); opacity: 0.85; }
}
@keyframes sti-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 sti-hand {
  0% { transform: rotate(-30deg) scale(1, 1); }
  50% { transform: rotate(-15deg) scale(1.1, 1.05); }
  100% { transform: rotate(-30deg) scale(1, 1); }
}
@keyframes sti-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

/* Scene: arts-subject-good */
.scn-arts-subject-good {
  background: linear-gradient(160deg, #1e1a16 0%, #2c241e 40%, #1a1612 100%), radial-gradient(ellipse at 50% 70%, #2d221a 0%, transparent 50%);
}
.scn-arts-subject-good .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2d1f16 0%, #1a120e 100%);
  border-radius: 0;
}
.scn-arts-subject-good .table {
  position: absolute;
  bottom: 25%;
  left: 15%;
  right: 15%;
  height: 6%;
  background: linear-gradient(180deg, #4a3326 0%, #2d1f16 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-arts-subject-good .lamp {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 10px;
  height: 18px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a281e 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-arts-subject-good .glow {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #c08040 0%, #8a5e30 40%, transparent 70%);
  border-radius: 50%;
  animation: asg-glow 3s ease-in-out infinite alternate;
}
.scn-arts-subject-good .figure-left {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 22px;
  height: 56px;
  background: linear-gradient(180deg, #1c1612 0%, #110c0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: asg-figure-left 5s ease-in-out infinite;
}
.scn-arts-subject-good .figure-right {
  position: absolute;
  bottom: 28%;
  right: 25%;
  width: 22px;
  height: 56px;
  background: linear-gradient(180deg, #1c1612 0%, #110c0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: asg-figure-right 5s ease-in-out infinite;
}
.scn-arts-subject-good .shadow-figures {
  position: absolute;
  bottom: 28%;
  left: 20%;
  right: 20%;
  height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 50%);
  filter: blur(4px);
  animation: asg-shadow 8s ease-in-out infinite alternate;
}
@keyframes asg-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 20px 4px #b07040; }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes asg-figure-left {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(6px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes asg-figure-right {
  0% { transform: scaleX(-1) translateX(0) rotate(0); }
  30% { transform: scaleX(-1) translateX(-5px) rotate(-2deg); }
  70% { transform: scaleX(-1) translateX(2px) rotate(1deg); }
  100% { transform: scaleX(-1) translateX(0) rotate(0); }
}
@keyframes asg-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* Scene: shepherds-analogy */
.scn-shepherds-analogy {
  background: linear-gradient(135deg, #12100e 0%, #1a1612 40%, #0e0c0a 100%), radial-gradient(ellipse at 50% 0%, #1f1a14 0%, transparent 60%);
}
.scn-shepherds-analogy .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c0a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-shepherds-analogy .moon-dim {
  position: absolute;
  top: 8%;
  right: 12%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #4a4a5a 0%, #2a2a3a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #3a3a4a;
  animation: sha-moon 20s linear infinite alternate;
}
.scn-shepherds-analogy .crook {
  position: absolute;
  bottom: 35%;
  left: 15%;
  width: 6px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sha-crook 6s ease-in-out infinite alternate;
}
.scn-shepherds-analogy .sheep-1 {
  position: absolute;
  bottom: 38%;
  left: 30%;
  width: 20px;
  height: 14px;
  background: radial-gradient(ellipse 50% 60%, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sha-sheep 8s ease-in-out infinite;
}
.scn-shepherds-analogy .sheep-2 {
  position: absolute;
  bottom: 40%;
  left: 45%;
  width: 18px;
  height: 12px;
  background: radial-gradient(ellipse 50% 60%, #3e3028 0%, #221814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sha-sheep 8s ease-in-out infinite reverse;
  animation-delay: -3s;
}
.scn-shepherds-analogy .fence {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 80%;
  height: 1px;
  background: #1e1410;
  box-shadow: 0 8px 0 #1e1410, 0 16px 0 #1e1410;
  filter: blur(1px);
}
.scn-shepherds-analogy .shadow-shepherd {
  position: absolute;
  bottom: 35%;
  right: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, rgba(10,10,10,0.8) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(3px);
  animation: sha-shadow 10s ease-in-out infinite alternate;
}
@keyframes sha-moon {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(8px); }
  100% { opacity: 0.4; transform: translateX(-5px); }
}
@keyframes sha-crook {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.02); }
  100% { transform: rotate(15deg) scaleY(1); }
}
@keyframes sha-sheep {
  0% { transform: translateX(0) scale(1, 1); }
  25% { transform: translateX(4px) scale(1.02, 0.98); }
  50% { transform: translateX(0) scale(1, 1); }
  75% { transform: translateX(-3px) scale(0.98, 1.02); }
  100% { transform: translateX(0) scale(1, 1); }
}
@keyframes sha-shadow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

/* Scene: soul-excellence */
.scn-soul-excellence {
  background: linear-gradient(160deg, #1a1814 0%, #2c2420 50%, #161412 100%), radial-gradient(ellipse at 50% 50%, #2a221e 0%, transparent 70%);
}
.scn-soul-excellence .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
}
.scn-soul-excellence .wall-shadow {
  position: absolute;
  inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 30%, #1a1612 0%, #0e0c0a 100%);
  animation: se-wall 15s ease-in-out infinite alternate;
}
.scn-soul-excellence .seat {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1e 0%, #221812 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-soul-excellence .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #1c1612 0%, #100c0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: se-figure 6s ease-in-out infinite;
}
.scn-soul-excellence .glow-round {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 30%;
  height: 30%;
  background: radial-gradient(circle, #c8a870 0%, #a08050 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  filter: blur(10px);
  animation: se-glow 8s ease-in-out infinite alternate;
}
.scn-soul-excellence .distant-window {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 15px;
  height: 20px;
  background: radial-gradient(ellipse, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 1px #4a3a2a;
  animation: se-window 20s linear infinite alternate;
}
.scn-soul-excellence .small-book {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #3a2a1e 0%, #221812 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  animation: se-book 4s ease-in-out infinite alternate;
}
@keyframes se-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes se-figure {
  0% { transform: translateY(0) scale(1, 1); }
  25% { transform: translateY(-2px) scale(1.02, 0.98); }
  50% { transform: translateY(0) scale(1, 1); }
  75% { transform: translateY(-1px) scale(0.98, 1.02); }
  100% { transform: translateY(0) scale(1, 1); }
}
@keyframes se-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes se-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes se-book {
  0% { transform: rotate(-5deg) scale(1, 1); }
  50% { transform: rotate(-3deg) scale(1.05, 0.95); }
  100% { transform: rotate(-5deg) scale(1, 1); }
}

.scn-ship-of-state {
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 30%, #3a2a1a 60%, #0a0a00 100%),
              radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-ship-of-state .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #0a0a00 100%); animation: si-ship-bg 20s ease-in-out infinite alternate; }
.scn-ship-of-state .deck { position:absolute; bottom:10%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; animation: si-ship-deck 6s ease-in-out infinite; }
.scn-ship-of-state .pilot { position:absolute; bottom:18%; left:25%; width:24px; 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: si-ship-pilot 5s ease-in-out infinite; }
.scn-ship-of-state .sailor1 { position:absolute; bottom:18%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: si-ship-sailor1 7s ease-in-out infinite; }
.scn-ship-of-state .sailor2 { position:absolute; bottom:20%; left:58%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 45% 40% 40% / 60% 50% 40% 40%; animation: si-ship-sailor2 6s ease-in-out infinite reverse; }
.scn-ship-of-state .lantern { position:absolute; bottom:28%; left:35%; width:10px; height:14px; background: radial-gradient(circle, #d09040 0%, #a06020 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4); animation: si-ship-lantern 3s ease-in-out infinite alternate; }
.scn-ship-of-state .table { position:absolute; bottom:16%; left:30%; width:60px; height:8px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-ship-of-state .window { position:absolute; bottom:35%; right:15%; width:30px; height:24px; background: radial-gradient(ellipse, #2a1a0a 0%, #0a0500 100%); border: 2px solid #4a3a2a; border-radius: 4px; overflow: hidden; }
.scn-ship-of-state .star { position:absolute; top:38%; right:20%; width:4px; height:4px; background: #ffe0a0; border-radius: 50%; box-shadow: 0 0 6px 2px #ffe0a0; animation: si-ship-star 5s ease-in-out infinite alternate; }
@keyframes si-ship-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes si-ship-deck { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes si-ship-pilot { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes si-ship-sailor1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes si-ship-sailor2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes si-ship-lantern { 0% { box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,0.3); } 50% { box-shadow: 0 0 30px 10px #d09040, 0 0 60px 20px rgba(208,144,64,0.5); } 100% { box-shadow: 0 0 18px 5px #b07030, 0 0 35px 10px rgba(176,112,48,0.35); } }
@keyframes si-ship-star { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(0.9); } }

.scn-multitude-rejects-truth {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #3a2218 70%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-multitude-rejects-truth .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, #2a1a12 0%, #0a0500 100%); animation: si-mult-bg 15s ease-in-out infinite alternate; }
.scn-multitude-rejects-truth .stage { position:absolute; bottom:15%; left:20%; right:20%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px; }
.scn-multitude-rejects-truth .philosopher { position:absolute; bottom:20%; left:28%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-mult-phil 6s ease-in-out infinite; }
.scn-multitude-rejects-truth .light { position:absolute; bottom:32%; left:30%; width:12px; height:14px; background: radial-gradient(circle, #d0a060 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 24px 8px #c08040, 0 0 50px 16px rgba(192,128,64,0.4); animation: si-mult-light 2s ease-in-out infinite alternate; }
.scn-multitude-rejects-truth .crowd1 { position:absolute; bottom:18%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: si-mult-crowd1 8s ease-in-out infinite; }
.scn-multitude-rejects-truth .crowd2 { position:absolute; bottom:20%; left:54%; width:18px; height:36px; background: linear-gradient(180deg, #3a2218 0%, #1a0e00 100%); border-radius: 50% 45% 40% 40% / 60% 50% 40% 40%; animation: si-mult-crowd2 9s ease-in-out infinite reverse; }
.scn-multitude-rejects-truth .crowd3 { position:absolute; bottom:17%; left:62%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #0a0500 100%); border-radius: 48% 48% 38% 38% / 58% 58% 38% 38%; animation: si-mult-crowd3 7s ease-in-out infinite; }
.scn-multitude-rejects-truth .shadow { position:absolute; bottom:16%; left:38%; width:50px; height:4px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(3px); animation: si-mult-shadow 6s ease-in-out infinite alternate; }
@keyframes si-mult-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes si-mult-phil { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } }
@keyframes si-mult-light { 0% { box-shadow: 0 0 18px 5px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); opacity:0.9; } 50% { box-shadow: 0 0 30px 10px #e0b060, 0 0 60px 20px rgba(224,176,96,0.5); opacity:1; } 100% { box-shadow: 0 0 22px 6px #c08040, 0 0 45px 14px rgba(192,128,64,0.35); opacity:0.95; } }
@keyframes si-mult-crowd1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(-4deg); } }
@keyframes si-mult-crowd2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes si-mult-crowd3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes si-mult-shadow { 0% { transform: scaleX(1); opacity:0.4; } 100% { transform: scaleX(1.2); opacity:0.6; } }

.scn-form-of-good {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221a 40%, #3a2e24 70%, #1a1610 100%),
              radial-gradient(ellipse at 50% 80%, #3a2e24 0%, transparent 60%);
}
.scn-form-of-good .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a221a 0%, #0a0806 100%); animation: si-form-bg 30s ease-in-out infinite alternate; }
.scn-form-of-good .desk { position:absolute; bottom:12%; left:20%; right:20%; height:4%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 3px; }
.scn-form-of-good .scroll { position:absolute; bottom:18%; left:30%; width:40px; height:12px; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); border-radius: 2px; transform: rotate(-5deg); animation: si-form-scroll 8s ease-in-out infinite alternate; }
.scn-form-of-good .lamp { position:absolute; bottom:28%; left:38%; width:10px; height:16px; background: radial-gradient(circle, #d0a060 0%, #b07030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.3); animation: si-form-lamp 4s ease-in-out infinite alternate; }
.scn-form-of-good .guardian { position:absolute; bottom:18%; left:42%; width:26px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-form-guardian 10s ease-in-out infinite; }
.scn-form-of-good .shadow { position:absolute; bottom:16%; left:40%; width:60px; height:4px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(2px); animation: si-form-shadow 10s ease-in-out infinite alternate; }
@keyframes si-form-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes si-form-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes si-form-lamp { 0% { box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,0.25); opacity:0.9; } 50% { box-shadow: 0 0 25px 8px #d0a060, 0 0 50px 16px rgba(208,160,96,0.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #b07030, 0 0 35px 10px rgba(176,112,48,0.3); opacity:0.95; } }
@keyframes si-form-guardian { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes si-form-shadow { 0% { transform: scaleX(1); opacity:0.3; } 100% { transform: scaleX(1.1); opacity:0.5; } }

.scn-sun-analogy-good {
  background: linear-gradient(180deg, #1a1614 0%, #2a221e 40%, #1e1a16 70%, #0a0806 100%),
              radial-gradient(ellipse at 50% 30%, #3a322a 0%, transparent 60%);
}
.scn-sun-analogy-good .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a221e 0%, #0a0806 100%); animation: si-sun-bg 40s ease-in-out infinite alternate; }
.scn-sun-analogy-good .ground { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 0 0; }
.scn-sun-analogy-good .sun { position:absolute; bottom:40%; left:42%; width:40px; height:40px; background: radial-gradient(circle, #ffe0a0 0%, #c08040 70%); border-radius: 50%; box-shadow: 0 0 60px 20px #e0b060, 0 0 120px 40px rgba(224,176,96,0.3); animation: si-sun-sun 6s ease-in-out infinite alternate; }
.scn-sun-analogy-good .ray1 { position:absolute; bottom:50%; left:50%; width:80px; height:4px; background: linear-gradient(90deg, #ffe0a0 0%, transparent 100%); transform-origin: left center; transform: translateX(-20px) rotate(20deg); animation: si-sun-ray1 15s linear infinite; }
.scn-sun-analogy-good .ray2 { position:absolute; bottom:50%; left:50%; width:80px; height:4px; background: linear-gradient(90deg, #ffe0a0 0%, transparent 100%); transform-origin: left center; transform: translateX(-20px) rotate(-30deg); animation: si-sun-ray2 12s linear infinite reverse; }
.scn-sun-analogy-good .ray3 { position:absolute; bottom:50%; left:50%; width:80px; height:4px; background: linear-gradient(90deg, #ffe0a0 0%, transparent 100%); transform-origin: left center; transform: translateX(-20px) rotate(0deg); animation: si-sun-ray3 18s linear infinite; }
.scn-sun-analogy-good .figure1 { position:absolute; bottom:15%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-sun-fig1 8s ease-in-out infinite; }
.scn-sun-analogy-good .figure2 { position:absolute; bottom:15%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-sun-fig2 9s ease-in-out infinite reverse; }
@keyframes si-sun-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes si-sun-sun { 0% { box-shadow: 0 0 40px 15px #e0b060, 0 0 80px 25px rgba(224,176,96,0.25); opacity:0.9; } 50% { box-shadow: 0 0 70px 25px #ffe0a0, 0 0 140px 40px rgba(255,224,160,0.4); opacity:1; } 100% { box-shadow: 0 0 50px 18px #e0b060, 0 0 100px 30px rgba(224,176,96,0.3); opacity:0.95; } }
@keyframes si-sun-ray1 { 0% { transform: translateX(-20px) rotate(20deg) scaleX(1); opacity:0.6; } 50% { transform: translateX(-20px) rotate(25deg) scaleX(1.2); opacity:0.8; } 100% { transform: translateX(-20px) rotate(20deg) scaleX(1); opacity:0.6; } }
@keyframes si-sun-ray2 { 0% { transform: translateX(-20px) rotate(-30deg) scaleX(1); opacity:0.5; } 50% { transform: translateX(-20px) rotate(-25deg) scaleX(1.15); opacity:0.7; } 100% { transform: translateX(-20px) rotate(-30deg) scaleX(1); opacity:0.5; } }
@keyframes si-sun-ray3 { 0% { transform: translateX(-20px) rotate(0deg) scaleX(1); opacity:0.7; } 50% { transform: translateX(-20px) rotate(5deg) scaleX(1.1); opacity:0.9; } 100% { transform: translateX(-20px) rotate(0deg) scaleX(1); opacity:0.7; } }
@keyframes si-sun-fig1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes si-sun-fig2 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }

.scn-training-rulers-amusement {
  background: linear-gradient(180deg, #2a1e12 0%, #3d2a1a 50%, #1e140c 100%), radial-gradient(ellipse at 30% 60%, #7a5a3a 0%, transparent 60%);
}
.scn-training-rulers-amusement .wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3520 0%, #2a1e12 100%); opacity:0.5; animation: tr-wall 12s ease-in-out infinite alternate; }
.scn-training-rulers-amusement .lamp { position:absolute; bottom:55%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6030 0%, #604020 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3); animation: tr-lamp 4s ease-in-out infinite alternate; }
.scn-training-rulers-amusement .desk { position:absolute; bottom:30%; left:30%; width:160px; height:16px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: tr-desk 8s ease-in-out infinite; }
.scn-training-rulers-amusement .scroll { position:absolute; bottom:32%; left:40%; width:24px; height:34px; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: tr-scroll 6s ease-in-out infinite; }
.scn-training-rulers-amusement .child { position:absolute; bottom:28%; left:35%; width:20px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-child 5s ease-in-out infinite; }
.scn-training-rulers-amusement .teacher { position:absolute; bottom:30%; left:55%; width:24px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-teacher 7s ease-in-out infinite; }
.scn-training-rulers-amusement .column { position:absolute; bottom:0; left:0; width:12px; height:100%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,0.5); animation: tr-column 10s ease-in-out infinite; }
@keyframes tr-wall { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes tr-lamp { 0% { box-shadow:0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.2); opacity:0.9; } 50% { box-shadow:0 0 40px 14px #ffd060, 0 0 80px 24px rgba(255,208,96,0.4); opacity:1; } 100% { box-shadow:0 0 25px 8px #c08040, 0 0 50px 16px rgba(192,128,64,0.25); opacity:0.85; } }
@keyframes tr-desk { 0% { transform:translateX(0) scale(1); } 25% { transform:translateX(2px) scale(1.01); } 50% { transform:translateX(0) scale(1); } 75% { transform:translateX(-2px) scale(0.99); } 100% { transform:translateX(0) scale(1); } }
@keyframes tr-scroll { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(-12deg) translateY(0); } }
@keyframes tr-child { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(6px) translateY(0) rotate(0deg); } 75% { transform:translateX(3px) translateY(-1px) rotate(-2deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes tr-teacher { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-1px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes tr-column { 0% { box-shadow:2px 0 4px rgba(0,0,0,0.5); } 50% { box-shadow:3px 0 6px rgba(0,0,0,0.7); } 100% { box-shadow:2px 0 4px rgba(0,0,0,0.5); } }

.scn-philosopher-king-at-fifty {
  background: linear-gradient(180deg, #1e1814 0%, #2a1e16 50%, #140e0a 100%), radial-gradient(ellipse at 50% 40%, #6a5030 0%, transparent 65%);
}
.scn-philosopher-king-at-fifty .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%); opacity:0.6; animation: pk-bg 20s ease-in-out infinite alternate; }
.scn-philosopher-king-at-fifty .throne { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.7), inset 0 2px 4px rgba(255,255,255,0.1); animation: pk-throne 6s ease-in-out infinite; }
.scn-philosopher-king-at-fifty .king { position:absolute; bottom:25%; left:50%; width:30px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: pk-king 5s ease-in-out infinite; }
.scn-philosopher-king-at-fifty .orb { position:absolute; top:25%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #c08040 50%, #604020 100%); border-radius: 50%; box-shadow: 0 0 40px 12px #ffd060, 0 0 80px 24px rgba(255,208,96,0.3); animation: pk-orb 3s ease-in-out infinite alternate; }
.scn-philosopher-king-at-fifty .step-a { position:absolute; bottom:14%; left:30%; width:140px; height:12px; background: linear-gradient(180deg, #4a2e1a 0%, #2a180e 100%); border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.6); animation: pk-step 8s ease-in-out infinite; }
.scn-philosopher-king-at-fifty .step-b { position:absolute; bottom:8%; left:25%; width:160px; height:12px; background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%); border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.6); animation: pk-step 8s ease-in-out infinite reverse; animation-delay: 1s; }
.scn-philosopher-king-at-fifty .curtain { position:absolute; top:0; bottom:0; width:40px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 50%, #1a0e08 100%); border-radius: 0 10% 10% 0; animation: pk-curtain 12s ease-in-out infinite alternate; }
.scn-philosopher-king-at-fifty .cur-left { left:10%; }
.scn-philosopher-king-at-fifty .cur-right { right:10%; border-radius: 10% 0 0 10%; animation-delay: 2s; }
@keyframes pk-bg { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes pk-throne { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes pk-king { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 25% { transform:translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(0) rotate(0deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pk-orb { 0% { box-shadow:0 0 30px 8px #ffd060, 0 0 60px 16px rgba(255,208,96,0.2); opacity:0.9; } 50% { box-shadow:0 0 60px 18px #ffe080, 0 0 100px 30px rgba(255,224,128,0.4); opacity:1; } 100% { box-shadow:0 0 40px 10px #ffd060, 0 0 70px 20px rgba(255,208,96,0.25); opacity:0.85; } }
@keyframes pk-step { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes pk-curtain { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }

.scn-timocratic-man {
  background: linear-gradient(180deg, #241e18 0%, #3a2a1e 50%, #1a1410 100%), radial-gradient(ellipse at 40% 70%, #7a5a3a 0%, transparent 50%);
}
.scn-timocratic-man .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); opacity:0.4; animation: tm-wall 15s ease-in-out infinite alternate; }
.scn-timocratic-man .stair { position:absolute; left:35%; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-timocratic-man .stair-1 { bottom:30%; width:120px; }
.scn-timocratic-man .stair-2 { bottom:20%; width:100px; left:40%; }
.scn-timocratic-man .stair-3 { bottom:10%; width:80px; left:45%; }
.scn-timocratic-man .figure-central { position:absolute; bottom:12%; left:50%; width:26px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tm-central 4s ease-in-out infinite; }
.scn-timocratic-man .figure-left { position:absolute; bottom:28%; left:25%; width:22px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: tm-side 6s ease-in-out infinite; }
.scn-timocratic-man .figure-right { position:absolute; bottom:28%; right:25%; width:22px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: tm-side 6s ease-in-out infinite reverse; animation-delay: 1s; }
.scn-timocratic-man .crown { position:absolute; top:28%; left:48%; width:20px; height:12px; background: linear-gradient(180deg, #c8a040 0%, #a08030 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 0%, 40% 80%, 60% 0%, 80% 80%, 100% 0%, 100% 100%); animation: tm-crown 3s ease-in-out infinite; }
.scn-timocratic-man .shield { position:absolute; top:25%; left:56%; width:18px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: tm-shield 5s ease-in-out infinite; }
@keyframes tm-wall { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes tm-central { 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 tm-side { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes tm-crown { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tm-shield { 0% { transform:rotate(15deg) scale(1); } 50% { transform:rotate(18deg) scale(1.05); } 100% { transform:rotate(15deg) scale(1); } }

.scn-oligarchy-wealth {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #0e0a08 100%), radial-gradient(ellipse at 60% 70%, #6a4a2a 0%, transparent 50%);
}
.scn-oligarchy-wealth .gate { position:absolute; bottom:20%; left:50%; width:200px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.8), inset 0 0 20px rgba(0,0,0,0.6); animation: ol-gate 10s ease-in-out infinite; }
.scn-oligarchy-wealth .coin { position:absolute; width:10px; height:10px; background: linear-gradient(180deg, #d4a040 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5), inset 0 0 2px #ffe080; animation: ol-coin 2s ease-in-out infinite; }
.scn-oligarchy-wealth .coin-1 { bottom:15%; left:45%; animation-delay: 0s; }
.scn-oligarchy-wealth .coin-2 { bottom:12%; left:48%; animation-delay: 0.5s; }
.scn-oligarchy-wealth .coin-3 { bottom:18%; left:52%; animation-delay: 1s; }
.scn-oligarchy-wealth .crowd { position:absolute; bottom:0; width:60px; height:80px; background: linear-gradient(180deg, #2a2018 0%, #0a0604 100%); border-radius: 20% 20% 0 0; }
.scn-oligarchy-wealth .rich { left:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-oligarchy-wealth .poor { right:20%; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); }
.scn-oligarchy-wealth .scale { position:absolute; bottom:30%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: ol-scale 3s ease-in-out infinite alternate; }
@keyframes ol-gate { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(0.98); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes ol-coin { 0% { transform:translateY(0) rotate(0deg); opacity:1; } 25% { transform:translateY(-3px) rotate(10deg); opacity:0.9; } 50% { transform:translateY(0) rotate(0deg); opacity:1; } 75% { transform:translateY(-2px) rotate(-10deg); opacity:0.9; } 100% { transform:translateY(0) rotate(0deg); opacity:1; } }
@keyframes ol-scale { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }

.scn-five-souls-ranked {
  background:
    radial-gradient(ellipse 120% 40% at 50% 100%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a24 0%, #2a2a3a 50%, #1e1e28 100%);
}
.scn-five-souls-ranked .bg-wall { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); }
.scn-five-souls-ranked .bg-floor { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #2a241e 0%, #1e1a14 100%); }
.scn-five-souls-ranked .lamp { position:absolute; bottom:30%; left:50%; width:12px; height:16px; transform:translateX(-50%); background:linear-gradient(180deg, #b08a5a, #6a4a2a); border-radius:20% 20% 10% 10%; box-shadow:0 -2px 8px #b08040; }
.scn-five-souls-ranked .lamp-glow { position:absolute; bottom:30%; left:50%; width:80px; height:80px; transform:translate(-50%,-30%); background:radial-gradient(circle, rgba(200,160,80,.25) 0%, transparent 70%); border-radius:50%; pointer-events:none; animation:fsr-glow 4s ease-in-out infinite alternate; }
.scn-five-souls-ranked .step { position:absolute; left:50%; width:200px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:8% 8% 4% 4%; box-shadow:0 2px 6px rgba(0,0,0,.5); }
.scn-five-souls-ranked .step-1 { bottom:44%; }
.scn-five-souls-ranked .step-2 { bottom:36%; width:170px; }
.scn-five-souls-ranked .step-3 { bottom:28%; width:140px; }
.scn-five-souls-ranked .figure { position:absolute; bottom:0; width:20px; height:40px; background:linear-gradient(180deg, #1a1620 0%, #0e0c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-five-souls-ranked .royal { left:calc(50% + 60px); bottom:44%; height:44px; animation:fsr-stand 5s ease-in-out infinite; }
.scn-five-souls-ranked .timocrat { left:calc(50% + 30px); bottom:36%; height:38px; animation:fsr-stand 5s ease-in-out infinite .2s; }
.scn-five-souls-ranked .oligarch { left:calc(50% - 10px); bottom:28%; height:32px; animation:fsr-stand 5s ease-in-out infinite .4s; }
.scn-five-souls-ranked .democrat { left:calc(50% - 50px); bottom:20%; height:28px; animation:fsr-stand 5s ease-in-out infinite .6s; }
.scn-five-souls-ranked .tyrant { left:calc(50% - 90px); bottom:12%; height:24px; animation:fsr-stand 5s ease-in-out infinite .8s; }
.scn-five-souls-ranked .soul-spark { position:absolute; width:4px; height:4px; background:radial-gradient(circle, #ffd080, transparent); border-radius:50%; animation:fsr-spark 6s ease-in-out infinite alternate; }
.scn-five-souls-ranked .spark-1 { bottom:52%; left:calc(50% + 60px); animation-delay:0s; }
.scn-five-souls-ranked .spark-2 { bottom:44%; left:calc(50% + 30px); animation-delay:1.2s; }
.scn-five-souls-ranked .spark-3 { bottom:36%; left:calc(50% - 10px); animation-delay:2.4s; }
.scn-five-souls-ranked .spark-4 { bottom:28%; left:calc(50% - 50px); animation-delay:3.6s; }
.scn-five-souls-ranked .spark-5 { bottom:20%; left:calc(50% - 90px); animation-delay:4.8s; }
@keyframes fsr-glow { 0% { opacity:.6; transform:translate(-50%,-30%) scale(1); } 50% { opacity:1; transform:translate(-50%,-30%) scale(1.1); } 100% { opacity:.7; transform:translate(-50%,-30%) scale(1); } }
@keyframes fsr-stand { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(.5deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-1px) rotate(-.5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fsr-spark { 0% { opacity:.3; transform:scale(.5); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:.4; transform:scale(.7); } }

.scn-philosopher-judges-pleasures {
  background:
    radial-gradient(ellipse 100% 50% at 50% 100%, #2a3a4a 0%, transparent 80%),
    linear-gradient(180deg, #1a1a24 0%, #2a2a3e 100%);
}
.scn-philosopher-judges-pleasures .bg-rchamber { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 100%); }
.scn-philosopher-judges-pleasures .bg-rfloor { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2a241e 0%, #1e1a14 100%); }
.scn-philosopher-judges-pleasures .pillar-left { position:absolute; bottom:15%; left:12%; width:14px; height:70%; background:linear-gradient(180deg, #3a3a4e 0%, #2a2a38 100%); border-radius:4px; box-shadow:2px 0 6px rgba(0,0,0,.3); }
.scn-philosopher-judges-pleasures .pillar-right { position:absolute; bottom:15%; right:12%; width:14px; height:70%; background:linear-gradient(180deg, #3a3a4e 0%, #2a2a38 100%); border-radius:4px; box-shadow:-2px 0 6px rgba(0,0,0,.3); }
.scn-philosopher-judges-pleasures .phil-stand { position:absolute; bottom:28%; left:50%; width:70px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-philosopher-judges-pleasures .philosopher { position:absolute; bottom:32%; left:50%; width:24px; height:50px; transform:translateX(-50%); background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pjp-stand 6s ease-in-out infinite; }
.scn-philosopher-judges-pleasures .honour-man { position:absolute; bottom:24%; left:30%; width:20px; height:34px; background:linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pjp-stand 6s ease-in-out infinite .3s; }
.scn-philosopher-judges-pleasures .gain-man { position:absolute; bottom:24%; right:30%; width:20px; height:34px; background:linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pjp-stand 6s ease-in-out infinite .6s; }
.scn-philosopher-judges-pleasures .balance-beam { position:absolute; bottom:47%; left:50%; width:140px; height:4px; transform:translateX(-50%); background:linear-gradient(90deg, #8a7a6a, #b0a090, #8a7a6a); border-radius:2px; }
.scn-philosopher-judges-pleasures .scale-left { position:absolute; bottom:42%; left:calc(50% - 55px); width:30px; height:18px; background:linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius:0 0 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:pjp-scale 8s ease-in-out infinite; }
.scn-philosopher-judges-pleasures .scale-right { position:absolute; bottom:42%; left:calc(50% + 25px); width:30px; height:18px; background:linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius:0 0 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:pjp-scale 8s ease-in-out infinite 4s; }
.scn-philosopher-judges-pleasures .wisdom-aura { position:absolute; bottom:38%; left:50%; width:60px; height:60px; transform:translate(-50%, -10%); background:radial-gradient(circle, rgba(180,160,120,.25) 0%, transparent 70%); border-radius:50%; animation:pjp-aura 5s ease-in-out infinite alternate; }
.scn-philosopher-judges-pleasures .torch-flame { position:absolute; bottom:28%; left:50%; width:8px; height:16px; transform:translateX(-50%) translateY(-20px); background:radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b08040 60%, transparent 100%); border-radius:50% 50% 20% 20%; animation:pjp-flame 2s ease-in-out infinite alternate; }
.scn-philosopher-judges-pleasures .torch-glow { position:absolute; bottom:28%; left:50%; width:60px; height:60px; transform:translate(-50%, -20px); background:radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 70%); border-radius:50%; pointer-events:none; }
@keyframes pjp-stand { 0% { transform:translateY(0) rotate(0); } 33% { transform:translateY(-1px) rotate(.5deg); } 66% { transform:translateY(0) rotate(-.3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pjp-scale { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes pjp-aura { 0% { opacity:.5; transform:translate(-50%, -10%) scale(1); } 50% { opacity:1; transform:translate(-50%, -10%) scale(1.15); } 100% { opacity:.6; transform:translate(-50%, -10%) scale(1); } }
@keyframes pjp-flame { 0% { transform:translateX(-50%) translateY(-20px) scaleY(1); opacity:.8; } 50% { transform:translateX(-50%) translateY(-22px) scaleY(1.1); opacity:1; } 100% { transform:translateX(-50%) translateY(-18px) scaleY(.9); opacity:.9; } }

.scn-pure-pleasures-smells {
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, #2a2a3e 0%, transparent 70%),
    linear-gradient(180deg, #1a1a28 0%, #2e2a3a 40%, #1e1e2a 100%);
}
.scn-pure-pleasures-smells .bg-chamber { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 100%); }
.scn-pure-pleasures-smells .incense-bowl { position:absolute; bottom:35%; left:50%; width:30px; height:14px; transform:translateX(-50%); background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 30% 30%; box-shadow:0 2px 8px rgba(0,0,0,.4); animation:pps-bowl 10s ease-in-out infinite; }
.scn-pure-pleasures-smells .smoke-wisp-1 { position:absolute; bottom:38%; left:50%; width:12px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, rgba(200,180,140,.3) 0%, rgba(200,180,140,.05) 100%); border-radius:50% 50% 20% 20%; filter:blur(3px); animation:pps-smoke 12s ease-in-out infinite; }
.scn-pure-pleasures-smells .smoke-wisp-2 { position:absolute; bottom:38%; left:calc(50% - 6px); width:8px; height:50px; transform:translateX(-50%); background:linear-gradient(180deg, rgba(200,180,140,.2) 0%, transparent 100%); border-radius:50% 50% 20% 20%; filter:blur(4px); animation:pps-smoke 15s ease-in-out infinite 5s; }
.scn-pure-pleasures-smells .smoke-wisp-3 { position:absolute; bottom:38%; left:calc(50% + 8px); width:10px; height:35px; transform:translateX(-50%); background:linear-gradient(180deg, rgba(200,180,140,.25) 0%, transparent 100%); border-radius:50% 50% 20% 20%; filter:blur(3px); animation:pps-smoke 14s ease-in-out infinite 8s; }
.scn-pure-pleasures-smells .man-reason { position:absolute; bottom:30%; left:37%; width:18px; height:32px; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pps-stand 7s ease-in-out infinite; z-index:2; }
.scn-pure-pleasures-smells .lion-spirit { position:absolute; bottom:25%; left:52%; width:28px; height:26px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:60% 40% 50% 50% / 50% 40% 60% 50%; animation:pps-lion 9s ease-in-out infinite; z-index:1; }
.scn-pure-pleasures-smells .manybeast-body { position:absolute; bottom:22%; left:20%; width:140px; height:30px; background:linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:30% 30% 20% 20%; box-shadow:inset 0 4px 10px rgba(0,0,0,.4); }
.scn-pure-pleasures-smells .beast-head-1 { position:absolute; bottom:28%; left:22%; width:18px; height:14px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 30% 30%; animation:pps-head 5s ease-in-out infinite; }
.scn-pure-pleasures-smells .beast-head-2 { position:absolute; bottom:28%; left:28%; width:16px; height:12px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 30% 30%; animation:pps-head 5s ease-in-out infinite 1.5s; }
.scn-pure-pleasures-smells .beast-head-3 { position:absolute; bottom:28%; left:34%; width:14px; height:10px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 30% 30%; animation:pps-head 5s ease-in-out infinite 3s; }
.scn-pure-pleasures-smells .truth-light { position:absolute; top:12%; left:50%; width:8px; height:8px; transform:translateX(-50%); background:radial-gradient(circle, #d0b080, transparent); border-radius:50%; box-shadow:0 0 20px 6px rgba(180,140,80,.4); animation:pps-light 8s ease-in-out infinite alternate; }
.scn-pure-pleasures-smells .truth-glow { position:absolute; top:12%; left:50%; width:60px; height:60px; transform:translateX(-50%) translateY(-10px); background:radial-gradient(circle, rgba(180,140,80,.15) 0%, transparent 70%); border-radius:50%; pointer-events:none; }
@keyframes pps-bowl { 0%,100% { transform:translateX(-50%) rotate(0); } 50% { transform:translateX(-50%) rotate(1deg); } }
@keyframes pps-smoke { 0% { transform:translateX(-50%) translateY(0) scaleY(1); opacity:.6; } 50% { transform:translateX(-50%) translateY(-20px) scaleY(1.3); opacity:.3; } 100% { transform:translateX(-50%) translateY(0) scaleY(1); opacity:.6; } }
@keyframes pps-stand { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(.5deg); } 75% { transform:translateY(0) rotate(-.3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pps-lion { 0% { transform:translateY(0) rotate(0); } 33% { transform:translateY(-2px) rotate(2deg); } 66% { transform:translateY(0) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pps-head { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pps-light { 0% { opacity:.5; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.2); } 100% { opacity:.6; transform:translateX(-50%) scale(1); } }

.scn-inner-man-rules-beast {
  background:
    radial-gradient(ellipse 100% 60% at 50% 100%, #2a1a1a 0%, transparent 80%),
    linear-gradient(180deg, #1a1a22 0%, #2a2028 50%, #1e161e 100%);
}
.scn-inner-man-rules-beast .bg-cave { position:absolute; inset:0; background:radial-gradient(ellipse 140% 100% at 50% 100%, #2a2028 0%, #1a1220 100%); }
.scn-inner-man-rules-beast .inner-man { position:absolute; bottom:32%; left:42%; width:16px; height:30px; background:linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:imb-stand 6s ease-in-out infinite; z-index:3; }
.scn-inner-man-rules-beast .lion-heart { position:absolute; bottom:24%; left:46%; width:30px; height:28px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:60% 40% 50% 50% / 50% 40% 60% 50%; animation:imb-lion 8s ease-in-out infinite; z-index:2; }
.scn-inner-man-rules-beast .monster-body { position:absolute; bottom:20%; left:18%; width:160px; height:34px; background:linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius:30% 30% 20% 20%; box-shadow:inset 0 4px 10px rgba(0,0,0,.5); }
.scn-inner-man-rules-beast .monster-head-1 { position:absolute; bottom:26%; left:20%; width:20px; height:16px; background:linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:50% 50% 30% 30%; animation:imb-head 5s ease-in-out infinite; }
.scn-inner-man-rules-beast .monster-head-2 { position:absolute; bottom:26%; left:26%; width:18px; height:14px; background:linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:50% 50% 30% 30%; animation:imb-head 5s ease-in-out infinite 1.2s; }
.scn-inner-man-rules-beast .monster-head-3 { position:absolute; bottom:26%; left:32%; width:16px; height:12px; background:linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:50% 50% 30% 30%; animation:imb-head 5s ease-in-out infinite 2.4s; }
.scn-inner-man-rules-beast .monster-head-4 { position:absolute; bottom:26%; left:38%; width:14px; height:10px; background:linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:50% 50% 30% 30%; animation:imb-head 5s ease-in-out infinite 3.6s; }
.scn-inner-man-rules-beast .chain-left { position:absolute; bottom:26%; left:23%; width:40px; height:3px; background:linear-gradient(90deg, #6a5a4a, #4a3a2a); border-radius:2px; transform-origin:right center; animation:imb-chain 7s ease-in-out infinite; z-index:4; }
.scn-inner-man-rules-beast .chain-right { position:absolute; bottom:32%; left:45%; width:50px; height:3px; background:linear-gradient(90deg, #4a3a2a, #6a5a4a); border-radius:2px; transform-origin:left center; animation:imb-chain 7s ease-in-out infinite 3.5s; z-index:4; }
.scn-inner-man-rules-beast .justice-orb { position:absolute; top:18%; left:50%; width:10px; height:10px; transform:translateX(-50%); background:radial-gradient(circle, #c0a880, #6a5a4a); border-radius:50%; box-shadow:0 0 24px 8px rgba(180,140,80,.4); animation:imb-orb 6s ease-in-out infinite alternate; }
.scn-inner-man-rules-beast .orb-glow { position:absolute; top:18%; left:50%; width:80px; height:80px; transform:translateX(-50%) translateY(-5px); background:radial-gradient(circle, rgba(180,140,80,.15) 0%, transparent 70%); border-radius:50%; pointer-events:none; }
@keyframes imb-stand { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(.5deg); } 75% { transform:translateY(0) rotate(-.3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes imb-lion { 0% { transform:translateY(0) rotate(0); } 33% { transform:translateY(-2px) rotate(2deg); } 66% { transform:translateY(0) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes imb-head { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes imb-chain { 0% { transform:rotate(0); } 50% { transform:rotate(8deg); } 100% { transform:rotate(0); } }
@keyframes imb-orb { 0% { opacity:.6; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.15); } 100% { opacity:.7; transform:translateX(-50%) scale(1); } }

/* olympic-victors */
.scn-olympic-victors {
  background: linear-gradient(135deg, #2c1e1a 0%, #4a3428 30%, #1a1410 70%), radial-gradient(ellipse at 50% 80%, #6b4c3a 0%, transparent 60%);
}
.scn-olympic-victors .pedestal {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ov-pedestal 8s ease-in-out infinite;
}
.scn-olympic-victors .figure {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a14 0%, #110a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ov-figure 6s ease-in-out infinite;
}
.scn-olympic-victors .crown {
  position: absolute; bottom: 76%; left: 50%; width: 30px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(192,160,80,0.6);
  animation: ov-crown 4s ease-in-out infinite alternate;
}
.scn-olympic-victors .torch {
  position: absolute; bottom: 30%; right: 15%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 2px 2px 4px 4px;
  animation: ov-torch 5s ease-in-out infinite;
}
.scn-olympic-victors .torch::after { /* flame */
  content: ''; position: absolute; top: -12px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,160,64,0.7);
  animation: ov-flame 2s ease-in-out infinite alternate;
}
.scn-olympic-victors .column-left,
.scn-olympic-victors .column-right {
  position: absolute; bottom: 10%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-olympic-victors .column-left { left: 8%; }
.scn-olympic-victors .column-right { right: 8%; }
.scn-olympic-victors .shadow {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ov-shadow 9s ease-in-out infinite;
}
.scn-olympic-victors .particles {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 20% 80%, rgba(255,200,150,0.6) 0%, transparent 100%),
              radial-gradient(1px 1px at 70% 30%, rgba(255,200,150,0.4) 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 60%, rgba(255,200,150,0.5) 0%, transparent 100%);
  background-size: 60px 60px;
  animation: ov-particles 12s linear infinite;
}

@keyframes ov-pedestal { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ov-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ov-crown { 0% { transform: translateX(-50%) rotate(-3deg); opacity: 0.8; } 50% { transform: translateX(-50%) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) rotate(-3deg); opacity: 0.8; } }
@keyframes ov-torch { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ov-flame { 0% { transform: scale(0.8) translate(0, 0); opacity: 0.8; } 50% { transform: scale(1.1) translate(-2px, -4px); opacity: 1; } 100% { transform: scale(0.85) translate(0, 0); opacity: 0.8; } }
@keyframes ov-shadow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes ov-particles { 0% { background-position: 0% 0%; } 100% { background-position: 60px 60px; } }

/* children-war-horses */
.scn-children-war-horses {
  background: linear-gradient(180deg, #7a7a72 0%, #5a5a4e 40%, #3a3a32 100%), radial-gradient(ellipse at 50% 100%, #6a6a5a 0%, transparent 70%);
}
.scn-children-war-horses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a8a80 0%, #5a5a50 100%);
  animation: ch-sky 15s ease-in-out infinite alternate;
}
.scn-children-war-horses .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a5a42 0%, #3a3a2a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: ch-hills 20s ease-in-out infinite;
}
.scn-children-war-horses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: ch-ground 12s ease-in-out infinite;
}
.scn-children-war-horses .horse-left,
.scn-children-war-horses .horse-right {
  position: absolute; bottom: 25%; width: 48px; height: 36px;
  background: linear-gradient(180deg, #4a4030 0%, #2a2218 100%);
  border-radius: 40% 60% 30% 30% / 50% 60% 40% 40%;
  animation: ch-horse 6s ease-in-out infinite;
}
.scn-children-war-horses .horse-left { left: 20%; animation-delay: -1s; }
.scn-children-war-horses .horse-right { right: 20%; animation-delay: 1s; }
.scn-children-war-horses .figure-child {
  position: absolute; bottom: 36%; left: 23%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ch-figure-child 5s ease-in-out infinite;
}
.scn-children-war-horses .veteran {
  position: absolute; bottom: 36%; right: 23%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ch-veteran 7s ease-in-out infinite reverse;
}
.scn-children-war-horses .dust {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(48,40,30,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ch-dust 8s linear infinite;
}

@keyframes ch-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ch-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ch-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ch-horse { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes ch-figure-child { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(-2px, -1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes ch-veteran { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(-3px, -2px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes ch-dust { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }

/* philosophers-knowledge-being */
.scn-philosophers-knowledge-being {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-philosophers-knowledge-being .bookshelf {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: pk-bookshelf 20s ease-in-out infinite alternate;
}
.scn-philosophers-knowledge-being .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 12px 12px;
  animation: pk-desk 15s ease-in-out infinite;
}
.scn-philosophers-knowledge-being .philosopher {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pk-philosopher 7s ease-in-out infinite;
}
.scn-philosophers-knowledge-being .form-glow {
  position: absolute; top: 30%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0a0 0%, #c0a060 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,160,96,0.4), 0 0 80px 40px rgba(192,160,96,0.2);
  animation: pk-glow 8s ease-in-out infinite alternate;
}
.scn-philosophers-knowledge-being .rays {
  position: absolute; top: 30%; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(
    0deg,
    transparent 0%,
    rgba(240,224,160,0.05) 5%,
    transparent 10%
  );
  animation: pk-rays 6s ease-in-out infinite;
}
.scn-philosophers-knowledge-being .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: pk-shadow 12s ease-in-out infinite alternate;
}
.scn-philosophers-knowledge-being .candle {
  position: absolute; bottom: 20%; right: 25%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 2px;
  animation: pk-candle 4s ease-in-out infinite;
}
.scn-philosophers-knowledge-being .candle::after { /* flame */
  content: ''; position: absolute; top: -10px; left: -2px; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(255,160,64,0.6);
  animation: pk-candle-flame 2s ease-in-out infinite alternate;
}

@keyframes pk-bookshelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pk-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pk-philosopher { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(2px,-2px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes pk-glow { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } }
@keyframes pk-rays { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes pk-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pk-candle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pk-candle-flame { 0% { transform: scale(0.8) translate(0,0); opacity: 0.8; } 50% { transform: scale(1.1) translate(-1px,-2px); opacity: 1; } 100% { transform: scale(0.85) translate(0,0); opacity: 0.8; } }

/* opinion-middle-realm */
.scn-opinion-middle-realm {
  background: linear-gradient(90deg, #2a2030 0%, #3a3040 50%, #1a1220 100%), radial-gradient(ellipse at 50% 50%, #2a2030 0%, transparent 70%);
}
.scn-opinion-middle-realm .left-wall {
  position: absolute; top: 0; bottom: 0; left: 0; width: 35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  box-shadow: inset -8px 0 16px rgba(0,0,0,0.4);
  animation: om-left 15s ease-in-out infinite alternate;
}
.scn-opinion-middle-realm .right-wall {
  position: absolute; top: 0; bottom: 0; right: 0; width: 35%;
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%);
  box-shadow: inset 8px 0 16px rgba(0,0,0,0.6);
  animation: om-right 15s ease-in-out infinite alternate;
}
.scn-opinion-middle-realm .figure {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a221a 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: om-figure 8s ease-in-out infinite;
}
.scn-opinion-middle-realm .knowledge-light {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 20%;
  background: radial-gradient(ellipse, rgba(240,220,180,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: om-light 6s ease-in-out infinite alternate;
}
.scn-opinion-middle-realm .ignorance-dark {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: om-dark 8s ease-in-out infinite alternate;
}
.scn-opinion-middle-realm .scale {
  position: absolute; bottom: 8%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  border-top: 3px solid #6a5a4a;
  border-radius: 0 0 50% 50%;
  background: transparent;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
  animation: om-scale 12s ease-in-out infinite;
}
.scn-opinion-middle-realm .scale::before, .scale::after { /* pans */
  content: ''; position: absolute; bottom: 0; width: 24px; height: 24px;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-opinion-middle-realm .scale::before { left: -12px; }
.scn-opinion-middle-realm .scale::after { right: -12px; }

@keyframes om-left { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes om-right { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes om-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes om-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes om-dark { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes om-scale { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
/* end per-scene blocks */
